Open Hardware DS logic (Massimiliano D`Ambrosio)

Transcript

Open Hardware DS logic (Massimiliano D`Ambrosio)
29 novembre 2014 Udine
http://opensourceday.org
DS Logic
Multifunction
Instruments For
Everyone
Streaming LIVE
Massimiliano D’Ambrosio
google.com/+MassimilianoDAmbrosio
@iv3unm
plus.hacklabudine.it
plus.gdgudine.it
DSLogic
Multifunction Instruments For Everyone
DSLogic
Multifunction Instruments For Everyone
Cos’è?
DSLogic è un strumento “open” da laboratorio, principalmente per uso
elettronico. Svolgere diverse funzioni grazie alla sua FPGA nel modulo base e
dal software di gestione. FPGA permette un ottima versatilità ed utilizzo.
É strumento in grado di coprire diverse esigenze di analisi.
Cosa può fare?
Un analizzatore di stati logici e di protocollo, un oscilloscopio digitale, RF
analyzer… grazie alla sua natura open puoi essere tu stesso a sviluppare dei
moduli hardware aggiuntivi e/o estensione software da poter applicare sia in
settore elettronica ma anche altri, come in campo medico, InternetOfThings,
DAQ...
La board DSLogic si collega al nostro computer tramite la porta USB. Il software
DSLogic permette di acquisire i dati, analizzarli e visualizzarli.
4 DSLogic
hardware
DSlogic
la board
principare
256Mbits
SDRAM
(16Mbit
per CH)
USB
Controller
FPGA Xilinx
Spartan-6 (xc6slx9)
USB 2.0
FPGA
Field Programmable Gate Array
FPGA è la parte cruciale di tutto il sistema.
Si occupa del campionamento ed acquisizione
dei dati. Questi vengono inviati ed elaborati dal
software DSLogic sul computer.
Nella versione definitiva della board è stato
utilizzato un FPGA Xilinx della famiglia
Spartan®-6 LX ( xc6slx9 )
Le prestazioni di questo FPGA permettono di
avere un Maximum sample rate di 400MHz.
Un dispositivo Field Programmable Gate Array è un circuito integrato le cui funzionalità sono
programmabili via software. Tali dispositivi consentono l'implementazione di funzioni logiche anche
molto complesse, e sono caratterizzati da un'elevata scalabilità. // fonte wikipedia
Caratteristiche
hardware
Interface Specs
16 CH (0 ~ 15)
Recommanded input voltage range: -0.6V to +6V
Absolute input voltage range: -30V to +30V
Input impedance: 250Kohm
Maximum Input Bandwidth: 50MHz
Compatible voltage systems: 1.8V/2.5V/3.3V/5V
Threshold for 1.8V to 3.6V: 0.7V(Low) / 1.4V(High)
Threshold for 5V: 1.4V(Low) / 3.6V(High)
CLK, TI, TO:
Compatible voltage systems: 3.3V
Maximum state clock: 50MHz
Sample Specs
Maximum sample rate:
4 channels @ 400MHz
8 channels @ 200MHz
16 channels @100MHz
Maximum sample depth:
Total 256M (16M samples per
channel)
Caratteristiche
software (v 0.4)
Una volta acquisiti i segnali dalla FPGA questi vengono inviati al software
DSLogic sul nostro computer. I dati “grezzi” ricevuti vengono elaborati e
visualizzati oppure salvati per una successiva analisi.
DSLogic permette di avere:
●
●
●
●
●
analizzatore di stati logici
analisi di protocolli
acquisizione dati (DAQ, Data AcQuisition)
osciloscopio a due canali (tramite modulo hardware di espansione)
diverse funzioni software di “utilità” pratica nel uso.
È un progetto opensource, pertanto le funzionalità e migliorie posso essere
portate anche dalla comunità
Logic Analyzer
File open, save and capture
Logic Analyzer
Arduino PWM, analogWrite() con delay(15)
Logic Analyzer
Arduino PWM, usando servo library
DSLogic
extension
I moduli permetto di aggiungere funzioni HARDWARE al modulo base. Questi si
collegano alla board DSLogic. Attualmente sono disponibili i moduli oscilloscopio e
wireless.
È possibile sviluppare dei moduli da abbinare alla DSLogic in base alla nostre esigenze.
DSLogic
Wireless extension
Wireless Specification
●
●
●
●
●
●
copertura di circa 90m a 250kbps area aperta
Antenna ceramica a 2.4GHz integrata
250kbps, 1Mbps and 2Mbps on air data rates
Auto ACK
Auto Re-Transmit
6 data pipe MultiCeiver™
DSLogic
arduino proble board - WIRELESS
Specification
●
●
●
●
●
●
VCC 3V - 5.5V
copertura di circa 90m a 250kbps area aperta
Antenna ceramica a 2.4GHz integrata
250kbps, 1Mbps and 2Mbps on air data rates
Auto ACK
Auto Re-Transmit
Oscilloscope
Oscilloscope Specification:
●
●
●
●
●
●
●
Bandwith: 30MHz
Input Channels: 2 Channels
Max Sampling Rate: 200MHz @ 1 Channel / 100MHz @ 2 Channels
Input Range: ±50 mV ~ ±50 V
Input coupling: AC / DC
Input characteristics: 1 MΩ ∥ 15 pF
Overvoltage protection: ±100 V (DC+AC peak)
Oscilloscope
Oscilloscope
CH0 abilitato. Fonte segnale: Elecraft N-Gen (Wide Band Noise Generator)
CH1 disabilitato
protocol decoder
DSLogic è in grado di
decodificare fino a 38 protocolli
(alla versione 0.4),
tra cui:
●
●
●
●
●
●
●
●
●
●
I 2C
I 2S
SPI
CAN
USB
DMX512
UART
1-Wire
PWM
...
protocol decoder
analogWrite(pin,191)
Arduino PWM, analogWrite()
analogWrite(pin,125)
1
3
2
protocol decoder
Arduino PWM, analogWrite()
trigger System
Due modalità di trigger (semplice
ed avanzato) sono sopportate da
DSLogic.
Con i pulsanti di trigger attiviamo
rapidamente i flag sullo stato
basso, alto, salita o discesa.
Si posso attivare un insieme di
trigger su più canali.
Questo da inizio al
campionamento al trigger
impostato
altre funzionalità
●
Pattern Search
Permette di ricercare su più canali lo stato 0, 1, salita e/o discesa
●
●
●
zoom IN/OUT dei segnali con la semplice rotellina del mouse
cambiare colore per ogni canale
indicazione veloce posizionano il mouse sul segnale acquisito.
3 DSLogic
software opensouce
DSLogic software
Multifunction Instruments For Everyone
●
●
●
la componente software di DSLogic è opensource rilasciato con licenza GNU
General Public License (GPL), versione 3
È disponibile per
○ Windows
○ OS X
○ GNU/Linux e su altri OS e/o su hardware diverso, come ARM,
compilando i sorgenti.
si scarica da:
○
i binari (Win, OS X) e sorgenti per Linux da http://www.dreamsourcelab.
com/download.html
sorgenti dSLogic
Per GNU/Linux non vengono rilasciati i binari e vanno compilati dai sorgenti che
si trovano su:
●
●
http://www.dreamsourcelab.com/download.html
https://github.com/DreamSourceLab/DSLogic
Questa non comporta particolari problemi seguendo quando scritto nel file
INSTALL
------------------------------------------------------------------------------INSTALL
------------------------------------------------------------------------------Requirements
libsigrok4DSLogic
- gcc (>= 4.0)
- make
- autoconf >= 2.63
- automake >= 1.11
- libtool
- pkg-config >= 0.22
- libglib >= 2.32.0
- libzip >= 0.10
- libusb-1.0 >= 1.0.16
- check >= 0.9.4 (optional, only needed to run unit tests)
DSLogic-gui
- git
- g++
- make
- libtool
- pkg-config >= 0.22
- cmake >= 2.6
- libglib >= 2.28.0
- Qt >= 4.5
- libboost >= 1.42 (including the following libs):
- libboost-system
- libboost-thread
- libsigrok4DSLogic >= 0.2.0
sigrok
Il software DSLogic usa le librerie del progetto opensource sigrok per l’
elaborazione dei dati ricevuti dalla FPGA.
Questo è una suite di software per l'analisi del segnale che supporta vari tipi
di dispositivi. Se avete un tester usb e/o altro strumento con un interfaccia
è probabile che sia sopportato.
Logic analyzers
Mixed-signal devices
Oscilloscopes
Multimeters
LCR meters
Sound level meters
Thermometers
Hygrometers
Anemometers
Light meters
Energy meters
DAQs
Dataloggers
Function generators
RF receivers
Spectrum analyzers
Power supplies
GPIB interfaces
Potential other
candidates
www.sigrok.org
sigrok
sigrok è anche in grado di decodificare diversi
protocolli come:
●
●
●
●
●
●
●
USB
I2C
I2S
SPI
CAN
1-WIRE
…
Per un elenco completo http://www.sigrok.org/wiki/Protocol_decoders
Visto che DSLogic si basa su sigrok era ovvio ;-)
DSLogic-gui
2 DSLogic
é openharware
?
Il progetto DSLogic oggi è
openhardware?
Per la parte software
abbiamo i sorgenti come già
visto.
Per la parte hardware
attualmente solo gli schemi
della board solo in
PDF/PNG.
Questo NON è sufficiente
per essere
#openhardware
#oshw
Definizione: I principi dell’Open Source Hardware
(OSHW) 1.0
http://www.oshwa.org/definition/italian/
1. La documentazione
L’hardware deve essere rilasciato con la
documentazione, inclusi i file di progettazione, e deve
permettere la modifica e la distribuzione dei file di
progettazione. Se la documentazione non è fornita con il
prodotto fisico, ci deve essere un modo ben
pubblicizzato di ottenere tale documentazione per non
più di un ragionevole costo di riproduzione,
preferibilmente il download via Internet senza spese. La
documentazione deve includere i file del progetto nel
formato preferito per apportare modifiche, ad esempio, il
formato nativo del file di un programma CAD. File di
progettazione volutamente offuscati non sono ammessi.
Forme intermedie analogiche al codice informatico
compilato, non sono ammessi come sostituti. La licenza
può richiedere che i file di progettazione siano forniti in
formato open.
Leggendo il primo punto della definizione vediamo che manca:
a.
Schema elettrico disponibile in formato CAD scaricabile dal sito del
produttore // È disponibile solo in PDF
b.
Layout del PCB (file gerber) // scaricabile dal sito del produttore
c.
elenco dei componenti/materiale disponibile in singoli pezzi (Bill of
Materials BOM) // componenti che normalmente disponibile da
distributori/rivenditori di componenti elettronici...
DSLogiC + EMBEDDED
Sul mercato troviamo diverse board
embedded ARM e x86 da abbinare al DSLogic
senza usare un computer (desk/notebook).
Usare una scheda embedded ci permette di
ottenere uno strumento personalizzabile in
base alle nostre necessità e con spazio
ridotto.
1 DSLogic
un po di storia su come è nato questo progetto
https://www.kickstarter.com/projects/dreamsourcelab/dslogic-multifunction-instruments-for-everyone
Il progetto è stato lanciato su Kickstarter a
dicembre 2013 dalla dreamsourcelab.com
Il primo goal a $ 10K
raggiunto in pochi giorni
(circa il 60% nelle prime 24
ore).
Hanno definito dei goal
successivi con delle
modifiche hardware ed
opzioni rispetto al progetto
originale.
Con i 30K c’è stato la
modifica più significativa
con il cambio della FPGA,
permettendo di migliorare le
prestazioni del DSLogic
DSLogiC
DSLogic software si può usare una modalità demo. Questa permette di
provare le varie funzioni del software senza acquistare hardware.
Il software è scaricabile da
http://www.dreamsourcelab.com/download.html
0 domande?
massimiliano@beaglebone:~$ cat contact.json
{
"Name":"Massimiliano D'Ambrosio",
"G+":"google.com/+MassimilianoDAmbrosio",
"Twitter":"@iv3unm",
"HackLab Udine": {
"Site":"www.hacklabudine.it",
"G+":"plus.hacklabudine.it",
"Twitter":"@hacklabudine",
"memo":"unOfficial Community BeagleBone Italia"
},
"Google Developer Group Udine": {
"Site":"www.gdgudine.it",
"G+":"plus.gdgudine.it",
"Twitter":"@gdgudine"
}
}
massimiliano@beaglebone:~$ sudo shutdown now
[sudo] password for massimiliano:
Broadcast message from root@beaglebone (pts/0) (Sat May 10 20:33:39
2014):
The system is going down to maintenance mode NOW!
OSD ritorna nel 2015
http://opensourceday.org