A volte puo’ succedere che il bootloader del vostro Arduino UNO si possa danneggiare, oppure avete necessità di sostituire il Microcontrollore ATMEGA328 con uno nuovo. In questi casi è necessario ricaricare il Bootloader originale.
Il “Bootloader” è un piccolo programma che risiede nella parte iniziale della memoria del Microcontrollore, è il primo programma ad essere eseguito ad ogni accensione o RESET della scheda. Ha lo scopo di mettere in comunicazione il PC e il microcontrollore stesso per avere la possibilità di trasferire il codice sorgente (sketch) compilato nella memoria FLASH del microcontrollore.
Nelle schede Arduino appena acquistate il “bootloader” è già caricato in produzione, quindi tranne in casi particolari, non è mai necessario ricaricarlo.
Un’altra interessante opzione è quella di avere un’applicazione “stand-alone”, ovvero un circuito composto solo dal microcontrollore ATMEGA328, software sviluppato con l’ambiente di sviluppo ARDUINO e pochi altri componenti.
In questo tutorial vediamo come si programma un nuovo ATMEGA328 con il bootloader di Arduino UNO.
Materiale necessario:
-Un Arduino UNO collegato al PC tramite USB
-Un microcontrollore ATMEGA328 (versione PDIP)
-Due condensatori ceramici da 18pF
-Una resistenza da 10k ohm (1% o 5% di tolleranza)
-Un cristallo di quarzo da 16 Mhz
-Una basetta 1000 fori o una ‘breadbard’ per esperimenti
Funzionamento e schema elettrico:
Lo schema elettrico è molto semplice, pochi collegamenti tra ARDUINO UNO e la basetta che ospiterà il nuovo ATMEGA328. ARDUINO UNO eseguirà la funzione di ‘programmatore ISP’ portando il firmware del ‘bootloader’ dall’ambiente di sviluppo di ARDUINO fino nella memoria del nuovo ATMEGA328.
Di seguito lo schema elettrico e un disegno per i collegamenti base da eseguire:
Schema elettrico
Collegamenti da eseguire su di una breadboard:
Caricamento del BOOTLOADER
Una volta eseguiti tutti i collegamenti necessari, alimentiamo Arduino UNO collegando la porta USB al computer e selezioniamo la porta USB nell’ambiente di sviluppo (IDE) di Arduino in modo da caricare uno speciale ‘sketch’ che farà la funzione di programmatore ISP verso il nuovo ATMEGA328, successivamente carichiamo lo sketch compilato in Arduino UNO e infine, dopo qualche setup, trasferiamo il Bootloader nella memoria del nuovo ATMEGA328.
Ecco tutti i passi da seguire:
1. Strumenti->Porta Seriale-> (seleziona la porta dove è collegato Arduino UNO)
2. File->Esempi->ArduinoISP (Per caricare lo sketch che farà funzionare Arduino come programmatore ISP)
3. Sketch->Verifica/Compila (Per compilare lo sketch ArduinoISP)
4. File->Carica (Carichiamo il binario dello sketch nella memoria di Arduino)
5. Strumenti->Tipo di Arduino->Arduino Uno (Per specificare quale tipo di bootloader vogliamo caricare)
6. Strumenti->Programmatore>Arduino as ISP (Per specificare che Arduino verrà usato come programmatore ISP)
7. Strumenti->Scrivi il Bootloader (Scriviamo il Bootloader nella memoria del nuovo ATMEGA328)
Durante la scrittura del Bootloader, noterete i LED di Arduino lampeggiare e compare sulla finestra del compilatore una scritta in basso: “Sto scrivendo il bootloader sulla di scheda I/O” e poi dopo qualche minuto: “Scrittura del bootloader terminata”.
Il vostro nuovo ATMEGA328 è ora pronto per l’utilizzo.