
La board NanoPi Neo Air, logica evoluzione del modello NanoPi Neo a cui sono state aggiunte le funzionalità WiFi e Bluetooth BLE, è una scheda basata sul chipset Allwinner H3, un quad core ARM A7 a 1.2 GHz molto performante. Equipaggiata con 512 MB di memoria RAM DDR3 e 8 GB di memoria eMMC, la scheda è compatibile a livello di GPIO con il Raspberry Pi, supporta il sistema operativo Linux e può essere programmata con diversi linguaggi, tra cui C, Python e la libreria WiringNP.
Introduzione
In questo articolo torniamo ad occuparci della scheda NanoPi Neo, caratterizzata da un PCB con dimensioni estremamente compatte (soltanto 40 x 40 mm) all’interno del quale è ospitato il SoC quad-core Allwinner H3, in grado di unire una ricca dotazione di periferiche ad una elevata capacità di elaborazione. Nel primo articolo dedicato a NanoPi Neo è stata introdotta la versione base della scheda, di cui sono state presentate le principali caratteristiche tecniche, il pinout dei connettori ed un esempio base di programmazione. Nel successivo articolo è stata presentata la versione “Air”, ovvero la scheda che nel presente articolo sarà esaminata con maggiore dettaglio, ponendo particolare enfasi agli aspetti legati al setup, alla configurazione e installazione del bootloader, della distribuzione Linux e alle diverse modalità con cui questo piccolo ma potente e versatile SBC (Single Board Computer) può essere utilizzato in numerosi progetti ed applicazioni IoT. Un punto di forza della scheda NanoPi Neo Air è sicuramente quello di essere nato come progetto open source, curato dal gruppo cinese FriendlyARM [1]. Di fabbricazione cinese è anche il cuore della scheda, il SoC Allwinner H3 che include quattro core ARM A7 operanti alla frequenza di 1.2 GHz. La versione “Air” della scheda è compatibile con il precedente modello NanoPi Neo, mentre il pin header a 24 poli (visibile nell’immagine di Figura 1) ha dei segnali di GPIO compatibili con quelli del Raspberry Pi.

