Analizzatore logico 101

In fase di sviluppo Stesura preliminare In fase di sviluppo

L'analizzatore di stati logici, insieme all'oscilloscopio, è lo strumento più utilizzato per esaminare il comportamento di un circuito digitale. In questa attività utilizzeremo Picoscope 2205A-MSO (Mixed Signal Oscilloscope), uno strumento molto versatile e dal costo relativamente contenuto che svolge entrambe le funzioni, perfetto per l'uso in ambito scolastico. Il software usato è la versione 6.14.23 del maggio 2020, l'ultima disponibile nel momento della stesura di questa pagina.

Ovviamente i concetti presentati sono generali.

La fotografia di apertura mostra un HP 1663A uno strumento di circa 40 anni fa, obsoleto, ma con il fascino degli strumenti di un tempo.

Cosa serve

Iniziamo utilizzando il Picoscope come oscilloscopio, cioè come strumento capace di visualizzare alcuni segnali analogici, in genere 2 o 4.

Prima di iniziare verifichiamo di disporre di quanto necessario:

La sonda deve apparire come in figura. In particolare si noti la posizione X1 dell’interruttore giallo e la presenza di un anello colorato sul cavo che serve per identificare velocemente la sonda grazie ad un altro anello dello stesso colore all’altro capo del cavo.

Sonda per oscilloscopio

Come sorgente dei segnali utilizzeremo Arduino. Il codice iniziale è il seguente:

void setup() { pinMode(2, OUTPUT);
             }
void loop() { digitalWrite(2, HIGH);
              digitalWrite(2, LOW);
            }

Questo codice alterna velocemente in uscita sul pin 2 un segnale alto ed uno basso. Per iniziare, non serve collegare nulla ad Arduino; in particolare non è possibile cercare di osservare il segnale con un LED: il nostro occhio non è abbastanza veloce e lo vedremmo come "acceso a metà".

Osserviamo un segnale ad onda quadra

Colleghiamo la sonda del canale A dell’oscilloscopio al pin 2 di Arduino. Il coccodrillo nero va connesso a massa (GND).

Avviamo il software Picoscope e cerchiamo di visualizzare sullo schermo un segnale simile al seguente:

Schermata

Per ottenere un'immagine simile occorre impostare una serie di parametri. Descrivere la funzione dei seguenti comandi, visualizzando il loro effetto:

Altre domande a cui rispondere usando i ruler oppure contando i quadretti:

E stesse domande a cui rispondere usando il menu Mesuraments:

Arduino e porte logiche

Colleghiamo una porta logica qualunque dotata di due ingressi ad Arduino e modifichiamo il codice per generare due segnali in modo tale che, in istanti diversi, siano presenti tutte le possibili combinazioni (00, 01, 10 e 11).

Aggiungiamo la seconda sonda al canale B (asse di destra, rosso ed indipendente dal canale A, blu, a sinistra) per mostrare i due pin di Arduino, cioè gli ingressi della porta logica. Di seguito un esempio:

L'oscilloscopio usato possiede solo due canali analogici A e B. Per poter visualizzare anche l'uscita della porta logica useremo gli ingressi digitali D0 → D15 (per cominciare ce ne serviranno solo 3); useremo cioè il Picoscope come analizzatore logico (logic analyser).

Analizzatore di stati logici e Arduino

Ecco cosa dobbiamo aspettarci di vedere: in blu e rosso i due ingressi (nell'esempio seguente duplicati sui canali analogici e digitali), in verde l’uscita (solo digitale).

Trigger diditale avanzato

Note

  1. LED e resistori non sono richiesti
  2. Non è quella disegnata nello schema...
  3. Un comando da USARE CON CAUTELA se non si hanno chiari i suoi limiti, dall'effetto apparentemente simile al time per division: la rotella del mouse permette uno sorta di zoom del segnale in senso orizzontale. Questo metodo fa perdere dettagli del segnale e quindi va usato con attenzione, soprattutto per elevati fattori di ingrandimento
  4. Il pulsante rosso di STOP, da USARE CON CAUTELA permette di bloccare l'immagine, con una funzione apparentemente analoga al trigger. Ovviamente una volta che il segnale è "congelato", ogni cambiamento della realtà non viene più visualizzato, a differenza di quello che permette l'uso del trigger


Pagina creata nell'ottobre 2020
Ultima modifica: 11 novembre 2021


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


Pagina principaleAccessibilitàNote legaliPosta elettronicaXHTML 1.0 StrictCSS 3

Vai in cima