Collegamento porte di input/output (3)
Per poter realizzare dei sistemi con un certo numero di ingressi/uscite, ma senza dover collegare un numero esagerato di componenti, sono stati prodotti degli integrati che racchiudono in un unico contenitore più porte configurabili via software, l'8255 è uno di questi e mette a disposizione 3 porte configurabili come ingressi o come uscite.

Integrato 8255

Rosso: BUS dati a 8 bit 

Verde: BUS indirizzi a 2 bit (per selezionare 4 indirizzi interni) 

Blu: Alimentazioni e reset 

Giallo: I segnali di controllo, abilitazione dell'integrato, lettura e scrittura. 

Gli altri 24 pin sono i fili di ingresso/uscita delle tre porte PA PB e PC, la porta PC è suddivisa in PCL e PCH. 

Schema interno semplificato dell'8255 
L'8255 dispone di tutta la circuiteria per indirizzare 4 porte sia in ingresso sia in uscita, una di queste è una porta interna, detta registro, che serve per configurare via software il funzionamento delle altre tre. 

La selezione della porta a cui si deve accedere si effettua inviando l'indirizzo binario sui fili A0 e A1, se si realizza un sistema semplice con un solo 8255 e si collegano A0 con A0 del BUS dello Z80 e A1 con A1 allora le porte di I/O risulteranno così mappate: 

  • PA = indirizzo 0
  • PB = indirizzo 1
  • PC = indirizzo 2
  • Registro interno = indirizzo 3
Le porte possono essere configurate come ingressi o come uscite, la porta C può a sua volta essere configurata metà ingressi e metà uscite. Per configurare le porte si deve scrivere nel registro di controllo un valore binario che si può ricavare dalla seguente figura: 
Sostituire le X con: 0=uscita 1=ingresso



La seguente tabella riporta le 16 combinazioni di ingressi/uscite e il relativo codice di configurazione espresso in esadecimale:

PA PB PCH PCL CONTROLLO
OUT OUT OUT OUT 80H
OUT OUT OUT IN 81H
OUT IN OUT OUT 82H
OUT IN OUT IN 83H
OUT OUT IN OUT 88H
OUT OUT IN IN 89H
OUT IN IN OUT 8AH
OUT IN IN IN 8BH
IN OUT OUT OUT 90H
IN OUT OUT IN 91H
IN IN OUT OUT 92H
IN IN OUT IN 93H
IN OUT IN OUT 98H
IN OUT IN IN 99H
IN IN IN OUT 9AH
IN IN IN IN 9BH

 

Collegamento allo Z80

L'accesso ad un 8255 può essere considerato simile all'accesso a una memoria da 4 byte, l'integrato ha un pin di abilitazione e due pin per i segnali di lettura e scrittura, ha due bit di indirizzamento per selezionare uno dei quattro indirizzi interni e un BUS dati bidirezionale.

Su un sistema minimo che ha come circuito di I/O un solo 8255, potrebbe in teoria bastare collegare IORQ al pin E dell'8255, RD e WR del processore ad RD e WR dell'8255, i primi due bit del BUS indirizzi e il BUS dati. In pratica anche l'8255, come accade per alcune memorie, ha bisogno della persistenza a livello 0 del segnale E per un certo tempo dopo il ritorno a 1 di WR durante una scrittura, questo significa che anche per questo chip sono necessarie le due porte OR come per la RAM.

Inoltre dispone di un pin di RESET non negato, si resetta cioè con un livello 1, il contrario dello Z80, e non basta, l'uscita dallo stato di reset è un po' più lenta che per il processore, e se questo iniziasse subito la programmazione dell'8255 l'operazione potrebbe non andare a buon fine, per questo motivo si deve ulteriormente ritardare il RESET del processore con un circuito RC, di seguito si può vedere il circuito di reset usato nelle altre pagine modificato per far funzionare un 8255:
 


NOTA: Se all'accensione non è importante il valore che assumono temporaneamente i pin di I/O, allora il pin reset dell'8255 può anche essere collegato stabilmente a massa.

All'arrivo di un reset, e quindi anche all'accensione, tutte le porte dell'8255 si predispongono automaticamente come ingressi, è pertanto bene collegare su tutti i pin di I/O delle reti resistive di pull up da 10Kohm di tipo SIL (8 resistenze con un capo in comune), in modo da stabilizzare il livello logico ed evitare gli eventuali e distruttivi accumuli di cariche elettriche che possono verificarsi sugli ingressi CMOS scollegati.

Nella figura seguente si vede il corretto collegamento di un singolo 8255 al BUS dello Z80, e le resistenze sugli ingressi/uscite.
 


Cliccare sul disegno per vedere lo schema elettrico

Pagina e disegni realizzati da Claudio Fin
Ultimo aggiornamento 23-9-2000