Page 1 of 11

Sistema

PostPosted: 29 Jun 2016, 10:19
by alieno75
Cancellato

Re: Problema con prototipo calcolatrice z80

PostPosted: 29 Jun 2016, 15:10
by Just4Fun
Ciao,
vedo che ti sei ispirato da qui: http://stor.altervista.org/elettronica/newtsp/newtsp.htm

Comunque mi sembra che hai fatto notevoli passi in avanti.

La 27SF010 è una FLASH e dal datasheet sembra che si possa programmare usando un EPROM programmer, ma la cancellazione ovviamente è elettrica: "In addition to EPROM functionality, these devices also support electrical Erase operation via an external programmer" (vedi datasheet http://www.batronix.com/pdf/SST27SF.pdf), anche se a mia memoria non saprei come come comandare il segnale di cancellazione della flash dal programmatore di Eprom...

Il resto di quello che hai scritto non l'ho capito, comunque prima di tutto ti consiglio la seguente prova visto che ora hai il led che ti segnala lo stato di Halt della CPU: programma nella flash una sola istruzione di HLT all'indirizzo 0x0000.
All'accensione si dovrebbe accendere il led di HALT, e lo stesso dopo aver premuto il tasto RESET.
Questo è la + basilare prova funzionale che mi viene in mente x sapere se la CPU riesce ad eseguire almeno una istruzione.

Se questa prova dà esito positivo si può andare avanti con test successivi (altrimenti sono dolori...)

Ciao.

Re: Problema con prototipo calcolatrice z80

PostPosted: 29 Jun 2016, 18:53
by alieno75
Cancellato

Re: Problema con prototipo calcolatrice z80

PostPosted: 29 Jun 2016, 19:43
by Just4Fun
Allora sono cetrioli x diabetici......

Casistica:

1. c'è un problema nella flash (caso facile)
2. manca il clock o non è adeguato (caso facile)
3. qualsiasi altra cosa (amen)

Cominciamo con il punto 1.

Sei sicuro che la flash sia correttamente programmata (e funzionante)? Il tuo programmatore ti permettere di leggere e verificare che quanto supposto scritto sia EFFETTIVAMENTE presente nella flash...?

Voglio dire, come prima cosa verificherei con il programmatore se il contenuto dell'indirizzo 0x0000 della flash sia effettivamente pari a 0x76 (a memoria dovrebbe essere l'opcode hex della istruzione HLT, però controlla.... sono passati 30 anni da quando programmavo direttamente in esadecimale...).

Ciao

Re: Problema con prototipo calcolatrice z80

PostPosted: 29 Jun 2016, 20:50
by alieno75
Cancellato

Re: Problema con prototipo calcolatrice z80

PostPosted: 29 Jun 2016, 21:47
by Just4Fun
Allora passiamo al punto 2.

Hai detto che stai usando un clock molto lento.
Okkio che se hai la versione NMOS dello Z80 (e non la + "recente" versione CMOS), potrebbe non gradire clock eccessivamente bassi...

Ho dato un'occhiata veloce in giro ed ho trovato qs interessante post sul tema: https://twitter.com/gsuberland/status/737412534257504258

Uno dei tizi dice chiaramente che x la versione NMOS si raccomanda un periodo LOW minimo del clock di 2 microsecondi, mentre può permanere in HIGH indefinitamente:

brouhaha ‏@brouhaha May 30

@gsuberland NMOS Z80 CPU is fully static with clock high, can stop however long you like. Max clock low is 2 us.


x cui applicare clock inferiori a 250KHz (LOW 2us, HIGH 2us, duty cycle 50%) non è cosa buona.

X cui ti suggerisco di rimettere la flash e applicare un clock non inferiore a 500Khz, duty cycle 50% circa (tanto x stare tranquilli).
Sarebbe alquanto opportuno controllare il segnale di clock con un oscilloscopio...

Re: Problema con prototipo calcolatrice z80

PostPosted: 30 Jun 2016, 11:57
by alieno75
Cancellato

Re: Problema con prototipo calcolatrice z80

PostPosted: 30 Jun 2016, 14:43
by alieno75
Cancellato

Re: Problema con prototipo calcolatrice z80

PostPosted: 30 Jun 2016, 18:29
by Just4Fun
Allora..... come ti dicevo siamo in zona "cetrioli x diabetici"....

detto ciò:

1.5MHz può andare bene come clock. Considera che le prime versioni avevano come clock massimo 2.5MHz se ben ricordo, e poiché non è chiara che versione hai va bene così x adesso.

Inoltre se la CPU che stai usando è sempre la stessa delle prime prove, non è detto che nel frattempo non si sia fritta... Voglio dire che a qs punto non bisogna dare nulla x scontato....

Per quanto riguarda la EPROM lasca perdere... se riesci a scrivere e verificare la flash con il programmatore che hai va benissimo così.

L'esempio che hai trovato mi sembra di fatto equivalente a quello di Fin, solo che non c'è la parte I/O e la selezione degli spazi di indirizzamento usa uno schema un pò differente, forse un tantino + "veloce" e lineare.
Però ho visto che hanno collegato il pin 18 della CPU a Vcc. MALISSIMO!!!!!
Il pin 18 è l'uscita che indica lo stato di HALT, e così facendo friggeresti la CPU!!!

Allora, ti consiglio prima di tutto di prendere carta e matita e farti un TUO schema elettrico di quello che vuoi fare su breadboard.
Nello schema DEVE essere chiaro come è collegato (o non collegato) ciascun pin di OGNI integrato che usi.
Inoltre deve essere riportato per ogni pin sia il numero che il significato (es. pin 18 /HALT).
L'assegnazione dei pin prendila DIRETTAMENTE dai datasheet (es. questohttp://www.grimware.org/lib/exe/fetch.php/documentations/devices/z80/datasheets/z80.product.specification.1989.zilog.pdf per lo Z80) e non ti fidare MAI di schemi trovati in giro e non dare nulla x scontato. Nel (lungo) viaggio che stai x iniziare non sono ammessi errori, pena.... una bella frittura di silicio e cipolle....

