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