Una scheda per sperimentare lo shift register '164
Esistono diversi componenti che svolgono la funzione di registro di
scorrimento e qui proviamo ad
utilizzare il comune e diffuso 164, nella versione HC164.
Si tratta di un integrato a 14 pin, contenente una catena di 8 flip-flop di
tipo D, dotati di una linea comune di clock, una di clear e di un ingresso a due
pin di tipo AND.
Le uscite parallele corrispondono ai terminali Q dei flip-flop.
Nelle seguenti immagini, lo schema logico e il simbolo ANSI/IEEE.
Questo è lo schema funzionale:
Questo significa che lo shift register ha la capacità di contenere 8 bit di
informazione, un bit per ogni flip-flop.
8 bit corrispondono ad 1 byte, che è l' ampiezza del dato trattato dai PIC che
stiamo sperimentando.
La sequenza dei segnali di lavoro è identificata in questo diagramma
La procedura di trasferimento di un dato dal microcontroller al registro a
scorrimento è la seguente:
- azzeriamo il contenuto dei flip-flop portando a livello basso il terminale
di clear
- iniziamo con il porre il primo bit da trasferire su un pin configurato
come uscita del microcontroller e collegato all' ingresso dello shift
register
- applichiamo ora un impulso di clock ai flip-flop. Il loro collegamento a
catena fa si che il dato contenuto in ogni flip-flop passi al successivo,
quindi il dato applicato all' ingresso sarà immagazzinato nel primo latch.
- poniamo ora il secondo dato e ripetiamo l' impulso di clock: il dato
precedentemente inserito scorre dal primo al secondo flip-flop mentre nel
primo sarà immagazzinato il dato ora caricato
- ripetiamo l' operazione fino ad esaurimento degli 8 bit del dato: ora ogni
flip-flop contiene uno dei bit del dato ed essi sono accessibili ai pin di
uscita dello shift register.
Per visualizzare il funzionamento del componente e del software di comando,
senza l' uso di strumenti, realizziamo un
semplice circuito, su stampato o su breadboard, dove alle uscite di flip-flop
colleghiamo dei LED, la cui accensione ci indicherà lo stato alto.
Lo schema elettrico è il seguente:
Le uscite dei flip-flop possono essere collegate ad un array di 8 LED che
visualizzano con la loro accensione il livello altro.
Oppure un display a 7 segmenti, che si accenderanno per livelli alti delle
uscite Q.
Il segnale proveniente dal controller arriva al connettore Input e
comprende 5 linee:
- l' alimentazione Vdd/Vss
- la linea Dati
- la linea del clock
- quella del clear
Su ogni linea è applicato un pull up che migliora l' interfaccia tra l'
uscita del PIC (a livello TTL) e l' ingresso dello shift register; inoltre
costituisce una terminazione se il collegamento tra PIC e shift register non
è brevissimo.
Il jumper JP1 serve a portare a massa la linea del clear per
un azzeramento manuale. Infatti applicando un livello basso a questa linea si
azzerano contemporaneamente tutti i flip-flop.
Gli ingressi AB dello shift register, in logica AND, sono collegati
assieme: l' aumento del fan-in è irrilevante sulla possibilità di drive dei
pin del PIC.
Le uscite Q del 164 sono mandate a un connettore doppio, dal quale possono
essere estratte per comandare altri carichi; collegando invece tra di loro i
pin a coppie, le uscite comandano 8 LED collegati verso massa, per cui saranno
accesi quando le uscite saranno a livello alto.
Le resistenze in serie limitano la corrente a circa 3 mA alla tensione
di 5 V, rientrando nei limiti di corrente dell' HC164,
I segnali di clock e di clear e l' alimentazione, assieme all' uscita di
peso maggiore (Q7) sono disponibili su un altro connettore (Output) per
poter concatenare più shift register in serie.
Lo shift register 164 esiste in diverse versioni
Gate |
Vcc |
Fclock |
Iol |
Ioh |
164 |
5 V |
25 MHz |
0.4 mA |
8 mA |
LS164 |
5 V |
25 MHz |
0.4 mA |
8 mA |
C164 |
3-15 V |
3 MHz |
1.75 mA |
|
HC164 |
2-6 V |
20 MHz |
4 mA |
4 mA |
HCT164 |
5 V |
20 MHz |
4 mA |
4 mA |
Se vogliamo comandare i LED con l' uscita dei gate a livello alto occorre
utilizzare la versione 74HC164, che può erogare 4 mA verso carichi al GND.
Questa versione è realizzata in CMOS, ma i suoi livelli logici di ingresso
possono essere pilotati direttamente dalle uscite del PIC.
Per gli altri tipi, occorrerà utilizzare un buffer (ULN o transistor),
oppure comandare i LED appesi alla Vdd, con una inversione della logica
(saranno accesi quando il livello delle uscite Q è basso).
Tra l' altro, HC164 può lavorare tra 2 e 5.5V che sono gli estremi dei PIC
18LF.
Se non si pensa di utilizzare la funzione di clear, basterà
collegare questo pin alla Vdd (meglio se attraverso un pull-up).
Per i nostri corsi abbiamo realizzato un modulo chiamato SIPO-164, secondo
gli schemi prima visti, al quale
è possibile collegare diversi elementi di visualizzazione.
Il circuito stampato, come previsto per
tutte le DemoBoard che utilizzeremo è a faccia singola, facilmente
riproducibile anche in casa.
Non vengono usati componenti speciali.
Al connettore di ingresso si affaccia
uno di uscita, il che permette di concatenare più shft register tra
di loro.
In questo caso le resistenze di pull up saranno cablate solo sull'
ultimo dei circuiti della catena.
Il modulo è estremamente semplice e può essere realizzato in pochi minuti
da chiunque abbia una minima esperienza nella di circuiti stampati.
Ovviamente può benissimo essere realizzato anche in altri modi, su
millefori o breadboard.
|
|
Ecco uno dei primi prototipo realizzato
su circuito stampato, collegato al modulo LED. |
E questo è lo stesso collegato al modulo
7-segmenti.
|
Alle uscite del modulo potranno anche essere collegati altri circuiti in modo da poter
effettuare numerose esperienze.
L' unica cura è impiegare carichi non superiori a 4mA.
Quindi si sceglieranno LED o display con un rendimento sufficiente ad essere
ben accesi con 4 mA.
Il modulo è collegabile a tutti i sistemi di
sviluppo con un cavetto a 5 poli.
|
SIPO-164, con il modulo del display a 7
segmenti innestato, collegato al PORTC della UniBoard.
Un cavetto a 5 fili realizza la
connessione con semplicità.
|
|
e alla 28-pin Demoboard di Microchip,
utilizzando il connettore previsto per le comunicazioni seriali.
L' alimentazione del tutto viene fornita dal Pickit.
|
Il circuito in Eagle
è scaricabile
qui.
Vediamo ora un driver studiato appositamente per gli shift register di questo
genere.
|