
Ho usato la NVRAM (modello DS1245Y della DALLAS, da 128 K x 8 byte, anche se obsoleta
e relativamente costosa) per diversi motivi, tra cui
a) copertura di tutta la memoria indirizzabile dallo Z80 (64 K), senza necessità di
utilizzare schede di memoria aggiuntive sul Bus
b) disponibilità di altri 64 K indirizzabili tramite gestione della linea A16, che permette di
avere più spazio per dati e codice (con una gestione appropriata) e di implementare un
meccanismo di boot che permetta l’avvio al reset a partire da qualsiasi indirizzo del
sistema
c) possibilità che tutta la memoria si comporti nello stesso momento come RAM o ROM,
in quanto mantiene le informazioni anche se non alimentata (contiene una batteria
tampone) e scrivibile come una RAM
d) è facilmente programmabile “fuori” dal sistema tramite programmatori disponibili in
commercio più o meno costosi (ho usato un TL866 II che è utile anche per i PIC)
Il modulo oscillatore, reperibile facilmente in commercio, è alimentato dalla tensione a 5V e
genera la frequenza di 7.68 MHz con la precisione del quarzo direttamente senza altri
componenti. Questa frequenza viene inviata ad una CPLD per la divisione e l’inoltro alla CPU.
Per il circuito di reset ho voluto utilizzare un piccolo componente dedicato (il DS1233-5+) che
fornisce l’impulso corretto all’accensione e gestisce il pulsante per il reset manuale. Il reset
viene reso disponibile sul Bus, alla CPLD e alla CPU.
A parte il LED che indica l’alimentazione della scheda, le resistenze di pull-up per alcuni
segnali che sono in open collector e i due connettori per collegarsi al Bus, tutto il resto dei
circuiti è implementato e programmato nelle CPLD. Ne ho previsto due per poter implementare
anche un sistema di gestione della linea A16 secondo un modello a “banchi”.