Comne scegliere un microcontroller?

Ciao a tutti,

mi sta frullando l'idea di intraprendere qualche progetto con un microcontroller, cosa che finora non ho mai fatto (si capiva, no?). Dal momento che qui, a quanto vedo, ci sono un sacco di esperti del settore, questo mi pare un buon posto per chiedere consigli :)

Ora come ora, il mercato offre una varietà veramente impressionante di scelte e possibilità, e dai datasheet ciascuna famiglia sembra la migliore che sia mai possibile inventare...

Potrei "scegliere", si fa per dire, di adeguarmi alla maggioranza, adottando un PIC, od al limite un STxx, che mi pare, sentendo amici e leggendo in giro, siano i più diffusi nel giro dell'homemade, però mi piacerebbe fare una scelta più ragionata - anche perché, una volta scelta una famiglia, non vorrei cambiare per il progetto successivo.

I miei "paletti", che immagino siano quelli di tutti, sono abbastanza ovvi:

- interfaccia di programmazione economica e semplice da fare,

- (facile) riprogrammabilità,

- ragionevole flessibilità d'impiego,

- chip con "pochi pin" per non dover disegnare stampati pazzeschi,

- disponibilità di un ambiente di sviluppo freeware, magari in C.

Preciso, e credo sia utile, che ho una buona dimestichezza sia con l'elettronica che con la programmazione, anche in assembler... :)

Grazie e ciao!

--
73 es 51 de i3hev, op. mario

Non è Radioamatore, se non gli fuma il saldatore!
- Campagna 2006 "Il Radioamatore non è uno che ascolta la radio"

it.hobby.radioamatori.moderato
http://digilander.libero.it/hamweb
http://digilander.libero.it/esperantovenezia
Reply to
i3hev, mario held
Loading thread data ...

Ciao Mario,

dal mio punto di vista e tenendo conto dei punti chiave che hai descritto direi che i microcontroller di casa Microchip possano essere un buona scelta. Anzitutto sono molto diffusi e puoi quindi trovare tonnellate di codice su internet e forum dedicati. Sono dotati di memoria flash perciò riprogrammabili senza problemi; alcuni hanno la possibilità di usare un bootloader (cioè tramite un cavo seriale - ad esempio - puoi riprogrammare *direttamente* il PIC senza più bisogno del programmatore). Ci sono versioni a 8 pin molto performanti con quasi tutte le periferiche necessarie (TIMER, WDT, ADC, PWM, ecc...). La Microchip mette a disposizione gratuitamente un ambiente di sviluppo e un compilatore assembler. Si trovano comunque anche compilatori C di terze parti gratuiti (ovviamente con limitazioni rispetto ai cugini commerciali). Inoltre i PIC sono generalmente più economici rispetto a microcontroller di altre case. Da qualche tempo sono anche usciti i dsPIC: microcontrollori dedicati al DSP.

Se hai bisogno di altre informazioni chiedi pure, naturalmente io ti riporto la mia esperienza e le mie opinioni. Senti anche cosa dicono gli altri amici!

Marco / iw2nzm

Reply to
Marco Trapanese

i3hev, mario held ha scritto:

Io sto imparando gli Atmel AVR

Li trovo estremamente semplici da programmare e ci sono ottimi ambienti di sviluppo gratuiti (WinAVR e Bascom), oltre una comunità pronta ad aiutarti

formatting link

Reply to
[Frank]

Ciao! E grazie per la risposta :o)

be', se li usano in tanti, qualcosa di buono devono pur averlo! :o) Ma, come dicevo, in giro c'è di tutto di più :) , e ad esempio anche gli Atmel sembrano interessanti, ma anche i maxim, e vari altri...

La disponibilità di codice è senz'altro un "plus" (se non altro, come indicatore della diffusione della famiglia), ma tutto sommato nel mio caso (cioè, per le idee che mi frullano in mente) conta meno degli altri fattori... molto interessante è invece la faccenda del bootstrap, me ne puoi dire qualcosa di più? L'hai mai usato?

Interessante è anche la disponibilità di freeware di sviluppo, hai sottomano qualche riferimento?

Ciao e grazie.

--
73 es 51 de i3hev, op. mario

Non è Radioamatore, se non gli fuma il saldatore!
- Campagna 2006 "Il Radioamatore non è uno che ascolta la radio"

it.hobby.radioamatori.moderato
http://digilander.libero.it/hamweb
http://digilander.libero.it/esperantovenezia
Reply to
i3hev, mario held

degli Atmel ne avevo già letto qualcosa un po' di tempo fa, e sembravano interessanti; il dubbio che ho però è su reperibilità e costo... Sono facili da trovare? Sono cari? Me ne potresti dire qualcosa di più - parlando delle tue impressioni, beninteso, le caratteristiche si trovano sui datasheet... :)

Ciao e grazie.

--
73 es 51 de i3hev, op. mario

Non è Radioamatore, se non gli fuma il saldatore!
- Campagna 2006 "Il Radioamatore non è uno che ascolta la radio"

