• Meetings e Workshop
    l'associazione organizza workshop e meeting periodici

  • HowTo e manuali
    come costruire da te gadget elettronici e come programmarli

  • Hacking della PS3
    howto su come installare linux ed effettuare altri hack

  • Una comunità organizzata
    entra a far parte di una associazione organizzata e attiva

  • Strumenti di supporto
    per mantenersi in contatto e favorire la cooperazione

beginner - burning bootloader on atmega328-pu PDF Stampa E-mail
Scritto da Carlo Denaro - Blackout   
Carlo Denaro - Blackout

 

Dopo un acquisto a stock di molti chip atmega328 mi sono imbattuto in un curioso problema. avrdude si rifiutava di effettuare il burn del bootloader. Una brevissima surfata nella comunità italica arduino ed ecco spiegato il motivo e la semplicissima soluzione.

 

 

 

 

Il problema

 

Il problema è semplice, in genere Arduino monta atmega328P-pu. La P aggiuntiva indica PicoPower, ovvero che il nostro chippettino è meno goloso di energia. Oltre questo però cambiano anche le signature e di conseguenza avrdude non lo riconosce.

Come fare per effettuare il burn del bootloader? (a chi possiede l'apposito hardware)

 

La soluzione

 

La soluzione è semplicissima, dobbiamo creare una entry apposita nei file "hardware" configurativi di avrdude e dell'ide di arduino (se vogliamo utilizzare quest'ultimo).

Dobbiamo editare il file presente nella directory del nostro IDE (se scaricato) hardware/arduino/boards.txt (nel caso lo abbiamo installato da repository il tutto sta su /usr/share/arduino)

atmega328pu.name=Atmega328PU
atmega328pu.upload.protocol=stk500
atmega328pu.upload.maximum_size=32256
atmega328pu.upload.speed=115200
atmega328pu.bootloader.low_fuses=0xff
atmega328pu.bootloader.high_fuses=0xde
atmega328pu.bootloader.extended_fuses=0x05
atmega328pu.bootloader.path=optiboot
atmega328pu.bootloader.file=optiboot_atmega328.hex
atmega328pu.bootloader.unlock_bits=0x3F
atmega328pu.bootloader.lock_bits=0x0F
atmega328pu.build.mcu=atmega328pu
atmega328pu.build.f_cpu=16000000L
atmega328pu.build.core=arduino

Il file successivo da modificare è hardware/tools/avrdude.conf dobbiamo copiare tutta la entry relativa all'atmega328p-pu e sostiture le prime righe con quelle sotto

#------------------------------------------------------------ 
# ATmega328-PU 
#------------------------------------------------------------ 
part
 id              = "m328pu";
 desc            = "ATMEGA328PU";
 has_debugwire = yes;
 flash_instr   = 0xB6, 0x01, 0x11;
 eeprom_instr  = 0xBD, 0xF2, 0xBD, 0xE1, 0xBB, 0xCF, 0xB4, 0x00,
 0xBE, 0x01, 0xB6, 0x01, 0xBC, 0x00, 0xBB, 0xBF,
 0x99, 0xF9, 0xBB, 0xAF;
 stk500_devcode  = 0x86;
 # avr910_devcode = 0x;
 signature       = 0x1e 0x95 0x14;
 pagel           = 0xd7;
 bs2             = 0xc2;
 chip_erase_delay = 9000;
#--cut--#

adesso potete effettuare il burn del bootloader! buon divertimento!

 

Caricare uno sketch

 

Caricare uno sketch non comporta cambiamenti. Dovete selezionare come board Arduino Uno, senza problemi. Tutto funzionera come sempre. L'unica piccola differenza sarà nell'uso di energia.


 

Commenti  

 
#1 Francesco 2013-03-29 04:56 Vorrei sapere quali righe devo sostituire nel file avrdude.conf Citazione
 

Aggiungi commento


Codice di sicurezza
Aggiorna


grayhats.org, Powered by Joomla!; Joomla templates by SG web hosting
valid xhtml valid css