Oscilloscopio USB DIY: una soluzione economica per analizzare le forme d’onda

Digitalizzatore di segnali da interfacciare al computer per vedere, memorizzare e analizzare le forme d’onda tramite un apposito software. Ideato per chi muove i primi passi in questo mondo, consente di effettuare misure su circuiti audio e digitali a bassa frequenza.

Il moderno oscilloscopio è decisamente differente da quello a CRT che abbiamo usato nei nostri banchi di laboratorio fino a una decina di anni fa; infatti il prezioso strumento per visualizzare le forme d’onda ha subìto varie trasformazioni, la più rilevante delle quali è indubbiamente quella che ha visto il passaggio dall’analogico al digitale; ciò ha permesso di implementare potenti funzionalità come l’elaborazione del segnale e l’analisi delle forme d’onda.

Oggi l’oscilloscopio è digitale e, nella versione stand-alone, dispone di un visualizzatore LCD; ma vanno prendendo piede anche gli strumenti da abbinare al computer, per i quali il termine “oscilloscopio” è quasi improprio: si tratta infatti di digitalizzatori di segnale, che trasformano in dati numerici le grandezze campionate dai propri ingressi, inviando i dati corrispondenti a un software che gira su computer e che esegue, oltre alla visualizzazione in tempo reale, tutta una serie di operazioni consentite dalla grande capacità di memorizzazione dei Personal Computer.

Gli oscilloscopi digitali oggi includono convertitori analogico/digitali (ADC) ad alta velocità di campionamento e di varia risoluzione (tipicamente 8 bit). Gli oscilloscopi basati su PC offrono il vantaggio di poter definire la funzionalità dello strumento da software; questo significa non solo poter compiere misure generali, ma anche, con opportune modifiche, misure specifiche.

Inoltre tali strumenti possono funzionare come analizzatore di spettro, frequenzimetro, ecc. Gli oscilloscopi del genere offrono diversi vantaggi rispetto a quelli tradizionali perché l’hardware è un digitalizzatore e la funzione di visualizzazione e analisi delle forme d’onda è implementata dal software che gira sul PC.

Essendo strumenti pratici ed economici rispetto a quelli stand-alone, abbiamo deciso di proporvi un progetto del genere: si tratta di un digitalizzatore da PC, connesso via USB, che abbinato all’apposito software permette di realizzare le funzioni dell’oscilloscopio digitale tradizionale ed altre addizionali.

Lo strumento non è certo professionale, ma permette a chi è alle prime armi o non deve misurare frequenze troppo elevate, di compiere le sue prime misure.

Schema elettrico dell’oscilloscopio

Il circuito è gestito da un potente microcontrollore Microchip PIC18F24J50, basato su architettura ad 8 bit e provvisto di interfaccia USB 2.0 Full Speed di tipo Device, che consente di interfacciarlo direttamente alla porta USB di qualsiasi computer; il micro integra una memoria di programma Flash da 16 kB, una RAM da 3.800 byte, 2 timer a 8 bit e 3 a 16 bit, due moduli Capture/Compare/PWM, un A/D converter da 10 bit assegnabile a 10 canali. Sul piano della connettività, oltre all’USB il microcontrollore implementa 2 UART, 2 A/E/USART, 2 link SPI e 2 bus I²C.

Il PIC18F24J50 funziona a tensione di valore compreso tra 2 e 3,6 volt ma i suoi input digitali sono 5V-tolerant, quindi possono essere pilotati con segnali TTL tradizionali; il clock è ricavato dall’oscillatore interno con l’aiuto del quarzo X1 (4 MHz) e dei condensatori C5 e C6.

L’impiego del PIC18F24J50 consente di ottenere dal digitalizzatore una frequenza di campionamento di 1,5 Ms/s, corrispondenti a 1,5 MHz.

Nel circuito, il microcontrollore acquisisce i segnali campionati dal multiplexer analogico a due canali 74HCT4052 (siglato IC1 nello schema elettrico), che nel nostro caso permette di selezionare in sequenza 6 portate attraverso il controllo degli ingressi di scansione con due segnali di clock che fornisce sui propri piedini RB0 ed RB1: ad ogni impulso, l’uscita di ciascun canale del multiplexer presenta la tensione letta dal successivo ingresso.

Per il canale 1 gli input sono 1Y0, 1Y1, 1Y2 (1Y3 non è usato) quindi inizialmente sul piedino 1Z si trova il segnale prelevato da 1Y0; al primo impulso di clock su S1 passa il segnale presente su 1Y1, al secondo quello su 1Y2 ecc. Il discorso per l’altro canale è simile: all’inizio passa su 2Z il segnale presente su 2Y0, al primo impulso su S2 passa il segnale su 2Y1, al secondo quello su 2Y2 ecc.

