sabato , 20 Luglio 2019
iten
Home » Elettronica » La guerra degli ARM

La guerra degli ARM

Per chi non se ne fosse ancora accorto (ma dubito che tra gli addetti ai lavori ci sia qualcuno), viviamo in un'epoca in cui il processore cool come volume di mercato, motore di sviluppo informatico, ubiquità e appetibilità per evoluzioni e sviluppi futuri è basato su un core ARM. I microcontrollori (perché stiamo pure sempre parlando di micro anche se molto avanzati) con core ARM sono ormai ovunque: nello smartphone che vi sta accanto quasi sicuramente c'è una CPU ARM based, nel tablet, nell'ultimissima TV LCD, sempre in molti più router, in un crescente numero di elettrodomestici "advanced" e ormai anche in PC e netbook di fascia bassa.

I motivi di un successo sempre più crescente sono molti. Ne provo rapidamente a sintetizzare qualcuno dei più rilevanti.

  • Ampia disponibilità di produttori e varianti: praticamente sono rimasti fuori da questo segmento di mercato pochissimi produttori di microchip, tra cui ad esempio Intel (che se ne pentirà) e qualche altro. Atmel, Samsung, Freescale, Texas, NXP, ST, Broadcom, Marvel, Cirrus Logic sono solo alcuni dei più importanti produttori di chip con core ARM, e per ognuno di questi produttori esistono a catalogo decine di varianti con le funzionalità più disparate (supporto di rete, gestione I/O digitali, video, grafica 3D, audio, crittografia, ecc).
     
  • Vasta disponibilità di software: in realtà basterebbe citare un solo nome, Android. Solo il nome del più diffuso sistema operativo per dispositivi embedded interattivi sarebbe sufficiente a far capire il perché del successo commerciale di questa piattaforma. Sarebbe tuttavia riduttivo limitarsi alla più famosa variante fortemente customizzata di Linux. Infatti, è stato proprio il porting di Linux e di migliaia di librerie e applicazioni che hanno consentito lo sviluppo di questa piattaforma. Basterebbe citare le distribuzioni più dedicate come Angstrom, oppure i porting di quelle più general purpose quali Debian, Fedora e di recente anche Ubuntu. A dirla tutta, proprio da poco Microsoft ha annunciato che una speciale versione di Windows 8 girerà su ARM.
     
  • Costi sempre più bassi: questa piattaforma non sfugge alle leggi di mercato dell'elettronica, e grazie all'aumento della concorrenza tra i produttori, l'ammortamento di stabilimenti e tecnologie, i volumi che crescono di anno in anno, ormai si cominciano a trovare chip con core ARM anche intorno ai 5$ per 1000pz. Francamente, per progetti nuovi, che richiedono funzionalità avanzate, scartare un chip ARM non ha alcun senso, a meno di non avere requisiti ben precisi che spingono verso piattaforme di microcontrollori più propriamente dette (PIC, AVR, ecc).

 

Schede di sviluppo ARM

Quando si parla di CPU ARM dal punto di vista dei programmatori e di molti progettisti, in realtà, è più opportuno parlare di schede di sviluppo a tecnologia ARM. La complessità della tecnologia ARM, infatti, comporta che per piccoli progetti o per bassi volumi previsti di vendita, sia quasi impossibile e certamente antieconomico realizzarsi una scheda ad hoc basata su core ARM. E questo essenzialmente per i seguenti motivi:

  • Costi: per piccoli volumi di vendita, i costi supererebbero di gran lunga quelli della più costosa delle decine di schede che si trovano in giro, sia per la progettazione, sia per la realizzazione dei prototipi.
     
  • Complessità: anche mettere su un progetto minimale significa tirarsi dietro delle complessità che con micro di fascia più bassa non esistono proprio. Ad esempio, nel 99% dei casi si ha bisogno almeno di un sbroglio a 4 layer del PCB per rientrare nei parametri EMI richiesti dalle memorie DDR, DDR2 e DDR3 che molti di questi micro supportano.
     
  • Attrezzature: questo punto riguarda soprattutto gli hobbisti o chi ama curarsi anche la fase di montaggio. Il 95% dei micro ARM sono a tecnologia produttiva BGA e derivati, il che rende praticamente impossibile montarsi a mano una scheda o fare delle preserie. 

Questi e molti altri sono i motivi che hanno portato alla proliferazione sul mercato di decine di schede ARM based. E la guerra commerciale non riguarda più soltanto i produttori di chip, ma anche i produttori di schede basate su SoC ARM. 
Seguo questo mercato da quando ho cominciato a lavorarci nel 2009, ed ho avuto modo di lavorare e sperimentare con alcune di queste schede. Dato che ormai si comincia a parlare di schede che costano meno di 25$, non tratterò quei prodotti che nel 2012 sono ostinatamente venduti ancora oltre i 200$, rendendoli nei fatti non idonei per nuovi progetti (a meno di requisiti veramente forti). Ovviamente, questa non vuole essere una trattazione esaustiva, ma più che altro voglio riportare la mia esperienza e soprattutto le novità più recenti in fatto di prezzi bassi.

 

