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:
Lo schema del circuito è semplice:
Il contatore indicato (74HC4040) può essere sostituito da altri, senza alcun problema: adatti sono per esempio il CD4040 oppure il CD4020, molto simili per gli usi che ne faremo in questa pagina.
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.
Consiglio di NON collegare fin da subito tutte le uscite: per iniziare meglio collegare solo le uscite meno significative (per esempio D0, D1, D2, D3) ed aggiungerne altre dopo che si è verificato il corretto funzionamento del circuito.
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:
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):
Visualizzare i dati in uscita al contatore
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.
Visualizzare le uscite durante il passaggio dal numero 0x3 al numero 0x4.
Visualizzare le uscite durante il passaggio dal numero 0x33 al numero 0x34. (otto bit).
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.
Mostrare gli stati intermedi nel passaggio tra 0x07F e 0x080. Quanto tempo impiega questa operazione?
Mostrare gli stati intermedi nel passaggio tra 0x07E e 0x07F. Quanto tempo impiega questa operazione?
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.
Pagina creata nel gennaio 2021
Ultima modifica: 13 dicembre 2021
Appunti scolastici - Versione 0.1028 - Novembre 2024
Copyright 2012-2024, Vincenzo Villa (https://www.vincenzov.net)
Creative Commons | Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)