Page 9 of 11

Re: Problema con prototipo calcolatrice z80

PostPosted: 17 Nov 2016, 13:04
by legacy
anche da USB, screenshot su chiavetta

Re: Problema con prototipo calcolatrice z80

PostPosted: 17 Nov 2016, 13:33
by Just4Fun
legacy wrote:anche da USB, screenshot su chiavetta


Giusto! mi sono talmente abituato bene con la lan che mi ero dimenticato dell'usb... :D

Re: Problema con prototipo calcolatrice z80

PostPosted: 18 Nov 2016, 12:35
by legacy
sul mio DSO la LAN non era opzionale
in compenso ho la USB device, ovvero potrei
vedere il DSO + o - come chiavetta usb

pero' e' + comodo usare una chiavetta usb da usb-host
sul frontale ho una presina dove infilare la chiavetta

Re: Problema con prototipo calcolatrice z80

PostPosted: 18 Nov 2016, 12:59
by legacy
con Lan, il prox DSO che prendero'. Forse.

PostPosted: 18 Nov 2016, 23:06
by alieno75
Cancellato

Re: Problema con prototipo calcolatrice z80

PostPosted: 19 Nov 2016, 19:35
by Just4Fun
Scusa un attimo.... ho riaperto lo schema della breadboard che avevi postato (ultima versione).

Mi sono accorto che dallo schema risulta che hai usato un integrato del tipo 74AC32N come porte OR...

Puoi verificare e confermare please...? (controlla ESATTAMENTE che integrato hai come porte OR, e per esattamente intendo ogni singola lettera o cifra stampigliata sull'integrato... )

X comodità riallego il tuo schema.

Re: Problema con prototipo calcolatrice z80

PostPosted: 20 Nov 2016, 16:58
by alieno75
Cancellato

Re: Problema con prototipo calcolatrice z80

PostPosted: 20 Nov 2016, 17:57
by Just4Fun
Ed allora mi sa che ho trovato un altro inghippo.... :lol:

La serie 74HC NON E' COMPATIBILE in ingresso con i livelli TTL (e lo stesso vale x la serie 74AC), ed il tuo Z80 ha tutti i livelli TTL (se fosse stato di tipo CMOS forse avrebbe funzionato, perché sotto determinate condizioni ha i livelli logici compatibili con la serie 74HC)!!!!!!

X cui devi togliere il 74HC32 e sostituirlo con uno 74HCT32 oppure 74ACT32 oppure 74LS32!!!

Scommetto che una volta sostituito avrai una gradita sorpresa... ;)

Ovviamente tutto ciò è facilmente desumibile dai datasheet... as usual... :mrgreen:

Re: Problema con prototipo calcolatrice z80

PostPosted: 20 Nov 2016, 21:48
by alieno75
Cancellato

Re: Problema con prototipo calcolatrice z80

PostPosted: 20 Nov 2016, 23:29
by Just4Fun
Direi proprio di sì....

Una prova che puoi fare è di saltare le porte OR e l'inverter IC31C e collegare il pin del clock dello 74LS374 direttamente al pin /IORQ dello Z80.
In teoria dovrebbe funzionare lo stesso usando il solito programmino di prova di 3 istruzioni...

Re: Problema con prototipo calcolatrice z80

PostPosted: 22 Nov 2016, 20:30
by alieno75
Cancellato

Re: Problema con prototipo calcolatrice z80

PostPosted: 22 Nov 2016, 21:01
by alieno75
Cancellato

Re: Problema con prototipo calcolatrice z80

PostPosted: 23 Nov 2016, 12:36
by Just4Fun
Just4Fun wrote:Una prova che puoi fare è di saltare le porte OR e l'inverter IC31C e collegare il pin del clock dello 74LS374 direttamente al pin /IORQ dello Z80.
In teoria dovrebbe funzionare lo stesso usando il solito programmino di prova di 3 istruzioni...


Ripeto...

Una prova che puoi fare è di saltare le porte OR e l'inverter IC31C e collegare il pin del clock dello 74LS374 direttamente al pin /IORQ dello Z80. Quindi non devi mettere in mezzo l'inverter...

