Rececensione Atmel AVRISP MKII

Rececensione Atmel AVRISP MKII

Aperta la confezione del programmatore Atmel noterete subito quanto piccolo è il programmatore e quanto grande è la confezione. Il contenuto della confezione lo vedete in foto, c’è tutto il necessario per iniziare a lavorare.
Il cavo in dotazione è di lunghezza standard, in alcuni casi potrebbe rilevarsi corto, meglio acquistare un cavo più lungo che rimediare con prolunghe.

Attenzione che il programmatore oltre ad essere piccolo e pure leggero e privo di piedini di gomma ed è facile che il peso del cavo lo trascini giù per terra. Il contenitore plastico lascia intravedere l’interno, mentre all’esterno non ci sono tasti, in quanto tutte le funzionalità vengono sfruttate attraverso AVR Studio. L’unica interfaccia con l’utente è affidata a due led smd montati sulla scheda di cui uno portato all’esterno tramite una guida ottica. Il primo e di colore verde è preposto per segnalare lo stato di alimentazione, ma anche il traffico di dati sulla usb, il secondo a tre colori al fine di segnalare la modalità operativa come pure errori.

L’accesso all’interno è facilitato da delle clip plastiche accessibili da sotto, sbloccandole tutte 4, si vede la schedina. Normalmente non è necessario aprire il contenitore, questa operazione è necessaria nel caso si voglia aggiornare il firmware interno, qualora ne venga rilasciata una nuova versione. La versione attuale del firmware in data 22/09/2011 è Firmware Version Master : 1.10. Vedi la sezione “aggiornare il firmware” a fine articolo.

Atmel AVRISP MKII: Quick start

L’installazione è necessaria solo per il sistema operativo Windows, ma solo nel caso non abbiate installato la versione 5 di AVR Studio, perché questa contiene tutto il necessario per riconoscere ed usare AVRISP MKII.

Nel caso non abbiate la possibilità di scaricare la versione 5 di AVR Studio, potete installare la versione 4, contenuta nel CD incluso nella confezione, in ogni caso la minima versione compatibile con AVRISP MKII è la 4.12. Solo per Windows è disponibile il manuale d’uso scaricabile da qui. Per scaricare AVR Studio 5 è necessario registrarsi, si possono fare entrambe le cose cliccando qui

Il CD contenuto nella confezione non contiene solo AVR Studio 4, ma anche molta documentazione Atmel, quali datasheet, application note ecc per microcontroller ad 8 e 32 bit. Questa documentazione viene copiata sul PC durante la procedura di installazione, mentre su sistemi operativi unix like si deve fare la copia manuale per trasferire la documentazione sul PC, operazione consigliata in quanto forniscono una miniera di informazioni dettagliate da usare durante lo sviluppo. Oltre alla documentazione sono presenti dei file compressi in formato .zip che contengono sorgenti software da usare per apprendere e sperimentare. Se per Windows le cose sono così semplici e immediate lo si deve alla presenza di AVR Studio che fornisce uno strumento di sviluppo integrato.

Per GNU/Linux ed in genere per sistemi operativi unix-like, le cose potrebbero essere un pò più complesse e i tempi per essere operativi potrebbero allungarsi un poco. Per usare il programmatore si deve fare ricorso al programma avrdude che potete trovare già pronto da installare avviando il gestore di pacchetti della vostra distribuzione. Tuttavia di recente è stata rilasciata la versione 5.11 che difficilmente troverete nel gestore di pacchetti, più probabilmente troverete la versione 5.10. Nel caso voleste l’ultimo rilascio dovete procedere con la compilazione e installazione manuale. In entrambi i casi ricordate che per funzionare con AVRISP MKII è necessario che avrdude sia stato compilato con supporto alle librerie “libusb”, quindi in caso di compilazione non dimenticate di installare il pacchetto di sviluppo libusb-devel, diversamente avrdude non sarà in grado di comunicare con il programmatore AVRISP MKII.