it.hobby.radioamatori.moderato
http://digilander.libero.it/hamweb
http://digilander.libero.it/esperantovenezia
Reply to
i3hev, mario held

Prima di usare i PIC ho usato gli Atmel. Molto validi anche loro, forse meno diversificati (il catalogo Microchip di tutte le famiglie 12bit,

14bit, 16bit e dsPIC è sterminato) e più costosi. Sicuramente oggi avranno introdotto nuovi chip Atmel ma quando sono passato ai PIC ho notato un maggior numero di periferiche on-board e una maggiore capacità di calcolo a prezzi inferiori.

C'è da dire che ho provato anche a "maltrattare" i PIC e non hanno mai fatto una piega: a volte ho provato/mi sono capitate situazioni assurde e non ne ho mai bruciato uno. A suo tempo invece ho avuto problemi con gli Atmel sia come immunità ai disturbi EM sia come permalosità riguardo alle tensioni di alimentazione, oscillatore, ecc... Ripeto però che sono passati un po' di anni, sicuramente la situazione è migliorata.

Si, lo uso quotidianamente. Ci sono alcuni PIC (es. 16F876A, 18F4520, ec...) che hanno nel set di istruzioni la possibilità di scrivere nell'area di memoria riservata al programma. Questo significa che puoi far riprogrammare il micro da se stesso! In due parole si tratta di inserire una breve routine che viene eseguita ad ogni reset per qualche secondo. Se in questo lasso di tempo riceve ad esempio dalla seriale un comando predefinito inizia la procedura di riprogrammazione altrimenti lancia il tuo programma vero e proprio. Questa routine è bootloader e viene scritta nel micro una tantum con il programmatore esterno che poi metti nel cassetto. In seguito aggiorni il firmware direttamente dalla seriale.

Di bootloader ce ne sono tanti:

formatting link
formatting link
. .

e molti altri. Quello che uso io è questo:

formatting link

Piccolissimo (solo 100 word) veloce e molto comodo. Sul sito trovi anche una descrizione più chiara del funzionamento dei bootloader e una tabella comparativa con i principali bl esistenti.

Sfruttano nella maggior parte dei casi la comunicazione seriale per il download del firmware... ovviamente basta poco per pensare a un aggiornamento remoto via radio o altro.

Anzitutto l'IDE MPLAB Microchip:

formatting link

con consente di sviluppare in assembler o di integrare come plug-in compilatori C di terze parti. (Le ultime versioni mi sembra che abbiano incluso il compilatore C della CCS per i PIC a 12 bit).

Questo è un compilatore C gratuito/low cost, abbastanza limitato in verità, ma da tenere presente:

formatting link

Poi c'è il "guazzabuglio" del progetto GNUPIC:

formatting link

Interessante in quanto appunto di filosofia GNU, ma proprio per questo molto frammentato.

Di nulla! Buona domenica

Marco / iw2nzm

Reply to
Marco Trapanese

ecco, questo è appunto il genere di informazioni che cercavo :) d'accordo, sarà passato del tempo, ma è passato per tutti, no? Quindi la situazione sarà anche cambiata, ma non penso che si sia *drasticamente* ribaltata, altrimenti ne avrei sentito parlare perfino io ...ho avuto problemi con

be', questo è fondamentale per me: io stavo appunto pensando ad applicazioni con rf (e forse anche parecchia!) in giro... :):)

bello! immagino che sia una prestazione che ormai offrono in molti, ma certo che siamo su un altro pianeta rispetto a qualche anno fa, quando mi era venuta la stessa idea sui micro, che allora però avevo lasciato perdere... facevano venire la voglia di usare lo Z80! :)

Grazie per tutti i riferimenti, che adesso mi guarderò con calma; un'ultima domanda (scusami se abuso della tua pazienza, nel caso sei ufficialmente autorizzato a mandarmi al diavolo ;) ): esistono ambienti di emulazione su pc?

Sarebbe molto utile, data la mia totale imperizia, poter mettere in piedi un progetto in un ambiente di emulazione, in modo da scoprire di aver scelto il processore sbagliato __prima__ di averlo già montato nel circuito

Reply to
i3hev, mario held

