domenica 8 agosto 2010

Beagleboard xM in arrivoooo!!!!

Solo ora mi accorgo che sono stati pubblicati schemi e manuale della Beagleboard xM che... udite, udite!! entrerà in produzione venerdì 13 agosto 2010. :D

Traccio qui alcuni appunti sparsi e disordinati. Cominciamo col riepilogare le versioni della Beagleboard:

- c'è la Beagleboard classica (serie B1-B7, con soli 128Mb RAM ma senza USB EHCI; quindi le serie C2 e C4, con 256Mb RAM, queste ultime prodotte nel 2009)

- c'è ora la Beagleboard xM (la prima serie in produzione ad agosto 2010 è denominata "xM versione A2"; le versioni precedenti, P8, A ed A1, erano solo al livello di prototipo), dove "xM" sta per "extra Megahertz, extra Memory";

- io aggiungerei "extra Millimeters, extra Money": infatti è un filino più larga della precedente (85x86mm!!) e costa trenta dollari in più (che però ci valgono tutti perché ha più hardware, più memoria RAM, più connettori, una microSD da 4Gb e perfino un intero hub USB inglobato a bordo).

Praticamente la Beagleboard xM è un computer completo: basta aggiungerci mouse, tastiera, video e alimentazione. La cosa notevole è che rispetto alla potenza di calcolo e alla quantità di periferiche può essere alimentata da un cavetto USB oppure da un alimentatorino 5V: in condizioni normali abbisogna di meno di due watt e non ha bisogno di ventole di raffreddamento (e dunque non soffre per vibrazioni). Dato che la memoria di massa è tipicamente la memory card, il funzionamento è totalmente silenzioso. Niente male per un computer che ha la potenza di calcolo di un desktop super-accessoriato over-clockato di pochi anni fa.

Qui sotto elenco le differenze tra la Beagleboard versione "xM" e le versioni precedenti, aggiungendo qualche mia considerazione.

Il processore fa un notevole balzo in avanti:
- Beagleboard C2: aveva un OMAP3530 a 500MHz con DSP da 430MHz
- Beagleboard C4: aveva un OMAP3530 a 720MHz con DSP da 520MHz
- Beagleboard xM A2: ha un DM3730 a 1GHz con DSP da 800MHz.

Al DSP si possono demandare alcuni compiti che richiedono parecchio number-crunching (come ad esempio la decodifica di stream video). Caso notevole, il DM3730 (della famiglia Cortex, compatibile dunque con le altre Beagleboard) è talmente nuovo che non è stato ancora ufficialmente presentato dalla TI.

Video: l'accelerazione grafica 2D/3D della SGX pure fa un grosso balzo in avanti (da 110 a 200MHz).

Memoria: non c'è più la NAND (che non usava quasi nessuno), e la RAM raddoppia:
- Beagleboard C2 e C4: avevano 256Mb RAM + 256Mb NAND
- Beagleboard xM A2: ha 512Mb RAM

Porte:
- sulla Beagleboard C4 c'era una sola porta USB "2.0 ma solo High Speed" più una porta USB OTG
- sulla Beagleboard xM A2 oltre alla USB OTG ci sono quattro porte USB 2.0 standard (praticamente un hub USB a bordo!) capaci di fornire fino ai canonici 500mA ciascuna
- sulla Beagleboard xM A2 c'è anche una porta Ethernet 10/100

Alcune altre differenze della xM rispetto alla Beagleboard C4 e versioni precedenti:

- lo slot SD/MMC è stato sostituito da uno slot microSD del tipo push-in/push-out (il che fa risparmiare spazio); nella confezione della Beagleboard xM sono previsti sia la board che una microSD da 4Gb con Angstrom Linux preinstallato!!! (e perfino un adattatore SD/microSD per cui non avesse un multimedia-reader capace di leggere le microSD). Ovviamente la xM è compatibile con le microSDHC.

