REDPITAYA: IL LABORATORIO ELETTRONICO OPEN SOURCE di MARCO MAGAGNIN Presentiamo uno strumento programmabile di misura ed acquisizione dati, open source, realizzato utilizzando il SoC Xilinx Zynq 7010, finanziato con KickStarter ed in grado di essere personalizzato ed adattato a molteplici esigenze applicative. 52 Maggio / Giugno 2014 ~ Elettronica In U n altro successo reso possibile dalla formula di finanziamento basata su Kickstarter, il sito web di crowdfunding per progetti creativi, dove i “finanziatori” sono le persone interessate ad essere le prime ad entrare in possesso e sperimentare i prodotti proposti. L’idea - che per essere realizzata richiedeva 50.000 $ di finanziamento - ha ottenuto invece oltre 256.000 $ di fondi da parte degli aderenti. Di che si tratta? Di una vera prelibatezza: uno strumento “virtuale” di misura, acquisizione, elaborazione e presentazione dati, riconfigurabile e personalizzabile, delle dimensioni di una carta di credito o poco più. Il cuore è un SoC Zynq 7010, una specie di mostro che raggruppa al suo interno una piattaforma FPGA ed un processore dual core Cortex A9 e che, guarda caso, ospita a bordo una distribuzione GNU/ Linux per la completa gestione della scheda. “Completa gestione” significa che basta accendere la scheda e collegarla in rete per avere le funzioni, preinstallate, direttamente disponibili su un browser web. Come al solito non abbiamo resistito alla tentazione di aprire la scatola, non appena ricevuta, ed a mettere in funzione la scheda. Nel farlo non sono mancate Strumentazione le sorprese piacevoli. La scheda in nostre mani è un’anteprima e quindi la confezione non comprendeva alcuno degli accessori disponibili, come la SD Card con il sistema operativo precaricato, l’alimentatore e le sonde per la misura e l’acquisizione dati. Beh, ad essere sinceri, un minimo di istruzioni le abbiamo lette. Il file compresso per preparare la SD Card con il sistema operativo e l’immagine FPGA è scaricabile dal sito https://www.dropbox. com/s/8z9tpgq88fm0zqw/ redpitaya-SD-0.90-2991278-apps-0.90-149-1278. zip. Il sistema operativo Elettronica In ~ Maggio / Giugno 2014 53 Fig. 1 CARATTERISTICHE TECNICHE g Processore: ARM Cortex A9 dual core Chip NEON a singola e doppia precisione in Floating Point per ciascun processo g Cache livello 1: 32 KB per le istruzioni e 32 KB per i dati per ciascun processore g Cache livello 2: 512 KB g Memoria On-Chip: 256 KB g Interfacce di memoria: DDR3, DDR3L, DDR2, LPDDR2, 2x Quad-SPI, NAND, NOR g Periferiche: 2x USB 2.0 (OTG), 2x Tri-mode Gigabit Ethernet, 2x SD/SDIO g Piattaforma FPGA: Zync 7010 g Logic Cells: 28K Logic Cells g BlockRAM (Mb): 240 KB g DSP Slices: 80 g Coprocessore: Fig. 2 La famiglia di moduli Zynq-7000 è stata realizzata per combinare la possibilità di programmazione software, tipica di un Processore per elaborazione dati, con la contemporanea possibilità di programmazione hardware, tipica delle piattaforme FPGA. Questa combinazione Fig. 3 54 Maggio / Giugno 2014 ~ Elettronica In di gestione del processore ARM è una distribuzione GNU/Linux, che ci rende familiare la gestione, almeno iniziale, del piccolo mostro. Appena scaricato il file compresso ci aspettano due piacevoli sorprese. La prima è data dalle dimensioni contenute del file, poco più di 14 MB. Nulla di comparabile ai download di file da un GB e più, che contengono le immagini GNU/Linux “classiche”. La seconda sorpresa è il formato FAT32 della SD Card, che la rende interoperabile o quanto meno leggibile con altri sistemi, come abbiamo già sperimentato con Arduino Yún. Date queste caratteristiche, per preparare la SD Card è sufficiente scompattare il file in una cartella di destinazione creata appositamente e copiare il contenuto sulla SD Card, così come è possibile scom- Xilinx Zynq-7000 permette livelli di prestazioni, flessibilità e scalabilità non disponibili prima. Il tutto accompagnato da consumi minori, costi inferiori e tempi di sviluppo e realizzazione ridotti. Con l’architettura SoC della famiglia Zynq-7000 è possibile realizzare soluzioni dove ciascun componente è ottimizzato e dislocato sulla piattaforma che ne esprime al meglio le funzionalità. Un modulo di acquisizione dati o di controllo PID o ancora di generazione di segnali possono sfruttare al meglio le caratteristiche della piattaforma FPGA, mentre un applicativo di comunicazione o di presentazione dati, per esempio via web, saranno più propriamente realizzate nell’ambiente GNU/Linux del processore di elaborazione. I processi che “girano” sulla piattaforma FPGA funzionano in modo indipendente rispetto al processore che ospita GNU/Linux. Funzionano anche se quest’ultimo è “spento”. Gli strumenti di sviluppo per entrambe le piattaforme sono gli strumenti di sviluppo standard adottati per i singoli ambienti, HTML e linguaggio C per il sistema operativo GNU/Linux e la catena di sviluppo standard “Zynq-7000 AP SoC Development Tools” per la FPGA. Il SoC che costituisce il cuore di Red Pitaya è lo Xilinx Zynq 7010 con le caratteristiche elencate nel box, mentre in Fig. A ne è visibile lo schema a blocchi. pattare il file direttamente nella SD Card stessa. Una volta caricato il software, togliamo la SD Card dal PC e la inseriamo nello slot predisposto sulla scheda Red Pitaya. Colleghiamo il cavo di rete e diamo tensione alla scheda. Noi abbiamo utilizzato l’alimentatore a 5V con presa micro USB da 2 A, che impieghiamo normalmente per alimentare Raspberry Pi. Altra piacevole sorpresa, non dobbiamo cercare di capire quale indirizzo IP è stato assegnato alla nostra scheda. Ci ha pensato la comunità di sviluppo. Da un PC, apriamo un browser web e digitiamo nel campo URL l’indirizzo del sito ufficiale di Red Pitaya http://redpitaya.com/, dove potete trovare caratteristiche, informazioni e software per approfondire le conoscenze ed aggiornare il software della scheda. Per ora Fig. A clicchiamo sul link in alto a destra “Connect to my Red Pitaya” (http:// discovery.redpitaya.com/) in modo da aprire la pagina di Fig. 1. In questa pagina troviamo in basso a destra un campo dove è possibile inserire il MAC address (Media Access Control) della nostra scheda. Il MAC address è l’indirizzo fisico univoco assegnato a qualsiasi dispositivo collegabile ad una rete di comunicazione. Sei byte dei quali i primi tre identificano il produttore del dispositivo e gli ultimi tre l’identificativo univoco assegnato da questi a ciascun singolo “pezzo”. Lo troviamo sull’etichetta attaccata sopra il connettore Ethernet. Il codice è quello che mostra la sequenza esadecimale di sei byte separati da trattini, per esempio 12-34-56-78-90-ab. Lo inseriamo nell’apposito campo e clicchiamo sul “pulsante” rosso “Connect” (Fig. 2). Dopo una breve ricerca ci verrà fornito l’indirizzo IP assegnato a Red Pitaya dal DHCP della nostra rete locale come visibile in Fig. 3. Clicchiamo sul link e ci risponderà il web server embedded nella sezione GNU/ Linux della scheda, con la pagina di presentazione del software preistallato sulla scheda stessa (Fig. 4). Un pannello di strumenti che da solo può sostituire diversi costosi strumenti da laboratorio di misura e controllo. Fin qui decisamente semplice da attivare, anche per un utilizzatore non professionale, soprattutto se pensiamo a strumenti analoghi disponibili sul mercato. Sospendiamo per un momento la catena dell’entusiasmo e analizziamo più in profondità questo concentrato di tecnologia. Sotto un dis- Elettronica In ~ Maggio / Giugno 2014 55 . e ch i ità M en s ile a ic on r tt e l E e d l ie w w it l a u r t t at lic pp a a, w .e le t t a fic n o à t at i sc o ,n i r o n ic a o n ec t a c i v t en g lo in t i . a c i on r t t le e ’ l e lo tr n I