Ho fatto diversi progettini con PIC e RF: ad esempio alcuni CW keyer per ponti radioamatoriali (ad l'RU7 in Milano) e non hanno mai dato problemi. Sul Monte Rosa c'è il nostro beacon IQ2MI/B

formatting link
con a bordo un PIC per la telemetria e gestione del TX.

In questi casi di RF ce n'è in giro molta!

Reply to
Marco Trapanese

Non so in passato, ma attualmente non è vero. Io uso principalmente Atmel, e chiaramente li preferisco. Io direi che da un pusto di vista tecnico sono leggermente migliori. Se confrontiamo ad esempio un PIC16F876 con un ATMega8 (entrambi 28 pin), datasheet alla mano, vedrai che le periferiche fornite sono leggermente a favore di Atmel. Anche la capacità di calcolo e la disponibilità di RAM è a favore di Atmel. Da un confronto veloce sulla Farnell, anche il costo è a favore di Atmel:

ATMega8: 5,78?

formatting link

PIC16F876: 10,18?

formatting link

Gli strumenti di sviluppo forniti da Atmel sono equivalenti a quelli microchip se si programma in assembly.

Mentre se si scegli il C vincono di nuovo gli Atmel, grazie al supporto da parte del compilatore GCC che è GPL (gratuito) integrato nella suite WinAVR e con AVRStudio.

Programmatori e informazioni se ne trovano a bizzeffe per entrambe le famiglie di microcontrollori.

Come reperibilità PIC e Atmel sono allo stesso livello, forse i PIC16F84 li trovi dal negoziante sotto casa, a causa del loro uso nelle smartcard, ma sono ormai obsoleti.

In definitiva quindi direi che è una scelta più che altro personale, credo che la vera forza degli Atmel sia di scalare meglio verso applicazioni più grandi (compilatore C migliore, migliore capacità di calcolo, velocità e memoria a disposizione).

Ciao

Reply to
Francesco Sacchi

perfetto, grazie :)

ecco, appunto, dovrebbe già bastare per quello che mi serve: autoistruzione, per dirla in breve, prima di andare a comprare silicio ;o)

Ancora grazie!

Ciao.

--
73 es 51 de i3hev, op. mario

Non è Radioamatore, se non gli fuma il saldatore!
- Campagna 2006 "Il Radioamatore non è uno che ascolta la radio"

it.hobby.radioamatori.moderato
http://digilander.libero.it/hamweb
http://digilander.libero.it/esperantovenezia
Reply to
i3hev, mario held

be', mi pare logico - sennò mica li useresti, no? :)

a questo punto, non mi resta che dare un'occhiata più approfondita a datasheet ed ambienti di sviluppo, poi si vede...

Grazie anche a te!

--
73 es 51 de i3hev, op. mario

Non è Radioamatore, se non gli fuma il saldatore!
- Campagna 2006 "Il Radioamatore non è uno che ascolta la radio"

it.hobby.radioamatori.moderato
http://digilander.libero.it/hamweb
http://digilander.libero.it/esperantovenezia
Reply to
i3hev, mario held

Il giorno Sun, 25 Feb 2007 13:11:43 +0100, Francesco Sacchi ha scritto:

Quoto tutto.

Aggiungo due particolari.

La struttura della CPU degli AVR ha un set di ilstruzioni più completo e i 32 registri evitano di dover sempre passare da un accumulatore, cosa molto utile in assembler, anche in C evita un uso meno intenso dello stack a vantaggio delle prestazioni.

La possiblità sulle unità più al top di usare il debugger AVR studio con unità JTAG offre delle possibilità al debugging che tempo fa si ottenevano solo con sistemi di sviluppo costosissimi.

-- ciao Stefano

Reply to
SB

Chiedo poiché non uso più gli Atmel: si tratta dell'equivalente del debug in-system realizzabile con i PIC e l'ICD2?

Ciao! Marco / iw2nzm

Reply to
Marco Trapanese

i3hev, mario held ha scritto:

Qui c'è un interessante parere:

formatting link

Reply to
{Frank}

sto "dando un'occhiata in giro", ma ancora non sono riuscito a capire una cosa: per i pic ho visto in giro dei programmatori estremamente semplici, di prezzo irrisorio, ma per gli AVR ho visto solo programmatori di costo abbastanza significativo (oltre i 60 euro); com'è la situazione? Tu che stai cominciando, che programmatore usi?

Ciao!

--
73 es 51 de i3hev, op. mario

Non è Radioamatore, se non gli fuma il saldatore!
- Campagna 2006 "Il Radioamatore non è uno che ascolta la radio"

it.hobby.radioamatori.moderato
http://digilander.libero.it/hamweb
http://digilander.libero.it/esperantovenezia
Reply to
i3hev, mario held

Marco Trapanese ha scritto:

Umh... Qualcosa mi dice che tu conosci Luca Migliavacca...

Ciao

d.

Reply to
drdlk

Il giorno Sun, 25 Feb 2007 19:35:44 +0100, {Frank} ha scritto:

Si possono quotare le parole:

" AVR is cheaper, simpler, and faster."

Eh, il dono della sintesi.

-- ciao Stefano

Reply to
SB

Il giorno Sun, 25 Feb 2007 22:46:15 +0100, "i3hev, mario held" ha scritto:

Qui trovi un programmatore, con schemi e software che ti puoi autocostruire a costo bassissimo:

formatting link

qui uno più sofisticato ma che si interfaccia ad AVR studio con tutti i vantaggi del caso:

formatting link

-- ciao Stefano

Reply to
SB

Si, lo conosco! Non credo di averlo mai incontrato di persona però, solo in radio.

Ciao Marco / iw2nzm

Reply to
Marco Trapanese

Il giorno Sun, 25 Feb 2007 18:24:13 GMT, Marco Trapanese ha scritto:

Non conosco l'ICD2 e non ti posso rispondere in merito, posso però dirti che JTAG non è un sitema di debug Atmel ma uno standard:

formatting link

-- ciao Stefano

Reply to
SB

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.