Prodotti
Edoardo Vignali
Upload bootloader arduino senza programmer AVR (BitBangMode)
Tutorials -
Venerdì 18 Giugno 2010 17:15
Scritto da Edoardo Vignali

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.

 

Analogia

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.

 

Collegamenti Bit Bang

Altri metodi di cablaggio

Collegamenti bit bang mode

2. Software da scaricare

  • "avrdude-serjtag" FTDI BitBang AVR-Writer

serjtag-0.3.zip

serjtag-0.3.tar.gz

  • Scaricate il file di configurazione per avrdude-serjtag

avrdude.conf

  • "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"

 

C:

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".

Avrdude gui

Adesso selezionate le scelte come in figura.

gui-markggui

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.

fuses atmega168

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.

erase chip

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

flash

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

cc

 

Gioblu Robotics © 2010 - 2012 · Sitemap · privacy

gioscarab@gmail.com · Via Savona 123 20146 Milano MI · PI 06977550968 · Codice fiscale MTLGNN86S09F205F

Gioblu BOTServer è online dal 10 Aprile 2010 - 319.232 Visite - 1.027.175 Pagine visualizzate - 182.309 Visitatori unici - 536 utenti attivi