Collegamento alle memorie

Questo è lo schema generale per la connessione di chip di memoria statica (che non richiede operazioni di rinfresco periodico) al BUS dello Z80. Il blocco sulla sinistra è l'address decoder, e serve per generare i segnali di abilitazione per i singoli chip. E'questo circuito che assegna ad ogni chip un ben preciso intervallo dello spazio di memoria. Ogni chip di memoria dispone di un pin di abilitazione, che può chiamarsi CS, CE o E, e che serve per abilitare l'integrato per un'operazione di lettura o scrittura, scelta poi con un altro pin (OE e W).

Seguono i due chip di memoria indispensabili, la EPROM (o la ROM) contenente il programma (che non si cancella togliendo l'alimentazione) e la RAM che serve per mantenere i dati di lavoro e che si cancella togliendo l'alimentazione, in realtà se per un programma fossero sufficienti i soli registri interni della CPU la RAM potrebbe anche essere omessa.

I segnali WR e RD giungono direttamente sui chip di memoria sui pin OE (abilitazione uscite) e W (impulso di scrittura), allo stesso modo sulle memorie arrivano il BUS dati e quello indirizzi. Come per il processore, anche per le memorie il livello di riposo dei segnali di controllo è l'1 logico, e quindi le operazioni di accesso si ottengono portando a 0 i pin di abilitazione.

NOTA: Alcune memorie non accettano il fronte di salita di WR contemporaneo a quello di CS, richiedono cioè che CS rimanga a 0 ancora per qualche nS dopo la salita di WR, questo può essere risolto con una rete di ritardo RC sul pin CS della RAM (ma non ho mai provato), oppure tenendo la ram sempre abilitata (CS a massa) e combinando in OR con RAMSEL i segnali RD e WR (soluzione più valida che però aumenta un po' il consumo).
 


Esempio di address decoder

Questo semplice decodificatore indirizzi suddivide l'intero campo di indirizzamento dello Z80 (64K) in due sottocampi da 32K, la suddivisione viene fatta usando il valore di A15, questo vale infatti 0 se si indirizzano i primi 32K e 1 se si indirizzano i secondi. 

In questo modo si generano i segnali di abilitazione per una EPROM da 32K che risulterà mappata agli indirizzi 0..32767 e per una RAM, sempre da 32K, mappata agli indirizzi 32768..65535. A queste memorie naturalmente il bit di indirizzamento A15 non va collegato (e se il chip è da 32K il pin A15 non c'è proprio) infatti per indirizzare 32K sono sufficienti 15 fili (A0..A14).

Il motivo di mappare la EPROM nei primi 32K sta nel fatto che all'accensione, o dopo un reset, lo Z80 cerca all'indirizzo 0 la prima istruzione del programma da eseguire, che deve pertanto risiedere in una memoria non volatile mappata a partire da quell'indirizzo.

Se si guarda lo schema di alimentazione base dello Z80 e gli esempi di generatore di clock e circuito di reset sulla pagina connessioni di base si vede come con soli due integrati TTL, un 74LS04 e un 74HC32, è possibile far funzionare uno Z80 completo di 32K di EPROM e 32K di RAM. Una schedina del genere assorbe circa 200mA.

Cliccare sul disegno per vedere lo schema elettrico
EPROM 32K tipo 27C256
Durante il normale funzionamento in lettura Vpp si collega a +5V, questo pin viene portato a +12,5V durante la programmazione della EPROM.
RAM statica 32K tipo 26256

(TC55257BPL-10)

Piedinatura 7432 Piedinatura del 7432


Pagina e disegni realizzati da Claudio Fin