読者です 読者をやめる 読者になる 読者になる

EnsekiTT Blog

EnsekiTTが書くブログです。

OSXとAVRライターでArduino

Arduinoを小さくしたくて、ICSPから書き込めないかと試行錯誤して、途中肝を冷やして、復旧して安らかに布団にもぐるまでの流れ。

1, OSXでAVRライタを使ってICSPから書き込めないかの試行錯誤

2,書き込めたけど、あれ?この方法じゃブートローダ消えてね!?と慌ててブートローダを探しまわる

3,ブートローダの書き込みもサクッと成功して安らかに布団に入る

以上三本立です。

環境:OSX 10.7.5 AVRライター(akizukidenshi.com/catalog/g/gM-02582/)

1, OSXでAVRライタを使ってICSPから書き込めないかの試行錯誤

ArduinoIDE でhexファイルを作成する。Arduino IDEを落とした状態で、

$ vim ~/Library/Arduino/preferences.txt

build.path=保存したい場所 preproc.save_build_files=true と書き込む。preproc.save_build_filesはもともとあるfalseをtrueに書き換えて、上書き保存。 Arduino IDEを開いてスケッチしたら検証。さっき指定した保存したい場所にhexファイルができていることを確認して、適当な場所にコピーする(ArduinoIDEを閉じるとHEXファイルも消されてしまうため)

hexファイルが出来た。次は書き込みだ! 今回はArduinoUNOが犠牲になりました。ICSPから書き込んでみよう〜っとavrdudeで書き込めるらしいお!

$ brew install avrdude --with-usb #多分mac portsでも大丈夫

意気揚々と書き込みましたね

$ avrdude -c avrisp2 -P usb -p m328p -U flash:w:sketch_jul19a.cpp.hex:i

意味{ avrdude: コマンド名, -c: 書き込み機, -P: ポート, -p: マイコン(ATMEGA328=m328p), -U メモリータイプ(今回フラッシュ):r|w|v(今回書き込みのw):ファイル名(sketch_jul19a.cpp.hex):フォーマット(今回はintel HEXのi)} 詳しくはこちら:http://www.nongnu.org/avrdude/user-manual/avrdude_4.html

このへんで、( ゚д゚)ハッ!これブートローダ消えたんじゃね?ArduinoUNOOOOOOOOOOO_o 状態に陥る。

2,書き込めたけど、あれ?この方法じゃブートローダ消えてね!?と慌ててブートローダを探しまわる

/Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/bootloaders/optiboot/optiboot_atmega328.hex コンパイルでもしなきゃいけないかと思ってたらご親切にhexファイルがあった。 まだ不安を残しつつも

3,ブートローダの書き込みもサクッと成功して安らかに布団に入る

$ avrdude -c avrisp2 -P usb -p m328p -U flash:w:optiboot_atmega328.hex:i

書き込んで、Arduino IDEからハローワールドを無限に送りつけるスケッチを書き込んだら、ちゃんとひたすらハローワールド送ってきてくれたので、うまく行ったようです。

ここで、ノートパソコンを閉じ、ダイブイントゥザオフトゥン。

4,追記:Yikes!ってなったときのトラブルシューティング

avrdudeでatmega328pへ初めて書き込みを行う際に,Yikes!と怒られる件について

avrdude: Device signature = 0x000000 avrdude: Yikes!  Invalid device signature. Double check connections and try again, or use -F to override this check.

まずはもちろん配線をチェックしてください それでもダメなら,書き込みコマンドに -B 8を追加して

$ avrdude -c avrisp2 -P usb -p m328p -U flash:w:optiboot_atmega328.hex:i -B 8

としてみてください.これでうまくいくことがあります.-Bはビットクロック(us)の設定らしい. 1回正しく書き込めると-Bの設定は不要です.

参考:

http://dev4soft.wordpress.com/2011/05/04/mac%E4%B8%8A%E3%81%AEarduino%E3%81%A7hex%E3%82%92%E4%BD%9C%E3%81%A3%E3%81%A6mega48%E3%81%ABavrispmk2%E3%81%A7%E6%9B%B8%E3%81%8D%E3%81%93%E3%82%80/

http://www.ina111.org/archives/212

http://d.hatena.ne.jp/feb-hare/20110610/1307846582

http://forum.arduino.cc/index.php/topic,25385.0.html