Collegamenti elettrici
Il programmatore AVRISP MKII fornisce il solo connettore ISP a 6 pin, a differenza del suo predecessore avrisp che dispone anche del connettore a 10 pin. Tuttavia aprendo il coperchio si vede un footprint a 10 pin privo di connettore, non c’è modo si sapere se è possibile sfruttarlo saldandoci un connettore in quanto la documentazione ufficiale non mostra lo schematico. Due pin di questo footprint vengono usati per porre il programmatore in modalità aggiornamento.

In mancanza di informazione più dettagliate l’unico connettore sfruttabile e quello ISP standard a 6 pin da collegare alla board (target board) che ospita la MCU su cui si vuole trasferire il programma. La posizione dei pin per questo tipo di connettori è standard, tuttavia il connettore sulla target board solitamente non ha inserimento obbligato, quindi bisogna fare attenzione a fare corrispondere il pin 1 con il filo rosso del flat cable.

In ogni caso il programmatore è protetto da corto circuiti e da inversione di polarità, tuttavia e sempre bene prestare un minimo di attenzione per andare sul sicuro. In caso di dubbio controllate che ogni singolo pin si trovi nella stessa posizione a quella mostrata nell’immagine accanto, specie se avete preparato una board su millefori per ospitare il micro-controllore che volete programmare, ma anche se sfruttare le bread board. In rete trovate molti esempi per collegare un MCU Atmel basta cercare “stand-alone” seguito dalla sigla della MCU.

Il manuale d’uso consigli di seguire il seguente ordine per connettere il programmatore:

    Connetti il programmatore al PC tramite il cavo usb in dotazione. Il led dovrebbe lampeggiare brevemente per poi rimanere acceso fisso, questo indica una condizione normale.
    Alimenta la target board.
    Connetti il cavo del programmatore alla target board.

Se il programmatore rimane disconnesso dalla target board per x tempo il led tricolore da verde diventa rosso ad indicare che non vi è collegamento alla target board. Connettendo la target board il led diventa verde ad indicare che tutto è connesso come si deve. Terminata questa fase si passa al software che comanda il programmatore.

Avrdude & C

Il programma avrdude è un programma a riga di comando, questo tipo di programmi eseguono alcune operazioni in base agli argomenti forniti dall’utente, diciamo che possiamo modificare il comportamento del programma e/o selezionare delle funzionalità anziché altre in base agli argomenti specificati sulla riga di comando. Quindi gli esempi devono essere digitati su un terminale virtuale come ad es Terminale di Gnome o kterminal di KDE. Inoltre gli esempi si riferiscono al programmatore connesso ad una board Arduino 2009 con a bordo il microcontrollore ATmega328p originale. Dopo avere effettuato la connessione la prima cosa che possiamo fare è leggere lo stato dei fuse tramite il seguente comando:

avrdude -p m328p -c avrispmkii -P usb -v

Se il comando va a buon fine avrdude risponde così:

avrdude: Version 5.11, compiled on Sep 21 2011 at 22:46:11 
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/ 
         Copyright (c) 2007-2009 Joerg Wunsch 

         System wide configuration file is "/etc/avrdude.conf" 
         User configuration file is "/home/mauro/.avrduderc" 
         User configuration file does not exist or is not a regular file, skipping 

         Using Port                    : usb 
         Using Programmer              : avrispmkii 
avrdude: usbdev_open(): Found AVRISP mkII, serno: 000200064003 
         AVR Part                      : ATMEGA328P 
         Chip Erase delay              : 9000 us 
         PAGEL                         : PD7 
         BS2                           : PC2 
         RESET disposition             : dedicated 
         RETRY pulse                   : SCK 
         serial program mode           : yes 
         parallel program mode         : yes 
         Timeout                       : 200 
         StabDelay                     : 100 
         CmdexeDelay                   : 25 
         SyncLoops                     : 32 
         ByteDelay                     : 0 
         PollIndex                     : 3 
         PollValue                     : 0x53 
         Memory Detail                 : 

                                  Block Poll               Page                       Polled 
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack 
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- --------- 
           eeprom        65    20     4    0 no       1024    4      0  3600  3600 0xff 0xff 
           flash         65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff 
           lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00 
           hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00 
           efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00 
           lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00 
           calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00 
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00 

         Programmer Type : STK500V2 
         Description     : Atmel AVR ISP mkII 
         Programmer Model: AVRISP mkII 
         Hardware Version: 1 
         Firmware Version Master : 1.10 
         Vtarget         : 4.9 V 
         SCK period      : 8.00 us 