Le uscite dei due canali sono unite, cosicché di fatto il doppio multiplexer diventa unico e permette di prelevare 7 livelli di segnale ottenuti dal partitore a scala di resistenze R11/R16/R20/R24/R28 (ognuna ha in parallelo un condensatore di filtro per spegnere impulsi spurii che possono essere generati dal passaggio tra una linea e l’altra) e dai condensatori C1, C2, C4, i quali, insieme alla resistenza interna degli switch CMOS contenuti nel 74HCT4052, formato da celle passa-alto che filtrano i segnali e impostano una certa attenuazione.

La linea RB2 del microcontrollore pilota la base del transistor NPN T2, il cui collettore alimenta la bobina del relé RL1, opportunamente protetto dal diodo D7 che spegne le extratensioni inverse generate dalla stessa all’interdizione; lo scambio di RL1 permette di selezionare l’accoppiamento: se è chiuso (relé a riposo, ovvero RB2 del micro a zero logico) l’ingresso dello strumento (IN) è accoppiato in continua (DC coupling) mentre quando il relé è eccitato (RB2 a livello logico alto) l’ingresso è accoppiato in alternata (AC coupling) attraverso il condensatore C24, che a riposo sarebbe cortocircuitato dallo scambio del relé.

Notate, sulla linea dei 5V, il filtro L/C composto da L2 e C18/C29, la cui funzione è sopprimere i pur deboli disturbi generati dall’assorbimento di corrente o dalla sua assenza, rispettivamente quando il relé viene eccitato o viene rimesso a riposo; ciò per limitare il più possibile le interferenze che potrebbero affliggere la misura dei segnali più deboli.

Le uscite dei due stadi del multiplexer analogico confluiscono nell’amplificatore facente capo a IC1a, un operazionale TLV272 a basso rumore che troviamo configurato in modo non-invertente ed accoppiato in continua; l’accoppiamento in DC è necessario in quanto l’amplificatore deve trattare anche i segnali in cc che si presentano al suo ingresso quando l’IN dell’oscilloscopio è accoppiato in DC.

Il guadagno in tensione (G) dello stadio facente capo a IC2a è determinato dalla rete di retroazione formata da RV1/R25 e da R19, secondo la relazione:

G = (RV1+R25+R19) / R19

Essendo RV1 un trimmer, il guadagno può essere regolato in fase di taratura per ottenere la massima dinamica senza cimare il segnale.

L’ingresso invertente dell’IC2a è polarizzato con la tensione di riferimento fornita dal secondo operazionale contenuto in IC2, configurato come amplificatore invertente con guadagno pari a 0,5: IC2b riceve sull’ingresso invertente 3,3 volt, che divide per due, dato che il guadagno G in questa configurazione è pari a:

G = -R21/R26

Siccome l’amplificatore è invertente, gli 1,65 volt sono negativi. Tale tensione viene ulteriormente ridotta dal partitore che R23 forma con R19, arrivando a -0,52 V, ed è applicata ad RA5 del microcontrollore, oltre che fornita come riferimento alla linea RC1 (i riferimenti servono per l’ADC) dopo essere stata opportunamente filtrata dalle due celle passa-basso formate da R27/C15 e da R9/C14, il cui scopo è eliminare disturbi di vario genere provenienti dall’alimentazione ed eventuale ripple.

Come vedremo tra breve, infatti, il circuito preleva l’alimentazione principale dall’USB del computer e sappiamo che l’alimentazione dei PC non è proprio pulitissima, dato che proviene da alimentatori a commutazione.

L’uscita dell’IC2a fornisce all’ADC del microcontrollore (associato a due canali: RA0 ed RA3) il segnale da digitalizzare e inviare al computer sotto forma di dati via USB; per sopperire a eventuali ritardi di comunicazione, il micro permette di bufferizzare le misure fino a 1.000 campionamenti.

Procediamo con l’analisi dello schema e vediamo che siccome IC3 è alimentato a 3,3 volt e l’operazionale a 5V duali, per evitare che in caso di superamento, da parte della tensione di segnale riportata dal piedino 7 dell’IC2a sulle linee RA0 ed RA3 l’IC3 possa essere danneggiato, sono stati collocati i diodi al silicio D5 e D6, i quali bypassano RA0 ed RA3 nel caso la tensione d’uscita di IC2a superi il massimo rispettivamente positivo e negativo.

Trattandosi di diodi Schottky, nel primo caso, su RA0 ed RA3 si registrerà una tensione di 0,2 V superiore a quella di alimentazione del microcontrollore, mentre nel secondo si troveranno -0,2V; sono valori più che tollerabili dagli I/O del micro.

