前回、ATmega328PとAVR ISP MkIIの接続ができない、と書いて終わりましたが、
その後確認したところ、ピンとコネクタの間に配線が挟まっていたことが分かりました。orz
配線をコネクタの邪魔にならないようにシッカリよけたら、ISPがATmegaを認識して
くれました。
ISPもつながったので、Arduinoで作ったプログラムをATmega328Pに書き込むの
ですが、以下の手順で成功しました。
念のため、AVRのマイコンはプログラムを格納する領域と、ピンやブートの番地設定を
するヒューズビットと呼ばれる領域があります。
今回はプログラムの書込みとヒューズビットの設定を行いました。
(1) プログラムの書込み
pressuer.cpp.hexというのがArduinoのコンパイルで生成されたHEXファイルです。
$ avrdude -c avrispmkII -P usb -p m328p -U flash:w:pressuer.cpp.hex:i
(2) ヒューズビットの設定
リンクのページで書き込むヒューズビットの計算をしてくれます。
http://www.engbedded.com/fusecalc
また、日本語でヒューズビットの説明をしてくれるサイトです。
http://ja9ttt.blogspot.jp/2011/05/avr-atmaga8x-fuse-bit-memo.html
以上で設定値が分かりましたら、avrdudeで書込みを行います。
(私のボードでは16MHz X'TALを入れています)
$ avrdude -c avrispmkII -P usb -p m328p -U lfuse:w:0xcf:m -U hfuse:w:0xd9:m -U efuse:w:0x07:m
以上の設定で、オリジナルのボードでプログラムが動作しているようです。
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。