Figura 1: disposizione dei componenti sul PCB della scheda, con in evidenza il pin header relativo ai GPIO
Il SoC H3 (dove la lettera ‘H’ sta ad indicare la destinazione ‘Home entertainment’) include una GPU ARM Mali400 MP2, in grado di supportare la decodifica di diversi standard video, tra cui MPEG-2, MPEG-4 SP/ASP GMC, H.263, H.264, H.265, WMV9/VC-1, e VP8. In particolare, è possibile riprodurre video Full HD 1080p e Ultra HD 4k, limitatamente a un frame rate di 30 fps (prestazioni di assoluto rilievo per un sistema embedded compatto e in linea con la più recente versione di Raspberry Pi, ovvero il Raspberry Pi 4). Tra le numerose periferiche, il SoC include due canali audio DAC, due ingressi per microfono e un ingresso stereo Linein. Sulla scheda sono inoltre presenti uno slot MicroSD e un’interfaccia DVP (Digital Video Port) per modulo telecamera, in grado di supportare il modulo da 5 megapixel sviluppato da FriendlyARM.
Dal punto di vista software, il sistema NanoPi Air utilizza anzitutto il bootloader open source u-boot (universal bootloader) per eseguire l’inizializzazione di base dell’hardware e caricare in memoria l’immagine del sistema operativo Linux. È inoltre supportato l’upgrade di u-boot tramite il programma di utilità fastboot.
Pinout della scheda
Nell’immagine di Figura 1 sono evidenziati i principali componenti che equipaggiano la scheda NanoPi Neo Air, con evidenziati i connettori (nell’immagine non ancora saldati) e i diversi segnali di interfacciamento. Per avere una visione più dettagliata dei singoli segnali, occorre però fare riferimento alla Figura 2, in cui è riportato il pinout completo della scheda.
Le seguenti tabelle forniscono una descrizione dettagliata dei pin che compongono le diverse interfacce della scheda:
- Tabella 1: descrizione dei pin general purpose I/O (GPIO);
- Tabella 2: descrizione dei pin relativi all’interfaccia che gestisce le funzionalità USB, I2S (audio digitale) e IR (infrarosso);
- Tabella 3: descrizione dei pin relativi all’interfaccia di debug (porta seriale UART0);
- Tabella 4: descrizione dei pin relativi all’interfaccia audio e microfono;
- Tabella 5: descrizione dei pin relativi all’interfaccia DVP (Digital Video Port) per la comunicazione con moduli telecamera esterni.
Numero Pin | Nome Pin | Numero Pin | Nome Pin |
1 | SYS_3.3V | 2 | VDD_5V |
3 | I2C_SDA/GPIOA12 | 4 | VDD_5V |
5 | I2C_SCL/GPIOA11 | 6 | GND |
7 | GPIOG11 | 8 | UART1_TX/GPIOG6 |
9 | GND | 10 | UART1_RX/GPIOG7 |
11 | UART2_TX/GPIOA0 | 12 | GPIOA6 |
13 | UART2_RTS/GPIOA2 | 14 | GND |
15 | UART2_CTS/GPIOA3 | 16 | UART1_RTS/GPIOG8 |
17 | SYS_3.3V | 18 | UART1_CTS/GPIOG9 |
19 | SPI0_MOSI/GPIOC0 | 20 | GND |
21 | SPI0_MISO/GPIOC1 | 22 | UART2_RX/GPIOA1 |
23 | SPI0_CLK/GPIOC2 | 24 | SPI0_CS/GPIOC3 |
Tabella 1: pin utilizzabili come general purpose I/O (GPIO)
Numero Pin | Nome Pin | Descrizione |
1 | VDD_5V | Tensione di uscita 5V |
2 | USB-DP2 | Segnale USB DP |
3 | USB-DM2 | Segnale USB2 DM |
4 | USB-DP3 | Segnale USB3 DP |
5 | USB-DM3 | Segnale USB3 DM |
6 | GPIOL11/IR-RX | GPIOL11 o ricezione IR |
7 | SPDIF-OUT/GPIOA17 | GPIOA17 o SPDIF-OUT |
8 | PCM0_SYNC/I2S_LRC | I2S/PCM Sample Rate Clock/Sync |
9 | PCM0_CLK/I2S0_BCK | I2S/PCM Sample Rate Clock |
10 | PCM0_DOUT/I2S0_SDOUT | I2S/PCM Serial Data Output |
11 | PCM0_DIN/I2S0_SDIN | I2S/PCM Serial Data Input |
12 | GND | Ground |
Tabella 2: pin relativi alle interfacce di comunicazione USB/I2S/IR
Numero Pin | Nome Pin |
1 | GND |
2 | VDD_5V |
3 | UART_TXD0/GPIOA4 |
4 | UART_RXD0/GPIOA5/PWM0 |
Tabella 3: pin utilizzati dall'interfaccia di debug, mappata sulla porta seriale UART0
Numero Pin | Nome Pin | Descrizione |
1 | LL | Uscita canale sinistro |
2 | LR | Uscita canale destro |
3 | MICN | Microfono, ingresso negativo |
4 | MICP | Microfono, ingresso positivo |
Tabella 4: segnali relativi all'interfaccia audio e microfono
Numero Pin | Nome Pin | Descrizione |
1,2 | SYS_3.3V | Uscita a 3,3V per il modulo telecamera |
7,9,13,15,24 | GND | Ground |
3 | I2C2_SCL | Segnale di clock interfaccia I2C2 |
4 | I2C2_SDA | Segnali dati interfaccia I2C2 |
5 | GPIOE15 | GPIO, segnale di controllo per telecamera |
6 | GPIOE14 | GPIO, segnale di controllo per telecamera |
8 | MCLK | Segnale di clock per telecamera |
10 | NC | Not Connected |
11 | VSYNC | Segnale di sincronismo verticale (dal modulo) |
12 | HREF/HSYNC | Segnali HREF e HSYNC (dal modulo) |
14 | PCLK | Segnale PCLK (dal modulo) |
16-23 | DATA Bit 7-0 | Bus dati (8 bit) |
Tabella 5: segnali relativi all'interfaccia DVP per il modulo telecamera
È importante sottolineare come tutti i pin utilizzino una tensione di 3.3V e siano in grado di sopportare una corrente massima di 5 mA. Per maggiori informazioni e dettagli tecnici relativi ai componenti utilizzati sulla scheda e alla disposizione degli stessi sul PCB, si rimanda il lettore alla documentazione tecnica, liberamente accessibile online [2].
Unboxing
Come visibile in Figura 3, la scheda è racchiusa all'interno di una scatola di cartone dalle dimensioni molto compatte, con i diversi accessori ben imballati e separati tra loro. Il kit contiene:
- la scheda NanoPi Neo Air;
- un set di tre connettori pin header: 1 doppio, composto da 2 file da 12 pin ciascuna, 1 singolo da 12 pin e uno singolo da 4 pin. Il set di pin header corrisponde e copre esattamente i terminali circolari presenti sul PCB, sui quali possono essere agevolmente saldati;
- 1 antenna per il transceiver WiFi e BLE, collegabile alla scheda tramite l'apposito connettore (è sufficiente posizionare il connettore dell'antenna sul PCB e applicare delicatamente una pressione verso il basso);
- 1 flyer con alcuni riferimenti al prodotto e i link alla documentazione. Non si tratta certamente di una documentazione sufficientemente dettagliata per iniziare a lavorare con la scheda, soprattutto per i neofiti. Gli articoli dedicati alla scheda da EOS si pongono proprio l'obiettivo di fornire una maggiore visione di insieme su questo prodotto molto interessante, indirizzando il lettore verso gli strumenti di sviluppo attraverso i quali sfruttare le elevate prestazioni disponibili su questa mini-piattaforma hardware.
Setup e installazione OS
Dopo aver saldato i pin header sul PCB, operazione necessaria se si vuole utilizzare la scheda in progetti e applicazioni pratiche senza incorrere in potenziali problemi legati ai falsi contatti, possiamo procedere con il setup della scheda, partendo dall'installazione dell'immagine del sistema operativo Linux. Il materiale occorrente per eseguire questa procedura è il seguente: [...]
ATTENZIONE: quello che hai appena letto è solo un estratto, l'Articolo Tecnico completo è composto da ben 3025 parole ed è riservato agli ABBONATI. Con l'Abbonamento avrai anche accesso a tutti gli altri Articoli Tecnici che potrai leggere in formato PDF per un anno. ABBONATI ORA, è semplice e sicuro.