- connettore per interfaccia fotovideocamera (visibile da Linux come una normalissima /dev/video), per cui non c'è bisogno di sprecare una porta USB; il connettore ha diverse feature in più ed ha il formato dei moduli della LeopardImaging. Ho già letto di un test fatto con una webcam economica (che dopo poche ore di trasmissione video perdeva la sincronizzazione) e di uno di tali moduli (che non ha mostrato questo problema dopo oltre 48 ore continuate di video); aspetto di leggere altre recensioni.

- c'è un Auxiliary Expansion Connector con un'altra manciata di GPIO e perfino un ingresso ADC (convertitore da analogico a digitale), sebbene limitato e solo input, e perfino un pin per Dallas 1-Wire (I/O); purtroppo questo connettore è a passo 0.05" (mentre noialtri siamo abituati a quelli da 0.1"); in compenso non è un header da saldare ma un connettore femmina;

- la porta RS232 ha ora il classico connettore Cannon 9-poli femmina ed è "spegnibile" per economizzare energia (alé!)

- sono state escogitate altre soluzioni per ridurre i già ridotti consumi: si possono spegnere le singole porte USB, si può spegnere la Ethernet, si può spegnere il framer video TFP410, si possono tener spenti i LED verdi (perfino il LED "power")

- c'è un connettore McBSP da 4 pin per applicazioni audio (la sua porta Multichannel-BSP è connessa direttamente ai codec audio: per il multimedia vanno bene i jack in/out per cuffie e microfoni, mentre per le applicazioni di audio digitale si può usare questo)

