AVR Programmatori
Da PiemonteWireless.
Indice |
Scegliere un programmatore per i chip AVR
Tipi di programmatori
Esistono circa una dozzina di tipi di programmatori, ma qui esaminerò solo i 4 tipi più diffusi:
- Programmatore semplice (Bitbang)
- Programmatore ISP
- Scheda di sviluppo (Development boards)
- Nessun programmatore (Bootloader)
Programmatore semplice
I Programmatori semplici sono molto economici e facili da usare. Si connettono direttamente ad una porta seriale o parallela e attraverso questa porta il software invia i dati al chip.
Un programmatore a porta parallela è simile al questo:
Si connette alla porta parallela del PC:
Si può vedere la parte argentata che si infila nella porta parallela e poi un cavo che si connette ad una presa 10-pin ISP
Un programmatore seriale è invece simile a questo:
E' molto simile al programmatore parallelo ma si connette alla porta seriale:
Alcuni programmatori hanno un chip con funzioni di buffer per disconnettere i pins di programmazione quando il chip è in funzione, in modo da poter usare i pins di programmazione per altri scopi. Senza un buffer è necessario rimuovere il programmatore dopo che il chip è stato programmato.
Io suggerisco questo tipo di programmatore per quelli che stanno imparando e quindi si cimentano in progetti molti semplici, ma di passare presto ad un programmatore ISP o ad una scheda di sviluppo appena ci si è impratichiti un poco.
Pro: Molto economici (10-15 Eur), di facile comprensione, non c'è nessun rischio di incompatibilità o aggiornamenti poichè si occupa di tutto il software.
Contro: Necessita di un PC con quel tipo di porta, i Macs non possono usarlo, se stai lavorando su alti voltaggi (più du 5V) puoi rovinare la porta.
Programmatori ISP
Questi programmatori si connettono tramite la porta seriale o USB; essi hanno più funzioni rispetto ai programmatori sempici, alcuni di queste molto carine.
Il prgrammatore più diffuso è il modello AVRISP e il AVRISPv2. Entrambi sono simili a questo:
C'e' un connettore da un'estremità e un cavo a 6-pin e/o a 10-pin dall'altra estremità. Il modello AVRISP v1 ha un connettore seriale mentre il modello v2 ne ha uno USB. Il modello v1 ha entrambi i cavi (6 e 10 pins) mentre il v2 ha solo il cavo a 6-pins.
Il modello AVRISP v2 è disponibile presso Digikey.com o Mouser.com per circa $36.
A me piaceva molto il v1 ma non è più in produzione e il v2 non ha il supporto per il cavo a 10-pins e così ho progettato il mio programmatore e l'ho chiamato USBtinyISP; puoi costruirlo con una spesa di circa $20. Guarda qui per vedere come fare.
Scheda di sviluppo
Ci sono dozzine di schede di sviluppo disponibili tutte leggermente differenti; qui mi occupo delle due più popolari (e più economiche) che sono ufficialmente avvallate dalla Atmel.
La prima è la STK500, che per i suoi $80 è perssochè la migliore. Supporta all'incirca tutti i chips dell'Atmel su tutti i sockets. E' fornita di pulsanti, LEDs, un oscillatore a velocità variabile, ecc.. Questo programmatore è supportato da AVRStudio, che è l'ambiante di sviluppo della Atmel. Poichè esso è IL programmatore, il metodo di programmazione che usa per comunicare con il PC (chiamato protocollo STK500) e diventato uno standard. Non è semplicissimo apprenderne il funzionamento ma moltissime persone lo usano.
Puoi comprarlo da Digikey o Mouser.
Il suo aspetti positivi sono una grande board, disponibilità di tutti i socket per i chips. La parte triste è che ha solo la porta seriale, quindi molto probabilmente avrai bisogno del convertitore USB-Seriale.
Il secondo programmatore è il AVR Dragon che è un emulatore e un programatore. E' usato piu' come un ISP che come una scheda di sviluppo; ha il cavo con i connettori sia a 6-pins che a 10-pins.
Non ho giocato molto con questo programmatore ma molta gente dice che è carino, e costa solo $50. Nota che non ci sono socket per i chips.
Bootloaders
Negli ultimi anni, i progettisti di microcontroller hanno aggiunto ai chips la capacità di programmare la propria flash (spesso chiamata auto-programazione). Questo significa che un programma scritto nel microcontroller può cambiare se stesso. Nella maggior parte dei casi questa non è una buona idea poichè può sovrascriversi, danneggirsi e/o causare la rotture del chip stesso. Comunque, in certi casi questa capacità può essere un beneficio.
Prendiamo per esempio un piccolo programma che è stato scritto nel chip e che può comunicare con il computer attrraverso la porta USB o la seriale e permettere al computer di scaricare un nuovo firmware senza l'uso di un programmatore. Quando aggiorni il firmware sul tuo lettore MP3 o sul cellulare accade esattamente questo.
I bootloaders sono una gran cosa, ma hai bisogno di un programmatore ISP per mettere il bootloader sul chip la prima volta dopo l'acquisto. E' come il problema dell'uovo e della gallina.
I Bootloaders inoltre non ti permettono di modificare i fuses (discussi più avanti) e occupano una parte della memoria flash, in questo modo il programma caricato dovrà essere più piccolo.
In generale i bootloaders sono ottimi all'inizio ma io trovo importante avere un modo di programmare il chip in modo da caricare il bootloader e poterlo modificare.








