La board arancino.cc (illustrata in Fig.1 con relativa custodia protettiva provvista di alloggiamento per barra din) è composta da due parti principali: microprocessore e microcontrollore; attraverso attraverso un canale di comunicazione seriale il microcontrollore di Arancino è in grado di dialogare direttamente con il Compute Module agganciato on-board.
Il microcontrollore si occupa di rendere uniforme la comunicazione tra la parte a microprocessore ed i sensori, che in base al protocollo utilizzato (SPI, UART, I2C,…) permettono di essere interconnessi in varie modalità. Il microcontrollore è direttamente collegato a due connettori (connettore 1 e connettore 2) derivati da mikroBUS (uno standard per i connettori creato per semplificare i collegamenti in quanto contenente i principali pin generalmente richiesti da una board), a cui sono stati aggiunti ulteriori segnali relativi a connessioni USB e GPIO, rendendo di fatto tali connettori una vera e propria estensione del mikroBUS, con il quale risultano compatibili.
Tale scelta ha origine dall’esigenza di avere subito a disposizione numerosi sensori, trasduttori e sistemi di connessione (GSM, LTE, RAM, ecc.) e di poterli connettere agevolmente alla board montandoli direttamente sugli arancino connector.
Il microcontrollore presente sulla scheda è un Atmel SAMD 21G18A, appartenente ad una famiglia di microcontrollori a 32 bit con core ARM Cortex-M0+, dotato di memoria flash da 256 KB e di memoria SRAM da 32KB. Permette di lavorare ad una frequenza operativa massima di 48 MHz (raggiunge 2,46 Coremark/MHz), ed è caratterizzato da bassi consumi.
La parte a microprocessore si occupa dell’elaborazione ad alto livello, della gestione delle connettività di rete (WiFi, Lan,..) e della programmazione del microcontrollore. E’ utilizzato il Compute Module Raspberry PI CM3+, basato sul processore Broadcom BCM2837B0, Cortex-A53 (ARMv8) 64-bit SoC @ 1.2GHz, 1GB LPDDR2 SDRAM, 8GB/16GB/32GB eMMC Flash memory. Per la sua compattezza e per le dimensioni tipiche di una memoria DDR2 SoDIMM, si può inserire agevolmente nel socket SoDIMM presente sulla scheda arancino.cc.
La scheda dispone, oltre che della connettività wireless, anche di due connettori 1 e 2 che rendono disponibili all’esterno vari tipi di periferiche (UART, SPI, I2C, ADC, DAC, GPIO, USB Host 2.0 ).
Lo scopo è quello di consentire una facile espandibilità hardware con un gran numero di schede add-on compatte standardizzate, ognuna con un singolo sensore o un modulo hardware conforme.
Caratteristiche arancino.cc™ Board (1.0.2)
- Microcontrollore
- ARM Cortex M0+ running at 48MHz
- 256kB Flash
- 32kB SRAM
- Dispositivi di I/O
- Up to 32 GPIO
- Up to 6x 350ksps 12-bit ADC con gain programmanile
- 1x 10-bit 350ksps DAC
- 12 Canali DMA Controller
- 12 Canali Event System
- Programmable interrupt Controller
- 32-bit Real Time Clock and calendar
- 3x 24-bit Timer/Counter
- Watchdog Timer (WDT)
- 3x porte USB Full-Speed 2.0
- 2x I2C Interface
- 2x SPI Interface
- 1x I2S Interface
- 2x UART
- Espansioni
- 2x connettori arancino.cc™
- Dimensioni:
- (10,6 x 10,8 x 1) cm
Caratteristiche Microprocessori
- Compute Module Raspberry PI 1
- CPU: Broadcom BCM2835 @ 1.2GHz *
- RAM: 512 MB di RAM LPDDR2 *
- MEMORIA: 4 GB eMMC. *
- Microprocessore Compute Module PI 3
- CPU: Broadcom BCM2837 @ 1.2GHz *
- RAM: 1 GB di RAM LPDDR2 *
- MEMORIA: 4 GB eMMC. *
- Microprocessore Compute Module PI 3+
- CPU: Broadcom BCM2837B0 Cortex A-53(ARM v8) 64bit SoC @ 1.2GHz *
- RAM: 1 GB di RAM LPDDR2 *
- MEMORIA: 8/16/32 GB eMMC. *
- Microprocessore Linkit Smart 7688
- CPU: MIPS24KEc @ 580MHz *
- RAM: 128 MB di RAM LPDDR2 *
- MEMORIA: 32 MB eMMC. *
- Slot microSD, host USB, pinout GPIO, I2C, I2S, SPI, UART, PWM, porta Ethernet
- Single Input/Single Output (1T1R) Wi-fi 802.11/b/g/n.
Analizziamo in dettaglio i vari componenti disponibili sulla board arancino.cc.
SLOT 1 e 2
Nella parte superiore della scheda sono presenti due connettori collegati unicamente al microcontrollore, ad eccezion fatta per i due pin D+ e D- di ogni connettore, connessi al compute module. Tutti gli altri pin sono di tipo GPIO, configurabili come canali di comunicazione.
Le figure 3 e 4 mostrano in maniera dettagliata il pin out di ognuno dei due connettori:
Su entrambi i connettori sono presenti 4 pin SPI (Serial Peripheral Interface) utilizzati per la comunicazione seriale sincrona tra i sistemi embedded ed il microcontrollore; in particolare si hanno:
- due pin D22, uno per ciascun connettore, di tipo MISO (Master Input Slave Output), utilizzati per l’invio dei dati al master;
- due pin D23, uno per ciscun connettore, di tipo MOSI (Master Output Slave Input), utilizzati per l’invio dei dati alle periferiche;
- due pin D24 SCK (SPI Clock) che inviano gli impulsi di clock per sincronizzare la trasmissione dei dati generati dal master;
- due distinti pin CS (Chip Select), pin D9 nel connettore 1 e pin D10 nel connettore 2.
Questi ultimi permettono attraverso lo stesso canale SPI di selezionare due diversi dispositivi: in pratica, se si hanno 2 dispositivi SPI connessi alla board, tramite un GPIO qualsiasi, via firmware si possono selezionare i due dispositivi nel canale di comunicazione.
Sulla scheda possono essere gestite due diverse porte seriali, accessibili o dai due connettori Rx/Tx UART ( pin D0 e D1 del connettore 1 e pin D30 e D31 del connettore 2) o dai pin uUART posti nella slot 4 posta al di sotto del connettore 1.
Attraverso i pin D32 SDA (Serial Data line) e D33 SCL (Serial Clock Line) di entrambi i connettori è possibile gestire diversi dispositivi (selezionabili mediante un indirizzo) sul canale di comunicazione seriale I2C.
I pin contrassegnati dalla lettera iniziale D (Digitale) o A (Analogico) sono configurabili per segnali di tipo digitale (D) o analogico (A) .
In particolare, bisogna prestare attenzione al fatto che i pin D2 e D10 (nella versione 1.2.0 del core di SAMD21) non possono essere utilizzati contemporaneamente come pin PWM, in quanto utilizzano lo stesso timer, ed una variazione del duty cycle dell’uno influenzerebbe anche il duty cycle dell’altro.
Da entrambi i connettori è possibile prelevare due diverse alimentazioni: una massa comune (GND) e due tensioni in corrente continua di 5V e 3,3V.
Da firmware c’è inoltre la possibilità di selezionare tutti i pin dei connettori come pin di interrupt.
I connettori 1 e 2 rispettano lo standard mikroe (2 connettori paralleli da 8 pin ciascuno), quindi sono completamente compatibili con i click di Mikroelektronica (generalmente utilizzati in aggiunta agli arancino click). Rispetto al connettore mikroe, l’ arancino Connector presenta in più un connettore a 6 pin caratterizzato da due pin USB ( D- e D+), ed altri pin GPIO contraddistinti dalle lettere D (digitali) o A (analogici).
Slot 3
Nella parte sinistra della board è presente un pulsante uC Reset utilizzato unicamente per resettare il microcontrollore. Premendolo velocemente per due volte consecutive si esegue il boot loader del microcontrollore, che si pone in attesa di ricevere il programma da eseguire.
Slot 4
Nello slot 4 sono presenti:
- n.2 connettori uC UART per la connessione seriale;
- n.1 connettore DBG per il debug della board.
Slot 5
Nello slot posto a fianco del connettore 1 sono presenti:
- un connettore JTAG (2×5) utilizzato per caricare e programmare il boot loader del microcontrollore;
- un connettore CM UART connesso alla porta “com” del microcontrollore;
- un connettore CM Prg/Run che permette di utilizzare il microcoontrollore in due diverse modalità, running o programming.
Slot 6
Nella parte centrale della board è possibile applicare in maniera mutuamente esclusiva un microprocessore Raspberry PI CM 3+ (fig.5a ) o una scheda Linkit Smart 7688 (fig.5b).
Il compute module è molto compatto, ha le dimensioni tipiche di una memoria DDR2 SoDIMM, e si può facilmente installare nel socket soDIMM montato sulla arancino board. È consigliato sul CM Raspberry montare un dissipatore di calore ( come mostrato nella board a destra in figura) allo scopo di abbassare le elevate temperature raggiunte durante l’utilizzo della board.
La scheda Linkit Smart 7688 è caratterizzata da una CPU Mips a 580Mhz, una memoria flash da 32Mb ed una memoria RAM DDR2 da 128Mb. Sono inoltre presenti una slot per microSD, un host USB ed un pin out per connessioni GPIO, I2C, I2S, SPI, UART, PWM ed ethernet.
Nella parte centrale dello slot 6 è anche presente un crypto-chip, atto a criptare le informazioni che viaggiano in ingresso o in uscita dalla porta USB.
Slot 7
La scheda è alimentata da una tensione di 5V in tensione continua attraverso una porta microUSB o attraverso un jack di alimentazione DC. In caso sulla scheda fosse presente un dcdc converter 78SR-5/15 OKI, il jack potrebbe essere alimentato in un range di tensioni più ampio che vanno da 7V a 36V.
La porta USB presente tra il jack di alimentazione e la micro USB può invece essere utilizzata in modalità dati, ad esempio connettendo una memoria di massa, o un modem esterno per la connessione internet.
Slot 8
Nello slot 8, posto al di sotto del socket microprocesore/linkit, sono presenti un connettore 2×5, 1 pulsante di reset SW1 e tre diodi led:
- il connettore (2×5), il cui pinout è mostrato in figura a sinistra, è relativo al compute module ed è costituito dai seguenti pin:
- 1: alimentazione 3,3V in c.c.;
- 2: GPIO 8/SPI CEO N;
- 3: GPIO 2/SDA1;
- 4: GPIO 11/SPI SCLK;
- 5: GPIO 3/SCL1;
- 6: GPIO 9/SPI MISO;
- 7: GPIO 26;
- 8: GPIO 10/SPI MOSI;
- 9: Ground;
- 10: Alimentazione 5V in c.c.
- il pulsante reset SW1 può essere totalmente configurabile via software; di
- led ON: quando la scheda è alimentata il led rimane acceso;
- led CML: quando è acceso il sistema operativo è modalità running;
- led uCL: è legato al microcontrollore e come il led CML può essere gestito da software;