E’ il momento di “X” ;-)
Cominciando questo blog (un po per scherzo e un po per “sfida” a chi gestisce il sistema “Arduino”), ho iniziato a chiamare questo sistemino di sviluppo Xduino, e neanche a farlo apposta dalla ATMEL (la vera “mamma” di tutti gli arduini e cloni) è nata la famiglia Xmega, naturale evoluzione dei vari AT-mega… Così, dopo aver tentato con molta fatica di ottenere risultati praticamente impossibili con i vati “Arduini”, vuoi per scarsa velocità, vuoi per insufficiente risoluzione delle periferiche interne (in particolare i convertitori AD), per non parlare dei problemi di consumi che non consentono di ottenere serie soluzioni che funzionino a batterie; mi sono deciso e ho iniziato a guardarmi “intorno” tra i vari microprocessori a disposizione cercando però di tenere una certa conpatibilità con il mondo di Arduino e senza arrivare a sistemi decisamente più impegnativi (e se non altro per semplificare il passaggio di librerie personali).
Ebbene, è così che ho scoperto la famiglia Xmega: una realtà totalmente compatibile con la famiglia Mega, con convertitori AD a 12Bit e una capacità di campionamento fino a 2Mega/sec (2 milioni di letture al secondo). Per non parlare della frequenza di lavoro sino a 32Mhz (il doppio di un Arduino), una quantità impressionante di pin per ingresso/uscita (almeno quanto un Arduino Mega) tutte configurabili, con tutte le periferiche interne alle quali siamo abituati già con la famiglia Mega, otre a potenti funzioni di interrupt e DMA che aiutano molto nella realizzazione di progetti realmente multi processo. E come se non bastasse, questi dispositivi lavorano da 1,5V a 3.3V, e sono ottimizzati proprio per ridurre i consumi.
Insomma, praticamente una scelta obbligata! Così, dopo una brevissima ricerca su internet, ho trovato un produttore in germania che offre una splendida schedina a costi decisamente abbordabilissimi, e dal quale ho già acquistato il mio primo ATxmega con le seguenti caratteristiche :
- ATxmega128A1 (128k+8k Flash, 8k SRAM, 2k EEPROM)
- 100pin TQFP package with up to 78 IO lines
- ISP interface with 6-pin standard pinout
- CP2102 USB UART converter at USART0/PORTF
- 75ALS176 RS485 transceiver at USART0/PORTE
- XTAL crystal frequency selectable or watch crystal
- connections: 2x 48-pin with all processor signals, USB and RS485 signals, 1x 6-pin ISP, mini USB B connector (5-pin)
- sd card interface
- preistalled bootloader **
- 2.54mm (1/10inch) modular grid
- dimensions: 60.96mm x 30.48mm
E non appena mi sarà arrivato metterò subito alla prova il nuovo sistemino che da oggi chiamerò XDUINO 🙂 !
** è importante considerare che il bootloader non è quello di Arduino, ma che può tranquillamente essere utilizzato per caricare i programmi sviluppati mediante un IDE più “serio”, e per questo dal sito è disponibile un software gratuito anche per gli utenti Mac OSX… (quello che mi ci voleva!)
P.S. francamente mi sono anche chiesto come mai il team di Arduino nel rinnovare la “veste” commerciale (aimè!) del loro prodotto, non abbiano almeno anche adottato questa nuova famiglia di componenti… misteri della “fede” 😉
https://www.kokiua.com/2010/10/05/e-il-momento-di-x/XduinoCominciando questo blog (un po per scherzo e un po per 'sfida' a chi gestisce il sistema 'Arduino'), ho iniziato a chiamare questo sistemino di sviluppo Xduino, e neanche a farlo apposta dalla ATMEL (la vera 'mamma' di tutti gli arduini e cloni) è nata la famiglia Xmega, naturale...kokiua [email protected]Administratorkokiua
12 Comments Already
Lascia un commento
Devi essere connesso per inviare un commento.
al modesto costo di ? aspetto news…
39,95Euro + 10Euro di spedizione… Considerato che è nettamente superiore all’Arduino Mega, non mi sembra che il prezzo sia elevato, non trovi? (il prezzo lo vedi anche sul sito del produttore in Germania: http://www.chip45.com ).
Mi è proprio arrivato oggi e presto conto di cominciare a “giorcarci” … poi vi faccio sapere 😉
bravo recensiona che ci scappa un acquisto…io intanto mi diverto con il mio Arduino Mega…con un progetto di riconoscimento movimenti e volti da webcam…
… con un Arduino Mega la vedo mooolto dura 😉 Non hai sufficiente velocità per acquisire ed elaborare un’immagine da una webcam. Nemmeno se tu volessi fare una riduzione di pixel, perchè alla peggio dovresti lavorare sul formato subQCIF che prevede 128×96 pixel, ed a meno che tu non riesca a trovare una Camera in b/w (e non ne trovi in commercio), ti ritrovi con almeno 2 byte per pixel (per l’RGB ridotto), pari a 24576 byte per frame. E il problema non è tanto la memoria in gioco, bensì la velocità di acquisizione che sarebbe di almeno 1MHz (in parallelo). La velocità di un ATmega non è sufficiente per elaborare il tutto, forse per inviare i frame ad un PC (e non certo via USB/seriale a 115000baud), ma nulla più, credimi!
E comunque a quella risoluzione come faresti a “riconoscere” un volto?
E non credo sarebbe possibile neppure con un Xmega…
insomma: se ci riesci sei un genio! 😉
Ciao Kokiua è da un po’ che non ti visitavo, tutto bene?
Molto interessante questo Xduino, però c’è una cosa che non ho capito molto bene. Uno dei vantaggi di Arduino o dei vari Freeduino è proprio l’ide con processing che evita una parte abbastanza difficoltosa per i beginner, come ad esempio l’inizializzazione delle porte. L’IDE fornito con questo “XDuino” è in grado di fare lo stesso?
Ciao,
Andrea
Arduino, freeduino, ecc, sono tutti prodotti adatti e ideali a chi si affaccia la prima volta in questo mondo. Il pregio dell’IDE (e a chiamarlo così mi sembra di “offendere” i veri ambienti di sviluppo) di Arduino è che tiene nascoste molte impostazioni che sono necessarie per impostare l’hardware del processore scelto (si, perchè non esistono solo quelli scelti dal gruppo di Banzi, anzi! … e fa anche rima 😉 )
Il difetto dell’IDE di Arduino (e in questo ci metto in mezzo anche le librerie e la documentazione per utilizzarle) è che non permette di capire cosa si può fare con il processore scelto in modo da sfruttare al massimo le risorse disponibili ed evitare conflitti tra librerie (cosa molto frequente con Arduino…).
Quindi: se chi ha imparato a fare qualche bel lavoretto con Arduino vuole “crescere” e passare ad utilizzare processori più potenti, ebbene, deve sforzarsi un momentino e passare ad IDE professionali che possano anche programmare Arduino, come Eclipse (quello che utilizzo con Xmega).
A proposito: ci sto giocherellano a tempo perso e credimi «questo è un processore che permette di fare cosa che voi “arduinisti” non potete neppure immaginare…» 🙂
Comunque: state “sintonizzati” perchè stiamo organizzando un gruppo che prepari con Xmega e Eclipse tutto quello che si fa con l’IDE di Arduino senza tutti i limiti di Arduino, ovvero: Xduino 😉
Sono molto incuriosito… rimango sintonizzato 😉
Buon lavoro e grazie per le info.
Ciao kokiua, sono anche io alla ricerca di qualcosa di meglio rispetto all’ide. Arduino hardware non è male per iniziare ma l’IDE, è un tormento. Le librerie e l’ide insieme permettono a chi si avvicina ai microntrollori di ottenere progetti interessanti in poco tempo, i problemi vengono quando l’applicazione è time critical, allora è necessario ottimizare o passare ad un micro più performante. Alle volte però è necessario cambiare famiglia di microcontrollori, ed è quello che devo fare. Ho necessita di usare degli encoder con 720 CPR che in quadratua diventano 2880 e non devo perdere neanche un count. Studiando la documentazione esce fuori che gli Xmega hanno un sistema che nessun’altro micro ha, si tratta di quello che chiamano Event System, con il quale è possibile triggerare un’evento esterno o interno con solo 2 cicli cpu. Insomma sembra proprio quello che mi serve tuttavia vedo che quella scheda monta un quarzo ad 8MHZ, mi sorge un dubbio se io lo cambio con una da 32MHZ potrei avere problemi, anche altre schede con Xmega usano 8MHZ.
Per finire hai visto le librerie in sviluppo MHVlib? Il tizio le ha sviluppate proprio con e per eclipse.
Grazie per lo spazio ciao.
Ciao Mauro 🙂
Allora, xmega lavora anche a meraviglia con il clock interno a 32MHz senza alcun quarzo esterno. Il quarzo è utilizzato per ottenere un clock più preciso. Mi spiego meglio: è possibile impostare come oscillatore il quarzo esterno e “moltiplicarlo” internamente (mediante un pll interno) siano ad ottenere il clock a 32Mhz (ma teoricamente anche oltre). Inoltre ha a disposizione un clock a 32Khz per la funzione di tempo (slegato dal clock principale) per il quale è possibile anche mettere un apposito quarzo esterno (in aggiunta a quello principale). Senza contare che la frequenza di lavoro è selezionabile da programma per permettere fasi di riduzione di consumi … In merito poi agli encoder, questa fantastica cpu utilizza un sistema interno per la lettura automatica di encoder. E questa è solo la punta dell’iceberg … dovremmo parlare anche della gestione degli eventi, della gestione DMA (in pratica puoi programmare eventi che non impegnano la cpu per acquisire dati e/o farli uscire in automatico) per non parlare della gestione dei livelli di interrupt (con la funzione round robin per il livello più basso per non avere interrupt morti).
La Atmel ha fatto davvero un prodotto con potenzialità incredibili, anche se esistono alcuni problemini che sono comunque facilmente risolvibili, ma il problema maggiore è che si tratta di un prodotto veramente molto giovane (è da poco più di un ano che è in vendita regolarmente) e per questo è veramente difficile trovare librerie e applicazioni alle quali fare riferimento. Io ci sto lavorando sopra davvero tanto e mi dispiace che non ci siano altre persone (sopratutto in Italia) con le quali potersi scambiare esperienze… Ma nonostante questo è veramente un prodotto molto, molto interessante dalle potenzialità davvero straordinarie. E qui mi fermo (per ora) altrimenti dovrei parlarti di tutte le prove (riuscite) che ho già fatto e di quelle che sto facendo… veramente tanto lavoro 🙂
Ok ho continuato a leggere la doc le application note, ma ancora non sono arrivato a capire come sia possibile tramite il PPL modificare la sola frequenza di una periferica interna che potrebbe anche vedere un clock fino a 128MHZ vedendo così incrementate le prestazioni. Conordo in pieno quando dici che l’Atmel ha fatto un prodotto con potenzialità incredibili.
Io sono venuto a conoscenza dell’Xmega grazie al tuo blog partendo da forum di arduino seguendo tutta e dico tutta la discussione.
Be se ti può far piacere (a me lo fà) possiamo parlarne insieme collaborare.
La mia direzione è più o meno questa:
Java non lo sopporto, quindi anche eclipse per me è un problema, potrei cedere e provarlo ma sono su fedora 8 ma con kernel-2.6.34.7 o cambio distro o compilo a mano la nuova versione di eclipse che se poi vuole anche java originale mi girano.
Wiring o processing non mi interessano, conosco C/C++ (poco) python/PyQt4 (discretamente).
Uso un ide chiamato kontrollerlab anche se è in sviluppo lento.
Ho provato le librerie MHV http://www.makehackvoid.com/group-projects/mhvlib-efficiency-oriented-library-avr-microcontrollers e mi sembra stiano sviluppando nella direzione giusta, hanno una struttura simile a avr-libc, includi solo MHV_io.h, che carica l’header giusto per quel micro quindi è relativamente facile aggiungere supporto.
Ps: non so se la mia email ti risulta, possiamo usare le email o una chat e lasciare il blog per commenti più ordinati.
Ok ciao io continuo a studiare.
Ok, ti rispondo per e-mail … e per chi fosse interessato a seguire l’argomento, l’invito a farsi vivo con un msg qui sul mio blog e vediamo il modo di soddisfare tutte le curiosità.
Ciao
Salve, solo per informarvi che ho aperto un nuovo blog: http://electro-logic.blogspot.it dove sto scrivendo una serie di articoli sulla programmazione degli XMega oltre che a parlare di elettronica in senso più ampio
Leonardo