ELEMANIA
Digitale - Contatore decimale
Contatore decimale (BCD)

Utilizzando lo schema circuitale visto nella precedente lezione è possibile realizzare contatori con modulo M = 2n, dove n è il numero dei flip flop utilizzati. In molti casi però si ha la necessità di realizzare contatori con modulo qualsiasi, cioè contatori non binari.

Per esempio un contatore molto utile è quello decimale (o modulo 10 o BCD), il quale conta da 0000 (zero in base dieci) fino a 1001 (nove in base dieci). Esso può essere realizzato usando 4 flip flop nel seguente modo:

Si osservi l'uso dell'ingresso asincrono di clear (CLR) attivo sul livello basso e della porta NAND. In assenza del NAND il contatore sarebbe un normale contatore in avanti modulo 16 (da 0000 a 1111).

La porta NAND fornisce un impulso di clear quando (CLR=L) quando Q1=H e Q3=H. Tale condizione si verifica quando nella sequenza di conteggio compare la combinazione HLHL corrispondente a 1010 cioè al numero dieci in decimale.

Si osservi il seguente diagramma temporale:

Si osservi che, all'arrivo dell'undicesimo fronte di discesa del clock, i flip flop commutano alla configurazione 1010. Tale configurazione provoca però immediatamente l'azzeramento di tutti i flip flop (a causa della porta NAND collegata con l'ingresso asincrono CLR). La configurazione 1010 dunque compare in uscita per un tempo brevissimo (idealmente nullo), appena sufficiente per azzerare i flip flop e far ripartire la sequenza da 0000.

La sequenza completa di conteggio è mostrata in figura:

Glitch

In realtà l'impulso di clear non ha durata zero. La sua durata effettiva dipende dai ritardi di propagazione dei flip flop e della porta NAND ed è comunque molto piccola. Nella figura seguente è mostrata una porzione ingrandita del diagramma temporale, in cui viene messo in evidenza l'impulso di azzeramento in corrispondenza della combinazione 1010:

Si osservi in particolare il piccolo impulso spurio (cioè indesiderato) presente sull'uscita Q1. Tale breve impuslo (detto glitch) non dovrebbe in teoria essere presente sulle uscite del contatore e corrisponde alla combinazione di reset 1010.

La presenza di glitch in un circuito elettronico è in alcuni casi trascurabile, mentre in altri può dare luogo a malfunzionamenti. Se per esempio il nostro contatore BCD viene collegato in uscita a un display a 7 segmenti per visualizzare la sequenza di conteggio, a causa dei ritardi e delle inerzie intrinseche al display, la breve apparizione della combinazione 1010 non produce nessuna visualizzazione e dunque non crea problemi. Viceversa ci potrebbero essere problemi nel caso in cui il contatore fosse collegato a un dispositivo "veloce", in grado di leggere la sequenza spuria prima che essa scompaia dalle uscite.

Realizzazione di un contatore asincrono modulo qualsiasi

Usando la configurazione precedente è possibile realizzare un contatore con qualunque modulo. Facciamo un semplice esempio. Supponiamo di voler realizzare un contatore modulo 23, cioè in grado di contare da zero a 22. Per fare ciò abbiamo bisogno di 5 flip flop, poichè il numero 23 in binario (10111) richiede 5 bit.

A questo punto è sufficiente considerare i bit a uno nel numero 23 e collegarli in entrata a una porta NAND a sua volta collegata con l'ingresso CLEAR di tutti i flip flop. Nel nostro caso i bit da usare sono Q4, Q2, Q1 e Q0. Invece Q3 non dev'essere usato, in quanto è già azzerato (volendo si potrebbe anche evitare di usare l'ingresso CLEAR del flip flop corrispondente, vedi figura).

Lo schema circuitale completo è mostrato in figura:

 

 

precedente - successiva

Sito realizzato in base al template offerto da

http://www.graphixmania.it