- i connettori sono praticamente tutti "popolati" (non c'è quasi più bisogno di saldare headers)

- anche sulla xM abbiamo le porte DVI-D e S-Video, fra l'altro configurabili per dare due output diversi. La porta DVI-D (solo digitale, quindi senza i pin analogici VGA) ha in realtà un connettore tipo HDMI (per economizzare spazio e costi).

Il totale dei LED sulla board passa a sei (cinque verdi ed uno rosso):
- un LED "power": indica che c'è corrente sulla board
- un LED "PMU status": indica che il TPS65950 sta dando corrente alle varie tensioni a tutte le periferiche
- un LED rosso "overvoltage" (nel testo indicato come "VOLT")
- un LED "attività USB" che indica che l'hub USB di bordo è alimentato
- due LED utente (che finora vedevamo utilizzati come "heartbeat" - cioè "batticuore", per indicare la vitalità del sistema - e come indicatore di "read/write" sulla memory card)

Il LED rosso indica che la tensione di alimentazione è eccessiva (eh! quante Beagleboard erano state bruciate inserendo un alimentatore 9V sul connettore 5V !!!): in tal caso l'alimentazione viene bloccata, in modo da non danneggiare né la board né le periferiche USB eventualmente collegate. Ovviamente, se qualcuno ci tiene, può distruggere ugualmente la board e le periferiche mandando almeno 12V sul connettore alimentazione dove c'è scritto "5V"...! :D

La protezione (e accensione del LED rosso) si attiva quando la tensione di alimentazione supera i 5.3 volt: questo potrebbe significare che non si può più alimentare direttamente a pile la board (le NiMH nuove, quando completamente cariche, possono dare anche più di 1.4V ciascuna), ma aspetto di provarla personalmente per verificare.

Eccellente la nuova disposizione dei LED verdi, tutti sul lato ovest (cioè sul lato del connettore di alimentazione). Il LED "power" è nell'angolo (la posizione migliore per essere "visto" in caso la board venga inscatolata), accanto ai due LED utente, mentre troviamo i due LED power/PMU accanto al connettore di alimentazione 5V.

Tutte le altre periferiche e gli expansion headers sono compatibili con le precedenti versioni della Beagleboard, anche come disposizione "geografica" sulla board, in modo da poter utilizzare le schede di espansione già esistenti per le precedenti Beagleboard.

Vista dall'alto, abbiamo:
- lato nord: multimedia (DVI-D, S-Video, jack audio 3.5" out/in)
- lato ovest: sistema (USB On-The-Go, jack alimentazione 5V, connettore 9 poli RS232) e i cinque LED
- lato sud: porte USB e porta Ethernet
- lato est: nessun connettore che guarda verso l'esterno, ma connettori di espansione (Expansion, LCD1, LCD2, Camera, JTAG: tutti a 1.8V)

Se si intendono utilizzare tutte le periferiche contemporaneamente, è consigliato un alimentatore 5V con rating da 3A. La board consuma poco (tipicamente 350mA) ma lo standard USB prevede fino a 500mA per ogni porta (valore facilmente raggiungibile dagli scanner USB, dalle chiavette internet e wifi, e altre periferiche assetate di energia). La sezione video e la ethernet consumeranno (tento una stima) 70-80mA ciascuna. Per cui nel caso peggiore 350+500+500+500+500+80+80=oltre 2.5 ampere... per cui il manuale suggerisce un alimentatore stabilizzato 5V 3A in modo che se tutte improvvisamente e contemporaneamente chiedono il massimo della potenza, si è abbondantemente coperti.

Da notare che molte periferiche USB consumano poco: tastiere e mouse hanno rating da 100mA (ma in realtà consumano molto meno), anche certe chiavette Bluetooth sono dichiarate contenute entro i 100mA (come questa minuscola della Trust che ho io). Pendrive e webcam consumano molto solo mentre le si utilizza, etc etc. Col comando lsusb si può vedere da Linux quale è il consumo massimo che dichiara ogni periferica USB connessa in quel momento.

La Beagleboard poteva essere alimentata anche con meno di 5V (alla versione C2 bastavano 3.7V per fare tutto eccetto USB e uscite video), presumo che anche la xM sia capace di andare avanti anche "con pile scariche". Le periferiche USB, invece, hanno una tolleranza del 5%, per cui con meno di 4.75V di alimentazione probabilmente non funzioneranno.

Da notare che il massimo alimentatore consigliato "5V 3A" è nientemeno che... 5*3=15 watt, cioè meno di una lampadina. Che ne pensa il vostro computer desktop con alimentatore 600 watt e diciotto ventole di raffreddamento? :D :D

Si può alimentare la board, oltre che da OSB OTG o dal connettore, anche direttamente sui pin 5V/GND dell'Expansion connector (in tal caso, come detto capitolo 8.3.3, occorre fare qualche altra operazione che qui non descrivo).

Dato che l'interfaccia ethernet è integrata nel LAN9514 (il chip che contiene anche la circuiteria dell'hub USB), allora le interfacce ethernet preesistenti per la Beagleboard (come la Zippy) possono essere aggiunte senza risultare in conflitti.

Anche nella xM A2, come nelle precedenti versioni, occorre aggiungere una batteria a bottone se si vuole utilizzare il clock RTC (e -ahimé- dissaldare una resistenza SMD che "certificava" l'assenza della batteria). La mini-batteria è necessaria solo se è importante che dopo lo spegnimento venga conservato l'orario. Se si utilizza un GPS, la data/ora può essere aggiornata dalla lettura GPS; se si utilizza internet, la data/ora può essere sincronizzata da un time-server.

Per nostra fortuna il dollaro è risalito a 1,33 rispetto all'euro (contro gli 1,22 di poco più di un mese fa: la Beagleboard ci sarebbe costata il dieci per cento in più!!)

Ora posso finalmente lagnarmi un poco. Qualsiasi progetto è migliorabile e (purtroppo) qualsiasi progetto, prima di essere migliorato, si scontra con le sue versioni precedenti. Inoltre, qualsiasi progetto risente del confronto con altri che magari sono di tutt'altra categoria ma presentano vantaggi succosi che "vorrei avere anche qui": ho usato le Arduino e rimpiango ancora quei GPIO che "sourciano" ognuno 30-40mA a 5V... Infine, la Beagleboard è un oggetto per smanettoni, non un prodotto finito, per cui non rientra nella categoria "progetti commercialmente eleganti".

Come avrei fatto io una nuova Beagleboard? Così:

1) form-factor rettangolare anziché quadrato, in modo da risparmiare spazio
2) connettori esterni disposti su non più di due lati (attualmente sono su tre lati)
3) uno o due connettori di espansione (anziché cinque) e breadboard-friendly (0.1"-spacing)
4) una bella manata di GPIO connessi a level translators per 3.3V e 5V
5) una soluzione per misurare da software tensione e corrente

