|
Non avreste sempre voluto sapere come scrivere il bootloader arduino su dei chip vergini senza dover per forza comprare un programmatore AVR? In questa guida sarà illustrato come fare, servendoci semplicemente di un arduino Diecimila, Duemilanove o NG.
Ho testato personalmente con successo questo metodo su Windows XP, prossimamente proverò su Windows 7 e Ubuntu Lucid Lynx.
Per scrivere il nostro bootloader andremo ad utilizzare l'FT232 in modalità BitBang, che ci permette di trasformare gli 8 IO di questo integrato, in un bus bidirezionale a 8 bit. Utilizzeremo anche "avrdude-serjtag" che è un software che permette ad uno degli Arduino sopracitati di scrivere il bootloader su un chip vergine. Nei punti che seguono utilizzerò come esempio un arduino diecimila.
Il principio di funzionamento della bitbang è molto semplice e molto brutale, infatti si scrive direttamente sul micro tramite il chip FT232. Una perfetta analogia è in questa immagine.

1. Modificare Arduino
Sulla nostra Board ci sono 4 piazzole (pads) chiamate X3 e si trovano vicino all'integrato FT232, dovrete rimuovere lo stagno dai fori passanti o con una pompetta "ciucciastagno" o con una treccia per saldare (solder wink). Adesso inserite 4 Pin nei fori e saldateli. Sconsiglio alle persone poco pratiche di saldare direttamente i pin sulla board senza aver tolto lo stagno presente, anzi consiglio di aggiungere del flussante.
La soluzione che ho adottato io è stata quella di mettere dei pin femmina sia nella porta ICSP, sia nella porta X3, in questo modo posso connettere le due porte molto facilmente con quattro cavetti.

Altri metodi di cablaggio

2. Software da scaricare
- "avrdude-serjtag" FTDI BitBang AVR-Writer
serjtag-0.3.zip
- Scaricate il file di configurazione per avrdude-serjtag
- "avrdude-GUI (yuki-lab.jp Version)" GUI wrapper for avrdude
avrdude-GUI-1.0.5.zip mirror site
avrdude-GUI-1.0.5.zip original site (http://yuki-lab.jp/hw/avrdude-GUI/index.html)
- avrdude-GUI ha bisogno della Microsoft Netframework 2.0
La troverete qui (Microsoft .NET Framework 2.0 download page)
3. Installazioni
- Avrdude-serjtag
Per installare Avrdude-serjtag dovrete semplicemente estrarre la cartella in "C:\Program Files"

Cancellate la cartella src dentro la cartella avrdude-serjtag.
- avrdude.conf
Copiate questo file nella cartella C:\Program Files\avrdude-serjtag\binary sovrascrivendolo con l originale.
Il file che sovrascrivete a avrdude.conf conterrà i settings per arduino diecimila
| # Arduino Diecimila programmer programmatore id="diecimila"; id = "diecimila"; desc = "FT232R Synchronous BitBang"; desc = "FT232R sincroni BitBang"; type = ft245r; tipo = ft245r; miso = 3; # CTS X3(1) miso = 3; CTS # X3 (1) sck = 5; # DSR X3(2) SCK = 5; # DSR X3 (2) mosi = 6; # DCD X3(3) Mosi = 6; X3 # DCD (3) reset = 7; # RI X3(4) reset = 7; # RI X3 (4) ; |
- avrdude-GUI (yuki-lab.jp Version)
Si installa come avrdude-serjtag. Estraete l'archivio, poi spostate la cartella ""avrdude-GUI-1.0.5" dentro "C:\Program Files" folder. Funzionerà solo con [1].
3. Settings
Aprite il file"avrdude-GUI.exe" che si troverà in "C:\Program Files\avrdude-GUI-1.0.5".

Adesso selezionate le scelte come in figura.
![]()
![]()

In (i) dovrete premere il bottone con ... e navigare tra le cartelle finchè non troverete avrdude.exe. Il percorso è indicato in figura.
in (ii) dovrete scegliere bitbang diecimila. in (iii) dovrete scegliere un controllore, nel caso del diecimila, il 168. In (iv) si definiscono le opzioni di scrittura, -P sarebbe la porta, -B il baudrate (slow clock).
4. Testing
Prima di scrivere qualsiasi cosa sul nostro micro vediamo se tutto va bene, premete read e se i Fuses saranno quelli in foto allora il nostro micro e il nostro controllore staranno comunicando correttamente.

Se i Fuses saranno diversi da questi prima ricontrollate le connessioni, poi riprovate a leggere. Questa operazione va fatta con un Atmega già programmato e serve solo per testare se tutto funziona.
5. Scrivere il bootloader.
Per prima cosa dovrete staccare l arduino dal pc. Rimuovere il micro programmato, e inserire quello vergine. Dopo aver inserito il micro vergine, ricollegate arduino diecimila al pc. I chip vergini lavorano solo in SLOW CLOCK (attenzione), quindi il -B 4800 è necessario.
Cancellate il chip premendo chip erase, poi leggete il valore del Lock Bit.

Inserite il valore dei fuses che aveva il vostro atmega originale e premete write. Adesso potrete togliere il -B4800.

Premete sul bottone con i tre puntini ... , cercate adesso il bootloader per arduino diecimila con atmega 168. Si trova nella cartella dell ide arduino, lì troverete anche tutti gli altri bootloader. Una volta selezionato il giusto bootloader premete Erase-Write-Verify.
Ora che il Bootloader è stato scritto staccate arduino dal pc, scollegate la X3 dalla icsp e ricollegatelo al pc. Selezionate la giusta porta e la giusta scheda nell ide e caricateci sopra lo sketch blink per testare se tutto funziona.
I fuses per gli altri micro sono indicati in questa tabella
| Micro | hfuse | lfuse | efuse | unlock | lock |
| Atmega8 | CA | DF | nc | 3F | 0F |
| Atmega168 | DD | FF | 05 | 3F | 0F |
| Atmega368 | DA | FF | 05 | 3F | 0F |
| Atmega1280 | 42 | 99 | FF | 3F | 0F |
Questo articolo è un riadattamento in italiano di questo articolo.
L'immagine in alto è stata presa da Hack a Day
![]()