avrdude: AVR device initialized and ready to accept instructions 

Reading | ################################################## | 100% 0.01s 

avrdude: Device signature = 0x1e950f 
avrdude: safemode: lfuse reads as FF 
avrdude: safemode: hfuse reads as DA 
avrdude: safemode: efuse reads as 5 

avrdude: safemode: lfuse reads as FF 
avrdude: safemode: hfuse reads as DA 
avrdude: safemode: efuse reads as 5 
avrdude: safemode: Fuses OK 

avrdude done.  Thank you. 

Questa riga: avrdude: usbdev_open(): Found AVRISP mkII, serno: 000200064003, può tornare utile nel caso abbiate più di un programmatore connesso al pc, in tal caso dovete specificare a avrdude quale programmatore avete intenzione di usare. L’argomento -P serve ad indicare il dispositivo hardware che si vuole usare, nel comando precedente è seguito da “usb” perchè c’è solo un programmatore connesso al pc e avrdude non ha scelta. Per specificare il dispositivo è sufficiente prendere gli ultimi 4 numeri del “serno:” (serial number) usandoli in questo modo: -P usb:40:03. Gli ultimi dati visualizzati riguardano i fuse byte, come si vede ci sono 3 byte dedicati ai fuses. lfuse, hfuse, efuse sono nominati nel datasheet rispettivamente Low Fuse, High Fuse, Extended Fuse.

Quanto detto è il minimo indispensabile per mettere in funzione il programmatore AVR ISP MKII usando avrdude, sia su GNU/Linux che su Windows. Tuttavia il prodotto nasce per essere usato con AVR Studio e con questo si riesce a sfruttare a pieno tutte le funzionalità in modo semplice ed immediato, purtroppo AVR Studio può essere eseguito nativamente solo su piattaforma Windows.

Aggiornamento firmware
L’aggiornamento è gestito solitamente in modo automatico da AVR Studio, quando questo contiene una versione più recente del firmware contenuto nel memoria del programatore. Una interruzione forzata della procedura di aggiornamento può compromettere il funzionamento del programmatore, quindi eseguire la procedura su PC portatile con batterie cariche o con PC fisso sotto gruppo di continuità.

La procedure manuale di aggiornamento prevede l’apertura del contenitore al fine di realizzare un ponte provvisorio come visibile nell’immagine sottostante.

Tale ponte deve essere fatto con alimentazione disconnessa, cioè senza connessione usb e senza connettere il cavo ISP alla target board. A connessione effettuata riconnettere il cavo usb al pc, dovreste vedere il led lampeggiare alternando i colori rosso, arancione. Ora eseguire le seguenti fasi:

    Avviare l’applicazione “AVRISP mkII Upgrade….” presente nel menù Tools di AVR Studio.
    Premi il pulsante “Start Upgrading”.
    Attendere la fine dell’aggiornamento e rimuovere il ponte tra i pin 1 e 3.
    Togliere e reinserire il connettore usb.
    Premere il pulsante “Done”.

Il programmatore è stato aggiornato e ora lo si può utilizzare.
Nota che questa operazione mi risulta sia possibile solo su Windows.

STAMPA     Tags:, ,

4 Comments

  1. Fabrizio87 20 ottobre 2011
  2. maurotec 20 ottobre 2011
  3. maurotec 17 ottobre 2011
  4. fra83 5 ottobre 2011

Leave a Reply

Vuoi leggere un articolo Premium GRATIS?

RFID: un acronimo mille possibilità