Pagina 1 di 1

z80 non esegue codice

MessaggioInviato: 17 mag 2016, 17:37
da ramboluis
ho per le mani un vecchio z80 acquistato su ebay alcuni mesi fa,ho montato il circuito classico per testarlo mettendo tutti i piedini di controllo in input ( cioe wait,int,ecc.. ) a livello alto, 4 led sui bit meno significativi del bus indirizzi e tutte le linee dati a massa con 8 resistenze da 560 ohm(per simulare l istruzione nop).
tutto funziona correttamente i segnali di read e write si comportano bene, il problema e dato dal fatto che questo z80 esegue nop all infinito a prescindere dallo stato delle linee dati, me ne sono accorto perche collegandolo alla eeprom lui continuava a incrementare il bus indirizzi all infinito ignorando i vari jump nel codice.
qualcuno sa aiutarmi? e normale, sto sbagliando qualcosa oppure e rotta la cpu?

Re: z80 non esegue codice

MessaggioInviato: 17 mag 2016, 17:55
da alev
Discussione spostata in PC e informatica

Re: z80 non esegue codice

MessaggioInviato: 17 mag 2016, 18:07
da Brianz
SUppongo che tu abbia usato qualcosa del genere
http://www.z80.info/z80test0.htm

Però, se non hai un oscilloscopio a più canali, o meglio un analizzatore di stati logici, e neppure un circuito per lo step-by-step è difficile fare diagnosi con dei led.

Se tutta la circuiteria è a posto e se gli opcode nella EPROM sono a posto, sarà la CPU che non va.
Però prima di dire che è questo, occorre essere certi al 200% che l'hardware sia corretto.

Re: z80 non esegue codice

MessaggioInviato: 17 mag 2016, 18:44
da posta10100
Bei tempi quelli in cui programmavo lo Z80 :ok:

Sicuramente lo hai già fatto ma hai dato l'impulto di reset?

O_/

Re: z80 non esegue codice

MessaggioInviato: 18 mag 2016, 19:16
da ramboluis
il reset dovrebbe essere apposto, ho un circuito rc da qualche secondo, comunque lo fornisco spesso manualmente.
il codice e caricato dentro la eeprom correttamente( sono solo 3 byte), penso sia qualcosa di hw, continuo a cercare :(

Re: z80 non esegue codice

MessaggioInviato: 18 mag 2016, 21:00
da posta10100
Sono andato a recuperare l'instruction set dello Z80.
Se sono solo 3 byte allora il programma dovrebbe essere questo:
Codice: Seleziona tutto
C3 00 00


ovviamente a partire dall'indirizzo 0x0000 della eprom.
Quindi dovresti vedere il bus indirizzi incrementare fino a 0x02 e poi tornare a 0x00.
ramboluis ha scritto:continuava a incrementare il bus indirizzi all infinito ignorando i vari jump nel codice.

Se sono solo 3 byte il jump è uno solo e vedere quello che fa è quasi impossibile senza almeno un oscilloscopio.

Per curiosità: che frequenza ha il clock?

O_/

Re: z80 non esegue codice

MessaggioInviato: 24 mag 2016, 20:28
da ramboluis
si, il codice è quello.
comunque dopo un po di prove con clock step-by-step sono riuscito a seguire monitorando sia bus dati che indirizzi il programma e mi sono accorto che veniva eseguito perfettamente, semplicemente nei momenti in cui il bus indirizzi non viene usato mostra numeri strani, ma al momento del read l'indirizzo presente e quello giusto :ok: