Laboratorio: contatori asincroni

In fase di sviluppo stesura preliminare In fase di sviluppo

In questa attività useremo un analizzatore di stati logici per esaminare il comportamento di un 74HC4040 (nota 1), un contatore asincrono a 12 bit.

Come analizzatore di stati logici utilizzeremo Picoscope 2205A-MSO (Mixed Signal Oscilloscope). Il software usato è la versione 6.14.36 del gennaio 2021, l'ultima per MS Windows disponibile nel momento della stesura di questa pagina.

Per proseguire è necessario:

Il circuito

Lo schema del circuito è semplice:

74HC4040

Il clock del contatore è connesso ad uno dei pin di Arduino (per esempio D13) che, controllato direttamente dal software, genera il segnale di clock. Non serve che la frequenza sia particolarmente elevata: negli esempi che seguono è poco meno di 150 kHz. Tale segnale è visualizzato dall'analizzatore di stati logici attraverso il canale digitale D15 (nota 2).

Le dodici uscite del contatore sono collegate ad altrettanti canali dell'analizzatore di stati logici, da D11 (MSB) a D0 (LSB). Anche se non strettamente necessario è comodo ed opportuno seguire un ordine per questi collegamenti, evitando collegamento a casaccio.

I 12 canali possono essere visualizzati individualmente. Leggendo i bit dall'alto (MSB) verso il basso (LSB), possiamo vedere il conteggio da 0000 0000 0000 a 1111 1111 1111:

Le uscite del contatore

Ovviamente è più comoda una visualizzazione che raggruppa i segnali tra di loro correlati, tramite la rappresentazione tipica dei bus. In particolare nell'immagine seguente il gruppo G1 raggruppa 12 segnali in uscita al contatore e li rappresenta con un numero esadecimale da 0x000 a 0xFFF (nota 3):

Bus

Attività 1

Visualizzare i dati in uscita al contatore

Il trigger

Il trigger permette di "bloccare" il segnale sullo schermo quando i bit in ingresso assumono particolari configurazioni.

In questa pagina sono mostrate le impostazioni per usare il fronte di salita come evento di trigger.

Le condizioni di trigger possono essere anche complesse: l'immagine seguente mostra come bloccare lo schermo quando il contatore arriva a contare fino a 0x555 (ovvero 0101 0101 0101) ed il clock presenta un fronte di salita.

Trigger

Attività 2

Mostrare il passaggio delle uscite dal numero 0x200 al numero 0x201

Ritardi di propagazione

Durante il passaggio tra alcuni valori in uscita si osserva la presenza di valori non previsti, una sorta di onda (ripple). Per esempio quando il conteggio deve passare dal valore massimo (0xFFF) e zero per ricominciare si assiste a ben 11 valori intermedi, tutti "sbagliati". Il tempo è abbastanza breve, circa 50 ns nel caso mostrato, ma a volte potrebbe essere un problema. A questo tempo va aggiunto un intervallo di circa 15 ns tra il fronte del clock D15 e la prima transizione di D0.

Ritardi di propagazione

Attività 3

Mostrare gli stati intermedi nel passaggio tra 0x07F e 0x080. Quanto tempo impiega questa operazione?

Attività 4

Mostrare gli stati intermedi nel passaggio tra 0x07E e 0x07F. Quanto tempo impiega questa operazione?

Attività 5

Esaminare la funzione dell'ingresso Master Reset.

Questo ingresso può essere usato per accorciare il modulo del contatore collegandolo ad una delle uscite del contatore. Analogamente è possibile collegare il Master Reset all'uscita di una porta logica (o di un generico circuito combinatorio) i cui ingressi sono collegati a più uscite del contatore.

Verificarne il funzionamento.

Note

  1. La stessa attività può essere fatta con un diverso contatore o, in genere, con un altro circuito integrato con molte uscite
  2. Prima di proseguire nell'attività è opportuno verificare la presenza di tale segnale, verificando quindi sia il corretto funzionamento del software che dell'analizzatore di stati logici
  3. La figura ovviamente mostra solo un breve intervallo del conteggio, da 0x0744 a 0x075E


Pagina creata nel gennaio 2021
Ultima modifica: 25 febbraio 2021


Licenza "Creative Commons" - Attribuzione-Condividi allo stesso modo 3.0 Unported


Pagina principaleAccessibilitàNote legaliPosta elettronicaXHTML 1.0 StrictCSS 3

Vai in cima