Bootloader per ATMega328
Semplice schema per realizzare un programmatore di bootloader, che rende un ATMega328 compatibile con Arduino IDE.
Viene realizzato come semplce shield plug-in
di un Arduino Uno (vedere Fig.1):
|
Fig.1
|
Da questo schema si può produrre un layout, per una realizzazione su schedina millefori, come in Fig.2:
|
Fig.2
|
e il risultato è mostrato in Fig.3:
|
Fig.3
|
PROGRAMMAZIONE
Sull'Arduino Uno, collegato al PC, si carica una volta per tutte lo sketch ArduinoISP(vedere Fig.4)
|
Fig.4
|
Il programmatore di bootloader è adesso pronto all'uso: per ogni programmazione (una procedura che dura solo qualche secondo), si procede come segue:
- 1) aprire Arduino IDE
- 2) collegare l'Arduino UNO di Fig.3 al PC, tramite la connessione USB
- 3) selezionare in Strumenti/Programmatore l'opzione Arduino as ISP
- 4) sul connettore 28DIP dello shield montare un ATMega328 vergine (cioè senza bootloader precaricato), avendo cura che il pin1 del componente sia
posizionato come mostrato in Fig.3
-
5) selezionare Strumenti/Scrivi il bootloader
- 6) dopo pochi secondi l'operazione è terminata; rimuovere il componente programmato e ripetere i punti 4) e 5), per ogni componente vergine, su cui precaricare il bootloader
- 7) a fine programmazione ripristinare in Strumenti/Programmatore l'opzione USBasp per la programmazione normale
|
Fig.5
|
TROUBLESHOOTING
Per alcune versioni di ATMega328, l'operazione descritta al punto 6 del paragrafo precedente può dare errori del tipo
avrdude: Yikes! Invalid device signature o similari.
In questi casi una soluzione può essere la seguente procedura:
- uscire da Arduino IDE
- andare nella directory Programmi/Arduino/hardware/tools/avr/etc/
- copiare il file avrdude.conf e rinominarlo avrdude_orig.conf (per ogni evenienza)
- con un editor di testo qualunque modificare la linea di testo: da signature = 0x1e 0x95 0x14; in signature = 0x1e 0x95 0x0F;
modificare una successiva linea di testo: da signature = 0x1e 0x95 0x0F; in signature = 0x1e 0x95 0x14
-
salvare il file modificato e ripetere la procedura di programmazione del bootloader