Beagle board e derivati

La BeagleBoard è stata sicuramente la prima scheda con core ARM che ha visto la nascita della più grossa comunità open source. Con un grosso produttore alle spalle quale Texas Instruments, si è affacciata sul mercato con la prima versione nel 2008, con piena disponibilità mondiale verso la fine del 2008 - inizi del 2009, ad un prezzo che all'epoca era definibile "molto aggressivo" di $149. La prima release era basata su un OMAP 3530 @700 mhz, con ben 256Mb di flash e altrettanti di RAM. Dotata di funzionalità video HD, audio, uscite digitali, ethernet, USB, era per l'epoca sicuramente un prodotto validissimo, molto completo e che ha permesso lo sviluppo di molti porting di Linux che oggi sono disponibili anche per altre piattaforme (sulla BB ci girano senza problemi Angstrom, Ubuntu, Fedora, Android e Windows CE 5 e 6). Negli anni il prodotto si è sviluppato molto, fino a giungere all'ultimissima versione xM che vanta una CPU con core ARM Cortex A8, con ben 1Ghz e 512Mb di RAM.

Benché la beagleboard sia nata come prodotto "educational" e di sviluppo, la sua diffusione è stata tale che è stata impiegata per molti progetti custom commerciali, e solo io ne ho visto una decina di applicazioni anche in progetti da oltre 10k pezzi all'anno. La sua diffusione è stata tale che sono nate moltissime varianti tra cui la BeagleBone, una variante più economica e con meno funzionalità realizzata su un form-factory simile ad Arduino, e venduta ad un prezzo suggerito di 89$. Ma i cloni della BeagleBoard si sono diffusi anche nel "far east", con molti produttori che si sono cimentati tra cui il più famoso è Embest. Io stesso ho avuto modo di provare il loro DevKit 8000, clone della BB, che anche se in apparenza viene venduto ad un prezzo maggiore della BB, in realtà vi basta avere un quantitativo di acquisto minimo per spuntare prezzi nettamente migliori.

 

Mini2440 e derivati

La mini2440 è un'altro SBC che ha avuto uno sviluppo straordinario, soprattutto per il proliferare di cloni prodotti da aziende cinesi. Nata con scopo educativo per diffondere le tecnologie embedded soprattutto in Cina, è per l'appunto un progetto 100% made in China ma che ha avuto uno sviluppo internazionale per il fatto che per meno di 100$ si trovava in giro completa di display touch screen. Basata su un SoC ARM9 di Samsung a 400Mhz, viene venduta con diversi step di memoria flash (64/128/256/512/1Gb) ma purtroppo (causa limite della CPU) con soli 64Mb di RAM. La comunità che si è sviluppata ha una discreta dimensione, ed è abbastanza facile reperire il software anche se c'è da lavorare per districarsi. 
Come dicevo, innumerevoli sono i cloni: solo io ne ho contati più di 20, e si va da prodotti abbastanza acerbi e poco affidabili, fino a quelli discretamente assemblati ed usabili anche in contesti commerciali più spinti. Vi suggerisco di dare uno sguardo a questo produttore, che realizza schede di ottima qualità a prezzi molto aggressivi. Sul fronte software, sappiate che è meglio essere pronti da sé, perché come gran parte di queste aziende cinesi che vendono schede SBC, sanno anche lavorare bene sull'hardware, ma hanno scarse competenze e molto empiriche per quando riguarda il software e spesso non rilasciano i sorgenti dei kernel (nonostante la licenza GPL li obblighi a farlo).   

 

PortuxG20

Ho lavorato con il PortuxG20 e con il suo predecessore Portux920T per oltre 2 anni. Prodotta dalla tedesca Taskit, è sicuramente un'ottima board basata sul diffusissimo micro  AT91SAM9G20 di Atmel, CPU a 400Mhz con 128Mb di RAM e 512Mb di flash. Il Portux è certamente un ottimo prodotto, ben supportato dalla casa madre e con una discreta comunità prevalentemente europea. Il sistema operativo supportato in prevalenza è Angstrom, e con un minimo di lavoro si riesce a configurare tutto in poco tempo. Questa scheda aveva dalla sua una serie di vantaggi che la rendevano appetibile, tra cui un elevato numero di uscite digitali, la presenza di una RS-232 che in ambito industriale fa sempre comodo, 2 porte USB, una porta Ethernet 10/100 e soprattutto un layout basato sul formato half eurocard, che permette di trovare con relativa facilità scatole plastiche in grado di contenerla e fresabili a CNC. Purtroppo, il prezzo di vendita di ben €179 la rendono ormai una seconda se non una terza scelta, visto che si trovano in giro prodotti migliori a prezzi nettamente più bassi. 

 

