Arduino / OSX · 13 settembre 2014 0

AVRFuses, una GUI per modificare i fuse delle MCU Atmel (OS X)

AVRFuses

AVRFuses

Molti utenti cercano uno strumento per manipolare le MCU Atmel in modo semplice evitando avrdude ed il terminale. Ci sono diverse opzioni per i più comuni sistemi, ed alcune di esse sono anche multi-piattaforma. Uno di questi è Avrfusess, che è molto usato. Personalmente, non lo amo perché è nato sotto Windows ed è scritto in C# ed usa il framework .NET, costringendo ad installare un file .exe e ad usare Mono sui sistemi non Windows (per chi non conoscesse Mono, è una reimplementazione opensource del framework .NET scritta da zero che permette di eseguire le app .NET sotto Windows/Linux/OSX). Lo strumento che invece vi presento oggi è diverso: è un’app nativa Cocoa scritta esplicitamente per Mac OS X. Il suo nome è AVRFuses.

AVRFuses originariamente era stata scritta anch’essa in C# per il framework .NET ma l’autore, tempo fa, ha deciso di riscriverla come app nativa Cocoa per il solo Mac OS X perciò ora essa gira solo sotto OS X mostrando una perfetta integrazione col sistema. L’app è opensource: l’autore fornisce sia i binari (sotto forma di un’app installabile) sia il codice sorgente compilabile da XCode. Qui vi mostrerò l’installazione dell’app, lasciando l’esperienza di compilare l’app solo agli utenti esperti che vogliono personalizzarla. L’app è scaricabile da questa pagina (al momento della stesura di questo articolo, è alla versione 1.4.8). Scaricate il file ZIP e poi copiate l’app nella cartella Applicazioni del vostro sistema. Adesso, lanciatela cliccandoci sopra (la prima volta il sistema vi avviserà che questa è un’app scaricata da internet e che non è sicuro eseguirla, ma voi ovviamente potete ignorare l’avviso e continuare lo stesso).

Il primo passo da fare è quello di configurare il percorso per avrdude. Questo è un punto cruciale perché avrdude è il sofrtware che dialoga con il programmatore attraverso la linea USB. Di solito, gli utenti scaricano l’app Arduino IDE e la usano così com’è. Personalmente ho l’app CrossPack che fornisce una toolchain Atmel più recente. In ogni caso, dovete specificare il percorso alla versione di avrdude che state usando in “Path to avrdude”. Potete cliccare sul pulsante “Choose..” e trovare la cartella che contiene avrdude se state usando CrossPack (di solito è  /usr/local/CrossPack-AVR -questa non è una cartella reale ma un link simbolico all’ultima versione di CrossPack-) oppure specificando il percorso ad avrdude che è contenuto nell’app Arduino IDE: in questo caso, suggerisco di inserirlo manualmente perché le app sono file compressi, non sono cartelle reali. Perciò, di solito il percorso è qualcosa del tipo /Applications/Arduino 1.0.5.app/Contents/Resources/Java/hardware/tools/avr/etc (cambia a seconda della versione dell’IDE che state usando, controllate aprendo il Finder,poi cliccando col tasto destro e scegliendo “Mostra il contenuto del pacchetto”).

Setup

Setup

Quando avete impostato il percorso ad avrdude, dovete scegliere il programmatore che state usando (“arduino” o “stk500v1” sono scelte valide se state usando ArduinoISP) e la porta a cui è connesso il programmatore (nella figura qui sopra, una scheda Arduino UNO con lo sketch ArduinoISP è connessa ad una porta USB). Modificate inoltre il valore di baude rate secondo necessità (per l’ArduinoISP, va bene 19200). Adesso premete il pulsante “Close” e controllate se nel monitor del terminale dell’app vedete la scritta “Loading avrdude config….” ed il test “SUCCESS” segnato in verde, perché questo indica che AVRFuses è stato in grado di leggere il file di configurazione di avrdude. Se ciò non accade, il programma mostra il messaggio “FAILED” in rosso, nel caso ricontrollate di nuovo il percorso.

Dopo la configurazione, potete iniziare ad usare l’app per leggere/verificare/scrivere dati sulla MCU Atmel che state usando. Dalla linguetta “Program” potete scegliere il tipo di microcontroller, scrivere un file .hex nella sua flash o leggere/scrivere la memoria EEPROM del chip. Dalla linguetta “Fuses” potete facilmente leggere, cambiare e scrivere i fuse del microcontrollore. I fuse sono registri non volatili che impostano il comportamento del microcontrollore, ad esempio scelgono la fonte del clock, abilitano/disabilitano la memoria del bootloader, abilitano/disabilitano la programmazione SPI ecc.. (per un articolo più completo sui fuse, leggete qui).

Perfetto. Ne sapete abbastanza per iniziare ad esplorare le possibilità del programma. Buon divertimento!

[notice]Tenete a mente che modificando i bit dei fuse si può bloccare il microcontrollore, questo significa che si può mettere il chip in uno stato per cui non è più utilizzabile. Ad esempio, se impostate il pin di reset come un normale pin di I/O, poi non sarete più in grado di programmare il chip. L’unico modo per recuperare un chip bloccato è quello di utilizzare un programmatore ad alta tensione come l’AVR Dragon, che è capace di spedire 12V sul pin di reset per pulire i fuse del microcontrollore. Perciò, attenzione![/notice]