Mini Digital Storage Oscilloscope

Oscilloscopio Digitale Open Source

Oramai è diffuso e molto conosciuto questo nuovo gadget made in Cina, un simpatico oscilloscopio tascabile che non ha ovviamente grandi pretese ma è comunque uno strumento apprezzato e utile per chi coltiva l'hobby dell'elettronica.

Il sistema si basa su un processore arm della ST, precisamente un STM32F103 e un FPGA ICE65L04 che ha la funzione principale di gestire il trigger e il buffer fifo che viene alimentato dai valori letti da un convertitore analogico-digitale AD9288-40 con frequenza di sample di 40Mhz.

L'oscilloscopio ha 2 canali per segnali analogici (36Ms/s per canale) e due canali per segnali digitali, inoltre ha un generatore di funzioni integrato e un display a 16 colori da 400x240 pixels, viene alimentato da una batteria lipo da 1000mAh che viene ricaricata dalla stessa presa usb utile al collegamento con il pc.

Tramite usb permette di trasferire i file delle forme d'onda salvate in vari formati, sia grafici (BMP) che in formato excel (CSV), oltre ad alcuni formati propietari.

Queste sono le caratteristiche dichiarate:

La caratteristica di risalto è la filosofia open source adottata, infatti sono disponibili su internet vari firmware, alcuni ufficiali, altri modificati da vari utenti con personalizzazioni più o meno interessanti.

Anche io mi sono buttato sulla modifica del firmware aumentando di volta in volta le funzioni implementate e cercando di eliminare alcuni bug.

Il firmware si divide in 3 file:

APP : File dell'applicazione

SYS : File di sistema, dove vengono definite funzioni e configurazioni hardware

FPGA : programma dell'fpga per la gestione del trigger e del buffer fifo

La modifica del software in genere viene eseguita modificando il file APP, tuttavia alcune implementazioni importanti richiedono l'aggiornamento anche del SYS o dell'FPGA.

Di seguito la storia delle modifiche da me apportate, scaricabili in fondo alla pagina:

Versione APP251_V1.0 Richiede FPGA V2.22 - SYS1.50

-Tasto quadrato = Abilita il buffer ridotto a una schermata, disabilita lo scorrimento

-Tasto triangolo = cambio visualizzatori misure

-Corretto visualizzazione unità di misura della frequenza

Versione APP251_1.1 Richiede FPGA V2.22 - SYS1.50

-Aggiunto opzione portata x10 in modo da leggere la tensione corretta sui meter quando si utilizza la sonda x10

-Aggiunto accesso veloce ai cursoti V1 V2 T1 T2 in modo da poter andare direttamente a fare misure senza scorrere tutti i menù. Premendo il tasto si accede a V1, ripremendolo a V2, etc... dopo T2 si torna alla posizione da cui si era partiti

-Aggiunto livello trigger automatico, si setta da solo al centro della forma d'onda, il tasto è comodo anche per accedere al volo al menù trigger

-Aggiunto indicatore della batteria in carica, mentre stà caricando il riempimento della batteria scorre

-Tolto la modalità NONE sulla base dei tempi, perchè era identica a SCAN

-Modificato l'indicazione dell'impostazione a frame singolo, adesso viene evidenziata con un rettandolo sull'indicatore del buffer in basso

-Migliorata l'acquisizione a frame singolo che lavorava male in alcune portate

Versione APP251_1.3 Richiede FPGA V2.22 - SYS1.50

-Visualizzazione a schermo intero nascondendo i meter

-Durante l'uso dei cursori, se i meter sono nascosti appare comunque il DeltaT e il DeltaV

-Risolto bug sulla visualizzazione della linea che appare sui primi pixel dello schermo

-Risolto bug aggiornamento livello trigger automatico

-Nella modalità trigger automatica si può decidere di impostare in automatico il livello a 1/2 1/4 3/4 della Vpp

-Modificato visualizzazione carica batteria con scorrimento quando effettivamente è in carica

-Aumentato velocità di scorrimento dei cursori di misurazione

-Modificato modalità di riduzione del buffer, adesso quando siamo in "frame singolo" in realtà lavora così:

SCAN = cattura e visualizza un solo frame, purtroppo non è un roll vero

NON SCAN = cattura 1,6 frame, in questo modo il trigger funziona bene, si ha la possibilità di scorrere la visualizzazione

-In modalità SCAN non si hanno più deformazioni della forma d'onda al centro dello schermo

-In modalità SCAN tolgo il riferimento della XPOS perchè non serve

-Aggiunto modalità PWM e regolazione ampiezza segnale in uscita, modificando il generatore di funzioni in questo modo:

SQUARE = Onda quadra da 0Hz-20Khz con ampiezza regolabile da 0 a 2,6V

TRIANG = Onda triangolare da 0Hz-20Khz con ampiezza regolabile da 0 a 2,6V

SEW = Onda a dente di sega da 0Hz-20Khz con ampiezza regolabile da 0 a 2,6V

SINUS = Onda sinusoidale da 0Hz-20Khz con ampiezza regolabile da 0 a 2,6V

PWM = Segnale PWM con duty regolabile da 0 a 100 %, frequenza da 10Hz a 8Mhz.

Versione APP251_1.4 Richiede FPGA V2.22 - SYS1.50_1.6

-Funzione X_Y (da terminare)

-Cambio rapido menù meter modificato, adesso con i canali C e D ad OFF quando si cambia i meter non li imposta sui canali disabilitati

-Sistemato SYS per il problema del range tensione

-Sistemato SYS sul menù calibrazione

-Rimodificato singolo frame, quando impostato non fa scorrere XPOS

Versione APP251_1.5 Richiede FPGA V2.22 - SYS1.50_1.6

-Corretto visulizzazione DeltaV quando X10 sul canale B (prendeva sempre il canale A)

Versione APP251_1.6 Richiede FPGA V2.22 - SYS150_1.6

-Modalità SCAN a singolo frame in vero ROLL

-Aggiunto 1-2-5Hz su generatore

-Portato frequenza massima generatore a 50Khz

-Aumentato da 36 a 72 campionamenti la generazione delle forme d'onda

Versione APP251_1.7 Richiede FPGA V2.22 - SYS150_1.6

-Invertito titolo generatore e tempo base

-Spostato meter duty e tensione generatore

-Implementato XY_S (scan) XY_A (auto) da terminare

-NORMAL migliorato, non cancella lo schermo quando attende un nuovo trigger

Versione APP251_1.8 Richiede FPGA V2.22 - SYS150_1.6

-Migliorato griglia e sistemato scala su modalità XY