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:


Analog channel * 2 [CH_A] [CH_B]
Digital channel * 2 [CH_C] [CH_D]
Vertical Scale 50mV-10V/div (1-2-5 step) on x1 probe / 200mV -100V/div (1-2-5 step) on probe
Vertical resolution 8 bit
Input coupling AC/DC
Max input voltage 80Vpp (x1 probe) / 400Vpp (x10 probe)
Storage 4K per channel / 8K on single channel
Software trigger type edge, pulse, level (to be added)
Hardware trigger type edge
Trigger source CH1/CH2/EXT
Trigger mode Auto, Normal, Single, SCAN, None
Test Signal generater 10Hz to 8Mhz 2.8Vpp Square Wave, 10Hz to 20Khz 2.8Vpp Sin, Square, Saw, Triangle wave
Storage internal 2MB USB disk, BMP, DAT file
Auto measure Vmax, Vmin, Vpp, Vavr, Vrms, Freq, Period, Pulse, Duty
Cursor measurement Level, Voltage
Display mode CH1, CH2, EXT, CH1+CH2, CH1-CH2, CH1*CH2
Sampling mode real time
Sampling rate 30S/s - 72MS/s
Power Lipo battery
Dimension 98 * 60 * 14.5 (mm)
Weight 80g (without battery)



 
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



ċ
DSO_Sm_V1.6.rar
(75k)
Marco Sinatti,
20 nov 2011, 13:32
ċ
DSO_Sm_V1.7.rar
(57k)
Marco Sinatti,
20 nov 2011, 13:32
ċ
DSO_Sm_V1.8.rar
(76k)
Marco Sinatti,
10 gen 2012, 13:29