だいぶ前に自作したarduinoのS3V3。
mega8を挿して使ってたんだけど、各種ライブラリ
がmega8に対応してなくて、特にPWM(アナログ
出力)関係がダメなので、登場機会がちょっと
少ない…
とはいえ、自動リセットに対応していたり、
各種シールドに対応していたりするわけなので、
普通に使える状態にしておきたい…
しかもいっそのことmega168よりmega328の買い置き
を使ってしまえばduemilanove互換にもできるはず
だと。(USB変換チップは登載してないけど)
というわけで、せっかく秋月が250円になった
のに未だに使わずに溜め込んであった480円
のハヤニエを取り出してくる…
ここからmega8を引っこ抜き、mega328を差し込みます。
このままだとブートローダが入ってないので、
書き込んであげないといけません。
arduino0017をインストールしたフォルダから
328用のブートローダのhexファイルを取り出してきて、
AVR-ISPmkIIで書き込みます。書き込み方は例の
http://nekosan0.bake-neko.net/outline_composition.html
ここに纏めておいた手順と基本的にはいっしょ。
ただ、flashサイズが2倍になっているので、
ブートローダの先頭アドレスが変わってます。
なのでフューズビットの設定は
BOOTSZ = Boot Flash size = 1024 words start address=$1C00
ではなく
BOOTSZ = Boot Flash size = 1024 words start address=$3C00
となります。その他の設定は一緒。
ブートローダ自体は1024ワードで収まっているん
だけど、ユーザプログラム領域がかなりでかく
なってます。
おいらはそんなに大きなスケッチ書くことも無いと
おもうけど…
早速サンプルスケッチからLEDピコピコをロード
してきてコンパイル。IDEのメニューバーから
ボードをduemilanoveに設定、書き込みしてみると…
動いた。当たり前だけど。
で、念のためにスケッチをちょっといじって点滅
速度を変えてみる。
動いた。
なんで2度も書き込むかって言うと、以前1回は
書き込めるんだけど2回目は書き込めなかったって
いう状態になったことがあって、フューズビット
やロックビットの設定が間違ってたっていう
ことがあったため。2回書き込んでどちらも動けば
設定があっていると判断できるわけ。
というわけで、オイラ自作のarduino S3V3は
duemilanove互換になったのでした。(USB-
シリアル変換器が必要だけど)
それにしても最近のarduinoのブートローダは、
空白時間がすごく短くなったのね。使いやすく
なった感じ。
|