Programmare un ATmega328 standalone con ArduinoISP (Arduino Mega 2560)

Come programmare con l'Arduino Mega 2560 un nuovo ATmega328 (o ATmega168 ) utilizzando il clock interno :

Se si usa un nuovo ATmega328 (o ATmega168 ), avrete bisogno di programmare prima il bootloader e poi lo sketch ed è possibile farlo utilizzando una scheda Arduino mega come un programmatore ISP.

Condizioni di test:

  • Arduino mega2560

  • Condensatore 47uF

  • Led + resistenza da 1k

  • Versione 1.0.5 di arduino installata


Dopo aver installato la versione 1.0.5 di arduino o se l'avete già installata in precedenza bisogna aggiungere nel file boards.txt che si trova nella cartella di arduino sotto hardwarearduinoboards.txt  la seguente configurazione:

(NB: si consiglia di aprire il file boards.txt con WordPad)









##############################################################
atmega328bb.name=ATmega328 on a breadboard (8 MHz internal clock)
atmega328bb.upload.protocol=stk500
atmega328bb.upload.maximum_size=30720
atmega328bb.upload.speed=57600
atmega328bb.bootloader.low_fuses=0xE2
atmega328bb.bootloader.high_fuses=0xDA
atmega328bb.bootloader.extended_fuses=0x05
atmega328bb.bootloader.path=arduino:atmega
atmega328bb.bootloader.file=ATmegaBOOT_168_atmega328_pro_8MHz.hex
atmega328bb.bootloader.unlock_bits=0x3F
atmega328bb.bootloader.lock_bits=0x0F
atmega328bb.build.mcu=atmega328p
atmega328bb.build.f_cpu=8000000L
atmega328bb.build.core=arduino:arduino
atmega328bb.build.variant=arduino:standard




 


Per programmare il bootloader, attenersi alla seguente procedura:

  1. Caricare lo sketch ArduinoISP sulla vostra scheda Arduino che lo trovate in File>Esempi>ArduinoISP.

  2. È necessario selezionare la scheda in uso dal menu Strumenti>Tipo di Arduino, in questo caso sarà "Arduino Mega 2560 o Mega ADK" e la porta seriale sempre dal menu Strumenti corrispondente alla vostra configurazione.

  3. Caricare ArduinoISP su Arduino Mega 2560 selezionando File>Carica.


Si vedranno i led di comunicazione della Arduino Mega 2560 lampeggiare e non dovrebbe generare errori. A questo punto la scheda di arduino e programmata per funzionare da programmatore ISP.




  1. Cablare la scheda Arduino al microcontrollore ATmega328 su breadboard, come mostrato nella FIGURA 1, attenzione per ora non collegare il condensatore.

  2. Selezionare dal menu Strumenti>Tipo di Arduino>"ATmega328 on a breadboard (8 MHz internal clock) "

  3. Selezionare dal menu Strumenti>Programmatore>Arduino as ISP

  4. Esegui Strumenti>Scrivi il Bootloader





FIGURA 1 : Utilizzando una scheda Arduino per programmare il bootloader su un ATmega su una breadboard con o senza clock esterno.



Una volta che il vostro ATmega328P ha il bootloader caricato, è possibile caricare i programmi utilizzando l'Arduino Mega 2560 come programmatore ISP, per fare questo è importante inserire il condensatore da 47uF tra RESET e GND su Arduino Mega 2560.

L' IDE di Arduino comprende avrdude, che è il programma che scrive il programma generato nel micro. Prima di iniziare a programmare, avrdude verifica la "signature" del chip, un codice che identifica un particolare modello di ATmega. Queste signature sono memorizzati in un file, ma quello incluso nell' IDE di Arduino può essere superata. Quindi andando a modificare la signature al più recente, è necessario modificare il file di avrdude.conf (in linux è /usr/share/arduino/hardware/tools/avrdude.conf, in Windows è hardware/toolsavretcavrdude.conf), si deve cercare ATmega328, e, in quel blocco di linee, modificare la riga della "signature" con
signature = 0x1e 0x95 0x14;

Ora aprite il vostro sketch e con l'opzione File> "Carica con il programmatore" si può programmare il micro sulla breadboard.

Commenti