Rivediti come funziona il timing del ciclo macchine di I/O write. Il momento in cui "cloccare" il 73LS374 (che ha il clock sul fronte 0->1) è esattamente l'istante in cui /IORQ cambia da 0 -> 1 (che è l'istante in cui il bus dati dello z80 contiene il dato stabile). X cui niente inverter.... così dovrebbe funzionare.

Il resto non l'ho proprio capito.... se devi "fermare" i vari segnali in un certo punto, usa il pulsante del pic x arrivare al punto dove fermarti... e poi fai i controlli del caso...

Re: Problema con prototipo calcolatrice z80

PostPosted: 23 Nov 2016, 18:24
by alieno75
Cancellato

Re: Problema con prototipo calcolatrice z80

PostPosted: 23 Nov 2016, 21:08
by alieno75
Cancellato

Re: Problema con prototipo calcolatrice z80

PostPosted: 24 Nov 2016, 09:01
by Just4Fun
alieno75 wrote:Ho fatto un' ulteriore prova, dopo un secessivo reset ho cloccato fino al raggiungimento del livello basso di IORQ
e sono andato questa volta a misurare direttamente i valori in Volt sugli ingressi del 374 ed ottengo i seguenti valori:


Code: Select all

D0=1,87V  D1=4,76V D2=0V D3=0V D4=4,59V D5=0V D6=0V D7=2,80V




Qs è il giusto modo di procedere... ;)

Allora... i valori in Volt che hai misurato mi sembrano un pò "strani".... credo che ci sia qualche cosa in mezzo che crei "disturbo"... o un componente che funziona male (o non è correttamente alimentato) o una cattiva connessione... o una resistenza di pull-up o pull-down sbagliata...

Ora bisogna capire perchè.

A qs punto, visto che hai tutto l'occorrente x fare misure, proverei a staccare completamente il 74LS374 dal bus dati e a tenere collegato SOLO lo Z80 e la FLASH, ed effettuare una nuova misura delle tensioni sui vari pin del bus dati nello stesso punto del programmino di test (ovvero quando /IORQ è LOW).

Una cosa... oltre la FLASH e lo Z80 c'è qualche altro integrato collegato al bus dati (D0-D7)?

Re: Problema con prototipo calcolatrice z80

PostPosted: 24 Nov 2016, 12:43
by alieno75
Cancellato

Re: Problema con prototipo calcolatrice z80

PostPosted: 24 Nov 2016, 13:40
by Just4Fun
Ma nello schema ultimo che hai postato c'era anche una RAM tipo CY62256... che fine ha fatto?

Re: Problema con prototipo calcolatrice z80

PostPosted: 24 Nov 2016, 17:47
by alieno75
Cancellato

Re: Problema con prototipo calcolatrice z80

PostPosted: 25 Nov 2016, 09:28
by Just4Fun
Ok. Allora direi di scollegare il 74LS374 dal bus dati e misurare nuovamente il livello di D0-D7, esattamente come hai fatto prima, nello stesso punto del prog.

Visto che ci sei, misura anche sul bus dati quello che viene letto dallo Z80 durante il secondo ciclo macchina della prima istruzione del prog di test (lda, 0). Tieni presente che devi misurare il bus dati non quando /M1 è LOW (perchè in quel momento stai leggendo il codice della istruzione lda, 0), ma quando subito dopo /RD e /MREQ sono LOW e /M1 è HIGH. Questo è l'istante nel quale sul bus dati è presente il valore che verrà caricato in accumulatore (che nel tuo caso è pari a 0) e che poi viene scritto sulla periferica (questo perchè l'istruzione LDA, 0 è composta da 2 cicli macchina; il primo è un ciclo di opcode fetch che legge il codice della istruzione LDA, il secondo è un ciclo di memory read nel quale viene letto il dato da caricare in accumulatore. Ovviamente /M1 va LOW solo durante il primo ciclo, nel secondo /M1 rimane HIGH e solo /RD e /MREQ vanno LOW essendo una lettura da memoria.).