2012年4月7日土曜日

生ATmega328P-PUにブートローダー(optifix)を書き込む




購入したての生ATmega328P-PUにはなにも書きこまれていないので、ArduinoIDEからスケッチをアップロードするにはまずブートローダーを書きこまないといけません。
そこでブートローダー(optifix)を書き込みUno化してみました。

ArduinoUnoボードをAVRライターとして使います。配線は
From Arduino to a Microcontroller on a Breadboard
にある
を参考に。
これからどれだけ生チップを利用するかわからないですが、ブートローダー書き込み用のシールドを作成。

書き込む328P用のoptifixスケッチ(スケッチの中にoptiboot改良版ブートローダーのイメージあり)はここからダウンロード。
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1295516707





解凍したものをフォルダーごと自分のスケッチが保存されるフォルダーにコピーしておきます。

一箇所書き換えないとエラーが出るので、ダウンロードしたファイル「optiLoader.h」をテキストエディタで開き(改行コードの関係?メモ帳は避けたほうがいいかも。フリーのe-Editorを使いました)、1行目を
#include <WProgram.h> → #include <Arduino.h>
に書き換えます。

ArduinoUnoにシールドを乗せ、ICソケットに生チップを挿し込み、ArduinoIDEで先程ダウンロードしたスケッチを開き、ArduinoUnoにスケッチをアップロード。
すると勝手に生チップにブートローダーが書きこまれます。
シリアルモニターを開き、通信速度を19200baudにしてこのように表示されてれば成功。


Unoのチップと乗せ変えてスケッチをアップロードしてみましょう。


ちゃんと動作しました。一安心。
もちろん、このチップをブレッドボードに乗せても正常に動作。


optifixを書き込むときにクリスタルがつけてあるので、ブレッドボードで動作させるときには、外部クロック供給源を接続しないといけません。写真は16MHzのセラロックを使用。

スケッチをアップロードするたびにUnoボードに載せ替えるのは面倒なので、ブレッドボードにUSBシリアル変換モジュールを乗せてアップロードするのが簡単そうです。

USBシリアル変換モジュールがあれば、avrdudeというソフトを使いブートローダー、ヒューズの書き換えもできるようになります。

ヒューズの設定がunoとoptifixは相違があるので、以下のサイトを参照されることをおすすめします。

参考サイト
簡単!ATmega328Pにブートローダを書きこむ | N.Yamazaki's blog
Memoteki ATmega328Pにoptifixを書き込む


環境:ArduinoUno、Arduino1.0





0 件のコメント:

コメントを投稿