Naturalmente grande attenzione alla tensione di alimentazione e, in genere, alla lunghezza delle connessioni.

Parti pure dall'ultimo esempio che hai postato, in cui inizierei solo con la CPU e la Flash più la logica di contorno e il clock.

Quando hai pronto lo schema elettrico postalo e vediamo come va...
L'obiettivo è quello di mandare in HALT la CPU. Se proprio non ci si riesce inizierei a pensare a sostituire la CPU con una nuova...
Valuta se usare sulla/sulle breadbord degli zoccoli ZIF... x la CPU e la flash...

PS: fossi in te comincerei a cercarmi un altro Z80, magari in versione CMOS, magari 2 o 3....

Ciao.

Re: Problema con prototipo calcolatrice z80

PostPosted: 30 Jun 2016, 20:03
by alieno75
Cancellato

Re: Problema con prototipo calcolatrice z80

PostPosted: 30 Jun 2016, 23:57
by legacy
ma prenditi una calcolatrice con su un z80, la hacki, e vivi felice :D

Re: Problema con prototipo calcolatrice z80

PostPosted: 01 Jul 2016, 12:52
by Just4Fun
legacy wrote:ma prenditi una calcolatrice con su un z80, la hacki, e vivi felice :D


eddai... lasciaci giocare.... :lol:


Allora... ho pensato ad uno schema ancora + semplice (vedi allegato) x provare a mandare in HALT la CPU.
Sono partito dal tuo ultimo schema (a proposito avevi tralasciato nel disegno il pin 28... :!: ).

In qs modo non serve neanche la flash, perché l'istruzione di HALT (0x76) è cablata sul bus dati... (il bus indirizzi A0-A15 non è collegato ad alcunché).
Di conseguenza, se tutto funziona, appena la CPU esce dal reset ed esegue la prima istruzione, va in HALT (x cui il pin 18 dovrebbe diventare LOW).

Mantenendo premuto il pulsante di reset il pin 18 dovrebbe tornare HIGH (ma appena lo rilasci esegue la prima istruzione x cui torna in HALT...).

Ciao.

Re: Problema con prototipo calcolatrice z80

PostPosted: 01 Jul 2016, 12:57
by alieno75
Cancellato

Re: Problema con prototipo calcolatrice z80

PostPosted: 01 Jul 2016, 13:04
by alieno75
Cancellato

Re: Problema con prototipo calcolatrice z80

PostPosted: 01 Jul 2016, 13:21
by Just4Fun
Il pin 28 si usava con le Ram dinamiche.... è una uscita e non la devi collegare ad alcunchè... però è comunque un pin e quindi deve essere presente nel disegno/"progetto"...

Comunque questo lo trovi nel datasheet (http://www.zilog.com/appnotes_download.php?FromPage=DirectLink&dn=PS0178&ft=Product%20Specification%20(Data%20Sheet)%20%20&f=YUhSMGNEb3ZMM2QzZHk1NmFXeHZaeTVqYjIwdlpHOWpjeTk2T0RBdmNITXdNVGM0TG5Ca1pnPT0=), che deve diventare la tua Bibbia e il tuo Vangelo... non credere a niente e a nessuno se non ai tuoi datasheet... neanche a me... :lol:

Re: Problema con prototipo calcolatrice z80

PostPosted: 01 Jul 2016, 16:55
by alieno75
Cancellato

Re: Problema con prototipo calcolatrice z80

PostPosted: 01 Jul 2016, 19:28
by alieno75
Cancellato

Re: Problema con prototipo calcolatrice z80

PostPosted: 01 Jul 2016, 21:56
by Just4Fun
E' possibile, come è possibile che il clock non funzioni o il segnale di reset non vada... o tutte e tre le cose insieme, compresa una cattiva alimentazione. Almeno ora abbiamo un pò ristretto la casistica...

Visto che hai una breadboard abbastanza grande, comincerei con lo staccare ogni "cordone ombelicale" con quella che chiami "scheda madre", (alimentazione compresa) ed a realizzare il clock e il circuito di reset direttamente sulla breadboard, in modo da accorciare al massimo la lunghezza del filo che trasporta il clock.

Mandare in giro una onda quadra da 1,5MHz con quei filetti non è il massimo....

Ti consiglio prima di "ripulire" la breadboard da eventuali componenti e fili non utili x l'ultimo schema che ho postato.

Di che strumentazione disponi oltre il multimetro della foto:

* oscilloscopio?
* frequenzimetro?
* generatore di funzioni?


Hai una scheda Arduino Uno?

Che cosa usi come alimentatore?

Hai controllato quanto è la tensione di alimentazione direttamente sui pin di alimentazione della CPU?

Re: Problema con prototipo calcolatrice z80

PostPosted: 01 Jul 2016, 22:10
by legacy
Just4Fun wrote:eddai... lasciaci giocare.... :lol:


vero vero :lol: :lol: :lol:

pero' l'hack di un sistema esistente e funzionante (come hw)
non e' affatto una cattiva idea *per giocare*, non e' nemmeno banale
cioè dovrebbe cmq offrire parecchie ore di divertimento
con pero' la possibilita' di giocarsela + sulla malizia dei trucchi sw||hw

Re: Problema con prototipo calcolatrice z80

PostPosted: 02 Jul 2016, 08:02
by alieno75
Cancellato