pico-SAM9G45

Con questa scheda si entra ufficialmente nella zona "guerra aperta". La pico-SAM9G45 è una board SBC prodotta dall'americana Ituner Networks e venduta ad un prezzo molto aggressivo: soli $69! Basata su un SoC Atmel SAM9G45 a 400Mhz, fornisce di serie ben 256Mb di DDR2, 4 porte USB, un'Ethernet 10/100, due slot SD card (di cui una di tipo micro-SD bootabile), slot mini-PCI, alloggiamento per sim card, uscita video con zoccolo ZIF da 40 pin su cui installare i più diffusi display LCD e uno zoccolo per supportare i display touch screen capacitivi. Sto lavorando con questa scheda da oltre 2 mesi, e al momento ne posso parlare solo bene. Trattandosi di un prodotto americano, ha un supporto sul fronte software veramente eccellente. In soli 5 minuti di orologio (e non sto esagerando) potete decidere di installare a scelta Angstrom, Android 2.3.x o 4.x e Debian, e la notizia buona è che funzionano da subito e bene, senza dover ricorrere necessariamente a ricompilazioni del kernel o altro.
A voler essere pignoli, i punti a sfavore sono la mancanza di una flash (il boot si effettua solo tramite SD card), il formato un po' strano (la posizione delle porte rende molto difficile adattare case plastici da catalogo RS per capirci), la mancanza di una porta console (bisogna derivarla dalle uscite TTL presenti sugli I/0), e il fatto che la comunità al momento è molto piccola (di iscritti ne siamo una trentina). Chiaramente, soprattutto questo ultimo punto, potrebbe minare il futuro di questa scheda, ma a conti fatti, oggi come oggi per €60 portate a casa una scheda che è veramente completa di tutto e, a costo di ripetermi, molto ben supportata sul fronte software.

 

OLinuXino

Annunciata di recente e disponibile sul mercato nel momento in cui vi scrivo, l'OLinuXino vuole essere un progetto di Olimex che mira a calcare le orme di Arduino. Infatti, Olimex distribuisce i suoi sorgenti (schemi, sbroglio e sorgenti software) con una policy 100% Open Source, e nella progettazione è stata tenuta in forte considerazione la possibilità per l'utente di potersi replicare lo sviluppo e la realizzazione da sé. Basata sul processore iMX233 a 545Mhz di Freescale, ha dalla sua di offrire molte funzionalità tra cui un'uscita video e la piena compatibilità con le schede di espansione UEXT di Olimex. È una delle pochissime schede (o forse l'unica) ad essere basata su di un micro non BGA, anche se questa feature pone una pesante limitazione: la versione in formato TFQP dell'iMX233 può supportare al massimo 64Mb di memoria RAM, il che per una scheda di recentissima progettazione è una limitazione molto forte. Venduta in due versioni: una Mini senza Ethernet ad un prezzo di €30 e una Maxi con Ethernet a €45, con buone scontistiche per quantità superiori. Sicuramente un prodotto interessante se quei 64Mb non sono un limite per il vostro progetto.

 

Raspberry Pi

Quando un prodotto di nicchia e tecnico come una scheda SBC conquista una paginata di Repubblica e del Corriere della Sera, dire che ha fatto il botto è riduttivo. Sicuramente la scheda embedded del momento, la Raspberry PI è in assoluto la scheda SBC più economica che ci sia. Basata su un SoC Broadcom BCM2835 a 700Mhz con core ARM11, viene venduta in due versioni: il modello A venduto a 25$ che monta 256Mb di RAM, un'uscita HDMI, uscita audio, porte digitali e USB, e un modello B venduto a 35$ che ha in più un'ulteriore uscita USB e la porta Ethernet 10/100. Commercializzata da RS e Farnell, al momento in Europa è una chimera, visto che il successo mondiale ha fatto letteralmente scomparire dal mercato le prime 200.000 schede vendute negli USA. Insomma, si annuncia un prodotto di massa che credo potremo provare a pieno in Europa non prima delle ferie estive, forse anche settembre. Questa scheda ha dalla sua il grande vantaggio del prezzo, tuttavia ad un costo non banale: il micro è venduto da Broadcom solo su grandi volumi e soprattutto, visto che Broadcom lavora molto in ambiti militari, con una documentazione scarna e sicuramente non sufficiente a capire a pieno l'uso e le funzionalità del micro. Insomma, è un prodotto a scatola chiusa. Allo stato attuale ci gira ufficialmente Fedora, ma già stanno lavorando al porting di Angstrom. Non so se sarà l'equivalente di Arduino nel mondo embedded Linux, ma sicuramente sarà un prodotto con cui confrontarsi nel futuro.


Check Also

Compilare micropython per una scheda STM32Nucleo-F4

Chi mi conosce sa che il mio linguaggio di programmazione preferito è Python. Ho scritto …

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.