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