Esempio: anziché 85x86mm, potrebbe diventare 130x45mm. Tutti i connettori esterni alloggerebbero su un solo lato lungo, tutti i connettori di espansione alloggerebbero sull'altro lato lungo. La box diventerebbe perfino alloggiabile nel sellino della bicicletta. Purtroppo questo richiede un massiccio lavoro da parte dei progettisti perché la board (a sei strati!) è già fin troppo popolata...

Per il punto quattro bastano un paio di minuscoli chip per assicurare una decina di GPIO traslati a 3.3V e un'altra decina a 5V; purtroppo (mi dice l'autore) manca lo spazio fisico sulla board (per questo la xM è "cresciuta" di qualche millimetro).

7 commenti:

  1. Mi hai fatto venire l'acquolina in bocca con la tua recensione.... di solito uso la mia BeagleBoard come server ma ora in vacanza la sto usando come mediaplayer connesso ad un TV LCD 32", con tanto di tastiera/mouse wireless.... eh, si... ce ne vorrebbe proprio un'altra!

    RispondiElimina
  2. Ma porca vacca, il dollaro è calato di nuovo a 1,29... maledetta speculazione finanziaria!

    Uno spasso sarebbe montare la Beagleboard all'interno di un display (da cui magari estrarre anche i 5V per alimentarla).

    Il punto 5 era per tenere sott'occhio i consumi in modo da utilizzarla a batteria (è una feature presente nei telefonini).

    RispondiElimina
  3. Ciao, davvero interessante erano mesi che l'aspettavo, poi l'hai lodata tanto che sono proprio tentato di prenderla. Da come ho capito, arriva già con android installato e funzionante, confermi? Se è così ormai non ho più limitazioni per prenderla, olè! :)

    Per ora però non sono ancora riuscito a trovarla in vendita, neppure su digikey, boh? Ora torno alla carica, da qualche parte salterà pur fuori no?

    Ciao, Gyppe.

    RispondiElimina
  4. Si tratta di Angstrom Linux, non di Android (per installare Android bisogna smanettare un po').

    Praticamente, una volta "out of the box", è già pronta al boot perché la microSD è già in dotazione nello slot con una demo di Angstrom (non so ancora che differenza ci sia con l'Angstrom completo).

    Si può installare anche Ubuntu 10.10 per ARM ma al momento soltanto la Angstrom è ottimizzata per "ARMv7".

    Per vari motivi personali non l'ho ancora ordinata (dovrebbe comunque essere già ordinabile in Italia), anche se non vedo l'ora...

    Da Digikey Italia la vedo a poco più di 151€ (spedizione gratuita ma toccherà pagare i diritti doganali al momento della consegna).

    RispondiElimina
  5. con qualche cover di spectrum...

    http://www.flickr.com/photos/zxspectrumupgrade/sets/72157616543421081/

    RispondiElimina
  6. non riesco a trovarla da nessuna parte, è esaurita o vogliono 1 mese di spedizione, qualcuno se la vende di seconda mano? il modello xM

    mandate un email : el_zip [_AT_] hotmail.it
    grazie

    RispondiElimina
  7. Sabato scorso ne ho appena ordinate altre tre (xM), da it.digikey.com che è in genere quello che più rapidamente evade gli ordini (anche se mette dei "lead time" mostruosi: dice di aspettare 6-8 mesi e invece in due settimane ti arriva a casa).

    Cerca "beagle" nella sua casellina di ricerca, e tra i (pochi) risultati cerca "xm".

    RispondiElimina