Vediamo adesso la sezione di alimentazione, che consta di due stadi: uno indipendente basato sul regolatore VR1 ed uno governato dal microcontrollore. L’alimentazione principale viene prelevata dai contatti + (1) e – (4) del connettore USB SK3, la cui tensione di 5 volt viene filtrata dai condensatori C11 e C25, quindi applicata all’ingresso del regolatore lineare VR1 e al piedino 8 del doppio operazionale U2, tramite il filtro L1/C13/C26, che insieme a C11 e C25 forma una cella a pi-greca usata per sopprimere i disturbi in arrivo dall’USB del computer e a non propagare a quest’ultimo eventuali interferenze presenti nella nostra scheda.

Quando il circuito è collegato al PC e questo è acceso, o comunque fornisce alimentazione all’USB, il LED LD1 si illumina indicando che la scheda è sotto tensione. Il regolatore VR1 è un LM317 montato nella tipica configurazione, che eroga tra il contatto OUT e la massa una tensione stabilizzata il cui valore dipende dal rapporto tra le resistenze R14 ed R5: nel nostro caso, si tratta di 3,3 volt.

La formula che fornisce la tensione d’uscita dell’integrato in funzione della resistenza di retroazione R5 e di quella di massa R14 è:

Vout = 1,25V (1 + R14/R5) + Iadj x R14

dove 1,25V è il potenziale tra il piedino ADJ e la massa, mentre Iadj è la corrente che scorre da ADJ verso massa, che vale tipicamente 100 microampere. Essendo R5 pari a 680 ohm e R14 da 1,1 kohm, otteniamo 3,38 volt.

L’alimentazione negativa per gli operazionali viene ottenuta mediante un invertitore di tensione costruito dall’hardware facente capo ai transistor T1 e T3, dai diodi D1, D2, D3, D4, DZ1, nonché dai condensatori ad essi collegati; il tutto viene pilotato dalla linea RC2 del microcontrollore, che per impostazione del firmware, genera continuamente un segnale rettangolare di frequenza costante a livello 0/3,3 volt che determina la commutazione dei transistor dell’invertitore di tensione.

Il funzionamento dello stadio è il seguente: quando RC2 si trova a livello logico basso, T1 è interdetto mentre T3 è in saturazione, cosicché con il proprio collettore alimenta i condensatori C20 e C21; il primo si carica attraverso D3, D2, D1 (gli ultimi due bypassano l’elettrolitico C30) e il secondo attraverso D2. I diodi sono tutti Schottky, quindi hanno una caduta quasi irrilevante (tipicamente 0,2V ciascuno) rispetto alla tensione di carica dei condensatori.

Quando il segnale rettangolare assume il livello logico alto, la situazione si inverte e T3 va in interdizione (grazie al resistore di pull-up R6, che ne mantiene la base a circa 5 volt) mentre T1 va in conduzione, scaricando C21 e C20: il primo fornisce -tramite D1 e T1- la propria energia a C30, che perciò si carica a 5 volt negativi rispetto a massa, mentre il secondo cede la propria carica -tramite D4- a C16 e C31, che si caricano a 5 volt negativi, eventualmente limitati mediante il diodo Zener ZD1. Nel successivo ciclo C30 cede la propria energia a C31 e C16, caricando questi condensatori sempre a 5 volt.

Realizzazione pratica

L’oscilloscopio è in scatola di montaggio. Quindi prendere il PCB e disponetevi le resistenze e gli zoccoli per gli integrati, quindi le induttanze, i diodi al silicio, il trimmer e i condensatori non polarizzati. Procedete con i transistor, il quarzo, gli elettrolitici, il connettore USB, il regolatore LM317 e il relé, quindi sistemate il LED. Se montate il kit, inserite i distanziali in plastica per la piastra di copertura e tenete LD1 ad un’altezza che permetta di farlo spuntare dall’apposito foro.

Per l’orientamento dei componenti polarizzati fate riferimento al disegno di montaggio.

Il circuito va completato collegandogli i puntali, che possono essere tranquillamente quelli di un multimetro digitale ( cavetti terminanti con coccodrilli), vista la banda passante relativamente bassa dello strumento; procurati i puntali, tagliate gli spinotti (banane) dai lati opposti dei cavetti e spelate i fili, quindi introduceteli nel foro grande più vicino al foro della basetta e fateli rientrare da quello attiguo, infilandoli -poi- ognuno nella rispettiva piazzola IN SK1 (il rosso va nella piazzola collegata a C24/RL1 e il nero a quella di massa).

