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