2012/12/13

ArduinoのプログラムをATmega328Pへ

前回、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 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。