Per non sbagliare fate riferimento alla Fig. 1. In alternativa ai puntali potete collegare, con del cavetto coassiale, i contatti IN a un connettore BNC femmina da pannello (da fissare a una parete del contenitore del vostro strumento) come quelli degli oscilloscopi tradizionali, ricordando che la calza-schermo deve unire la massa del circuito e l’involucro del BNC, mentre il conduttore centrale deve collegare insieme il contatto centrale del connettore e l’altra piazzola IN.

Fig. 1 Collegamento dei puntali sonda.

 

 

Per gestire la scheda serve un apposito software (per ambiente Windows dall’XP in poi) scaricabile dalla pagina web del prodotto.

Una volta scaricato il relativo archivio compresso, lo si scompatta e si conferma l’avvio dell’installazione (Fig. 2).

Al termine dell’installazione, l’installer propone la schermata corrispondente, nella quale dovete fare clic su Finish per completare la procedura e tornare al sistema operativo.

Fig. 2

 

La scheda dell’oscilloscopio non richiede l’installazione di alcun driver aggiuntivo, perché la periferica USB Microchip per impostazione predefinita viene riconosciuta come periferica HID; è anche possibile personalizzarla acquistando e programmando un driver specifico da Microchip, ma in questo caso serve a poco.

Dopo l’installazione collegate il cavo USB alla scheda e al PC, quindi verificate che il LED rosso si accenda e attendete che avvenga il rilevamento e che la procedura corrispondente sia completata, quindi ruotate il cursore del trimmer RV1 nella posizione centrale.

Adesso avviate il software EDU09.EXE precedentemente installato; se l’unità è stata collegata per la prima volta, la procedura di calibrazione si avvierà automaticamente.

Se non dovesse avviarsi in automatico, nel menu Options selezionate “Calibrate” e poi cliccate su OK per avviare la calibrazione e attendete il completamento dell’operazione.

È anche possibile effettuare una calibrazione avanzata, vale a dire la messa a punto del circuito amplificatore d’ingresso; allo scopo è richiesta una batteria da 1,5V da collegare come mostrato nella Fig. 3.

Questa calibrazione non è indispensabile; la si può eseguire quando si desidera ottenere maggior precisione nelle proprie misurazioni. Per effettuarla procedere così:
• selezionare “Expert Settings” dal menu “Options”;
• selezionare “Waveform Parameters…” dal menu “View”;
• nella finestra “Waveform Parameters” spuntare “DC Mean”;
• misurare la tensione della batteria con un multimetro e prenderne nota;
• collegare la batteria all’ingresso dell’oscilloscopio;
• impostare “0,5V” nella casella Volts/Div e quindi fare clic sul pulsante “Run”;
• regolare il trimmer RV1 finché il valore “DC Mean” visualizzato nella finestra “Waveform Parameters” non corrisponde al valore della tensione della pila misurato in precedenza.

Adesso l’oscilloscopio digitale è pronto all’utilizzo e potete fare con esso le vostre misure. Per prenderci un po’ la mano suggeriamo di realizzare un circuito dimostrativo (Tutor Kit per Oscilloscopio) che, alimentato a tensione alternata, fornisce ben 6 segnali campione con cui potete fare le prime prove di visualizzazione e misura. Di questo circuito parleremo in un apposito articolo nel prossimo fascicolo di Elettronica In.

Fig. 3 Calibrazione avanzata del circuito d’ingresso.

Il software

Il programma da PC che permette di visualizzare le forme d’onda e analizzare i segnali prevede tre funzionalità:
• oscilloscopio;
• analizzatore di spettro;
• registratore di transienti (d’impulsi).

Le schermate campione sono illustrate rispettivamente in Fig. 4, Fig. 5, Fig. 6.

Nell’articolo del generatore di 6 segnali vedremo anche le impostazioni dello strumento per effettuare la misura e la visualizzazione di segnali campione; per ora sappiate che l’impostazione predefinita (ovvero quella dopo l’installazione del software) prevede la visualizzazione della sola funzione oscilloscopio (nella finestra di lavoro è presente la sola tab “Oscilloscope”) mentre aprendo il menu “Options” e cliccando su “Expert Settings”, si visualizzano le tre funzioni e appaiono anche le tab Spectrum Analyzer e Transient Recorder.

Per tornare alla visualizzazione predefinita riaprire il menu Options e spuntare Basic Settings. Il pannello dell’oscilloscopio riporta i comandi canonici, ossia base dei tempi (Time/Div), ampiezza (Volts/Div) e modalità di trigger. L’acquisizione si avvia con il pulsante Run.

I primi due comandi del menu File permettono di aprire acquisizioni salvate in precedenza.

Fig. 4 Schermata Oscilloscopio.

 

 

Fig. 5 Schermata analisi di spettro.

 

 

Fig. 6 Schermata del registratore di transienti.

 

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Menu