秋月AE-ATMega(ATmega328P)に、avrdudeを使って arduino bootloader 書き込み
4っつのステップ
step1) unlocking the bootloader section of the chip
step2) setting the the fuses on the chip
step3) uploading the bootloader code to the chip
step4) locking the bootloader section of the chip.
の順番でやっていきます。
後半戦の参考資料はここがいい感じ
http://zampoh.cocolog-nifty.com/blog/2009/03/arduino---atmeg.html
ブートローダーの本体はarduinoのIDE revision22をDLするとその中にはいってます
DLしたあと、ここらへんで見つけられる。
[hirasawa@deb505-64-32 atmega]$ pwd /home/hirasawa/Desktop/avr-dude/arduino-0022/hardware/arduino/bootloaders/atmega [hirasawa@deb505-64-32 atmega]$ ls -l | grep ATmegaBOOT_168_atmega328.hex -rw-r--r-- 1 hirasawa hirasawa 5533 2010-12-25 07:12 ATmegaBOOT_168_atmega328.hex [hirasawa@deb505-64-32 atmega]$
このhexファイルを avrdude バイナリが置いてあるところにコピーするとよし
たとえば、わたしの場合は /home/hirasawa/Desktop/avr-dude/avrdude-5.10
step1 and 2) erase したあと、fuseの書き込み
deb505-64-32:/home/hirasawa/Desktop/avr-dude/avrdude-5.10# ./avrdude -C avrdude.conf -c diecimila -p m328p -t -B 4800 avrdude: BitBang OK avrdude: pin assign miso 3 sck 5 mosi 6 reset 7 avrdude: drain OK ft245r: bitclk 4800 -> ft baud 2400 avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.00s avrdude: Device signature = 0x1e950f avrdude> avrdude> erase >>> erase avrdude: erasing chip ft245r: bitclk 4800 -> ft baud 2400 avrdude> w efuse 0 0x05 >>> w efuse 0 0x05 avrdude> w hfuse 0 0xda >>> w hfuse 0 0xda avrdude> w lfuse 0 0xff >>> w lfuse 0 0xff avrdude> d efuse >>> d efuse 0000 05 |. | avrdude> d hfuse >>> d hfuse 0000 da |. | avrdude> d lfuse >>> d lfuse 0000 ff |. | avrdude>
step3) さて、bootloader書き込みぃ
deb505-64-32:/home/hirasawa/Desktop/avr-dude/avrdude-5.10# ./avrdude -C avrdude.conf -c diecimila -p m328p -U flash:w:ATmegaBOOT_168_atmega328.hex avrdude: BitBang OK avrdude: pin assign miso 3 sck 5 mosi 6 reset 7 avrdude: drain OK ft245r: bitclk 230400 -> ft baud 115200 avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.00s avrdude: Device signature = 0x1e950f avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed To disable this feature, specify the -D option. avrdude: erasing chip ft245r: bitclk 230400 -> ft baud 115200 avrdude: reading input file "ATmegaBOOT_168_atmega328.hex" avrdude: input file ATmegaBOOT_168_atmega328.hex auto detected as Intel Hex avrdude: writing flash (32670 bytes): Writing | ################################################## | 100% 21.28s avrdude: 32670 bytes of flash written avrdude: verifying flash memory against ATmegaBOOT_168_atmega328.hex: avrdude: load data flash data from input file ATmegaBOOT_168_atmega328.hex: avrdude: input file ATmegaBOOT_168_atmega328.hex auto detected as Intel Hex avrdude: input file ATmegaBOOT_168_atmega328.hex contains 32670 bytes avrdude: reading on-chip flash data: Reading | ################################################## | 100% 10.72s avrdude: verifying ... avrdude: 32670 bytes of flash verified avrdude: safemode: Fuses OK avrdude done. Thank you. deb505-64-32:/home/hirasawa/Desktop/avr-dude/avrdude-5.10#
step4) 最後にロックをかけておしまい、っと
deb505-64-32:/home/hirasawa/Desktop/avr-dude/avrdude-5.10# ./avrdude -C avrdude.conf -c diecimila -p m328p -t -B 4800 avrdude: BitBang OK avrdude: pin assign miso 3 sck 5 mosi 6 reset 7 avrdude: drain OK ft245r: bitclk 4800 -> ft baud 2400 avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.00s avrdude: Device signature = 0x1e950f avrdude> w lock 0 0x0f >>> w lock 0 0x0f avrdude> d efuse >>> d efuse 0000 05 |. | avrdude> d hfuse >>> d hfuse 0000 da |. | avrdude> d lfuse >>> d lfuse 0000 ff |. | avrdude> d lock >>> d lock 0000 0f |. | avrdude> quit >>> quit avrdude: safemode: Fuses OK avrdude done. Thank you. deb505-64-32:/home/hirasawa/Desktop/avr-dude/avrdude-5.10#
最後にjumperの配置とコマンドのヒストリーでほんとにおしまいまとめ
W B G R W - B G R - WBGRの意味の分からん場合は、前の記事をみること 529 ./avrdude -C avrdude.conf -c diecimila -p m328p -t -B 4800 530 lsmod | grep usb 531 rmmod ftdi_sio usbserial 532 ./avrdude -C avrdude.conf -c diecimila -p m328p -t -B 4800 kokode erase,w bit erase w efuse 0 0x05 w hfuse 0 0xda w lfuse 0 0xff d efuse とかで中身の確認 quit 533 ./avrdude -C avrdude.conf -c diecimila -p m328p -U flash:w:ATmegaBOOT_168_atmega328.hex kokode bootloadup 534 ./avrdude -C avrdude.conf -c diecimila -p m328p -t -B 4800 kokode lock bit w lock 0 0x0f dコマンドで確認