Papilio DUO: la tecnologia FPGA a portata di tutti

PapilioDUO

Se la programmazione ad oggetti  e la progettazione grafica di sistemi vi hanno sorpreso, questo sistema vi sbalordirà.
Viviamo tempi eccitanti, dove nascono capolavori con Arduino e meraviglie con Raspberry Pi. Dove possiamo usare la tecnologia come una tela per creare oggetti che stupiscono e divertono i nostri amici e i nostri parenti.
Non sarebbe bello se potessimo prendere quella che è la tecnologia elettronica più avanzata che è stata il fiore all’occhiello in applicazioni scientifiche di punta e fonderla con la nostra creatività, senza dover diventare scienziati o farci venire il mal di testa ad imparare un nuovo linguaggio di programmazione come VHDL/Verilog?

Progettare circuiti e programmare non è semplicissimo, lo dimostra il seguito che ha Arduino tra i makers, grazie alle sue soluzioni hardware molto semplici e alla presenza di librerie create da altri e disponibili gratuitamente, e che permettono di sviluppare infinite applicazioni con poca fatica.

Ma con il giusto software ed una serie di librerie ad hoc è possibile affrontare circuiti più complessi come dimostra questa nuova scheda che unisce la semplicità di Arduino alle incredibili potenzialità di un FPGA, un progetto che è apparso recentemente su Kickstarter e che ha ampiamente superato la richiesta minima di finanziamento.

Papilio_DUO_01large

La scheda si chiama Papilio DUO, e dispone a bordo di un FPGA sulla faccia superiore del circuito stampato e di un ATmega 32U4 (lo stesso chip utilizzato in Arduino Leonardo) sul lato opposto.

Ne deriva un sistema che è come avere un Arduino con un laboratorio completo ad esso collegato! Infatti si coniugano le prerogative di semplicità di Arduino e la disponibilità di innumerevoli applicazioni sviluppate con esso, alla vastissima dotazione di elementi logici e analogici integrati in un FPGA, il che permette di aggiungere di volta in volta sugli I/O dell’ATmega i circuiti e le periferiche che desideriamo (porte seriali o parallele, ADC, timer, ecc.) o riconfigurarli spostando piedini e linee. Basta collegarlo al computer tramite un cavo USB, scaricare il software e iniziare a disegnare i propri circuiti.

Il segreto è il FPGA

L’idea del team che ha sviluppato Papilio DUO è quella di sfruttare l’immensa disponibilità di circuiti elementari racchiusi in un FPGA, Field Programmable Gate Array (che in questo caso è una SPARTAN-6 Xilinx), abbinando ciascuna funzione a un simbolo richiamabile da un apposito ambiente di sviluppo.

Proprio come il team di Arduino ha semplificato la programmazione C++, il team di Papilio DUO semplifica la progettazione FPGA fornendo uno strumento software che permette di abbinare i blocchi circuitali, raggruppati in apposite librerie, mediante un facile drag and drop dall’apposita interfaccia grafica utente.

Software e caratteristiche

Papilio DUO è molto di più di un progetto hardware. Infatti, il software è l’ingrediente segreto che consente di disegnare i circuiti senza investire tempo ed energie per imparare linguaggi che permetterebbero cose analoghe, come il VHDL o il Verilog.

Si comincia con l’IDE Arduino, importando le librerie corrispondenti ai circuiti. Portiamo tutti i pezzi necessari per disegnare ed eseguire il debug in un unico luogo. Tutto ciò significa Papilio.

Papilio Design Lab

DesignLab, un ambiente di sviluppo disponibile per l’utilizzo sia con Windows che in Linux.
Per disegnare un circuito basta trascinare i blocchi che servono ed eseguire il debug. Si inizia facendo clic sul pulsante “Modifica Circuit” e si disegnano i circuiti usando l’editor di schemi elettrici Xilinx ISE e la libreria di circuiti Papilio desiderata.

Papilio_DUO_02large
Ogni sketch ha un circuito associato.

Logic Analyzer

Potete trascinare, ad esempio,  in ogni momento un analizzatore logico di qualità professionale in qualsiasi circuito e sapere immediatamente cosa sta accadendo in esso. L’analizzatore logico dispone di un massimo di 32 canali e supporta una frequenza massima di lavoro di 200 MHz e può essere applicato a qualsiasi circuito previsto dal software. Utilizza fino a 75 KB di memoria interna o di SRAM esterna.

Papilio_DUO_04large
Logic Analyzer: un analizzatore logico disponibile senza interrompere i circuiti.

System on Chip – Disegnare circuiti col processore software

