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:

Image:Dongle_done2_t.jpg

Si connette alla porta parallela del PC:

Image:Parallel_t.jpg

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:

Image:189061419_d483677b54.jpg

E' molto simile al programmatore parallelo ma si connette alla porta seriale:

Image:Serial_port_t.jpg

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:

Image:Avrispmk2.jpg

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.

Image:STK500.jpg

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.

Image:ATAVRDRAGON.gif

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.


Name (required):

Website:

Comment:

Kelly Brown said ...
02:13, 13 giu 2009 (CEST)
Great post! I'll subscribe right now wth my feedreader software!

94 Rating: 1.9/5 (20 votes cast)

Strumenti personali