Volete cimentarvi con circuiti più complessi? DesignLab include il processore soft ZPUino con un bus Wishbone, che fornisce una maggiore velocità e flessibilità rispetto al chip Arduino-compatibile. Il processore software virtuale viene eseguito all’interno dell’FPGA e utilizza il bus Wishbone per rendere più semplice la connessione di circuiti periferici, come UART, PWM o Master SPI. Questa metodica che abbina il processore soft con il giusto mix di circuiti periferici corrisponde a progettare dei SoC (System on Chip). Con DesignLab è possibile disegnare i propri SoC in pochi minuti. Creare SoC con dieci porte seriali, o un PWM su ogni pin, o qualcosa di esoterico come i classici chip audio Atari e Commodore collegati allo stesso tempo. Non ci sono limiti alla propria creatività.

Un esempio di SoC è quello che nasce abbinando ZPUino e un chip audio SID del Commodore 64: il relativo tutorial è disponibile al seguente link.

Papilio Circuit Library

Per il disegno dei circuiti occorrono delle librerie (vengono anche chiamate “core”) che vengono utilizzate per programmare la sezione FPGA; l’intento del team di Papilio ed anche della nascente community di sviluppatori è cercare i migliori circuiti open source in rete per convertirli in librerie che possono poi essere utilizzate per la programmazione. Internet è assolutamente pieno di circuiti open source; basta dare un’occhiata a siti come www.opencores.com. Troverete di tutto, dai chip audio classici ai controller per motori passo-passo. Tutti questi incredibili circuiti sono alla nostra portata dopo l’operazione di conversione.

Date un’occhiata a ciò che è già disponibile nella versione beta di DesignLab (i core in rosso sono ancora in sviluppo).

Papilio_DUO_Tabella

Hardware

L’attuale Papilio DUO è la terza generazione della board Papilio, quindi beneficia di tutte le soluzioni testate e sviluppate nel tempo, anche grazie al supporto della community, che ha fornito interessanti input mirati a implementare nella scheda le funzionalità che gli utenti desiderano maggiormente.

Espandibilità – La prima cosa che le persone chiedono sempre è la possibilità di utilizzare le loro shield per Arduino; ecco perché il fattore di forma di Papilio Duo è Arduino-compatibile pur mantenedo la compatibilità con almeno sei Papilio Wings con la possibilità di sfruttare un connettore PMOD! L’aggiunta di nuovo hardware all’FPGA non è mai stato così facile: c’è una vasta scelta di hardware che aspettano solo di essere implementati.

La SRAM è un must. Nella prima release della scheda veniva usata una SDRAM, ma gli stringenti requisiti di temporizzazione e l’interfacciamento hanno causato problemi. Ecco perché la nuova versione di Papilio DUO usa la SRAM, che è asincrona e facile da usare, e si farà apprezzare la semplicità nei vostri progetti.

Dal punto di vista meramente economico, Papilio DUE ragghiude un valore di 500 dollari in una scheda che ne costa solamente 88.

I principali componenti della scheda sono i seguenti:

  • A) FPGA Xilinx Spartan 6 LX9;
  • B) Regolatore di tensione switching ad elevato rendimento  LTC3419;
  • C) Interfaccia USB 2.0 a doppio canale FTDI FT2232H;
  • D) SRAM 512KB o 2MB ISSI IS61WV5128  ;
  • E) Flash 64Mbit Macronix MX25L6445 SPI ;
  • F) Integrato Atmel AVR ATmega32U4 Arduino Compatibile;
  • G) 54 pin I/O con fattore di forma compatibile con Arduino Mega;
  • H) Pin digitali 0-16 disponibili su FPGA e ATmega32U4.

Debugger completo per il ATMEGA32U4

HappyJtag2 è un software che emula un Atmel JTAG ICE MKII debugger. Questa soluzione tuttavia richiede che il chip USB FT2232 sia collegato al chip Arduino-compatibile in una configurazione speciale. La capacità unica di Papilio DUO di realizzare qualsiasi circuito permette di implementare facilmente questo legame. Gli sviluppatori di HappyJtag2 hanno lavorato con quelli di Papilio DUO per ottenere il pieno supporto di debugging, semplicemente caricando il circuito corretto. Con il debug possiamo caricare i file hex, integrare elementi, eseguire il codice, modificare le variabili, controllare lo spazio di memoria, ecc: esattamente tutto ciò che offre la board originale di debug MKII. (L’unico inconveniente è che sia HappyJTAG2 che AVR Studio funzionano solamente su Windows). funziona solo in Windows).

Infine, ecco il video di presentazione del progetto proposto su Kickstarter:

 

http://papilio.cc 

 

 

 

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.

0