- Arduinoでプロトタイプ(試作品)を作っても作品を残すごとにArduinoが必要になります。そんなニーズのための組み込み用 Arduino Pro mini でも1台1800円くらい。だったら ATmega168 だけを買ってArdunioを作ろうという話です。ついでに電池で動くように3.3V仕様にします。さらにさらに、LilyPadモードでまったり起動していたものを高速で起動するため、電源ONですぐに動作するようにしました。
- 必要なもの
AVRライターとして使うための Ardunio Duemilanove (持っていますよね?)
ATmega168 秋月で230円
動作確認用用ブレッドボードとジャンプワイヤ
- 仕様
内蔵RC発振8MHz (LilyPadと同じ)
電源は5V~3V(電池利用を想定)
- ブートローダーの作成
- 高速起動化
\arduino-0017\hardware\bootloaders\atmega にある make
ファイルを書き換え。MAX_TIME_COUNTは起動時の待ち時間で数値が大きいほうが待ち時間が短い。初期値は1で、待ってられないので普通の
Arduinoと同じように4に変更。NUM_LED_FLASHSは起動時のLED点滅数。Digital13を他のデバイスに割り当てた時に信号を送
信してしまうので0にして点滅させないようにした。Ardunio Hacksでは電源ON→app_start() を呼ぶhackを公開しているが、必要があってウエイトを入れている気がするので当分は»4でがまんする。将来的にはMAX_TIME_COUNT=100 といか、直接数値を記入すればいいと思う。
変更した Makefile を添付しておきます
- Make
HEXのビルドに必要なツールは Arduino フォルダの中にあるから、あらかじめここを見てパスを通しておく(パスを通すバッチファイルを setup.zip として添付)。atmegaに入ってmake lilypad すると ATmegaBOOT_168_lilypad.hex が出来る。これをリネームしたものをATmegaBOOT_168_lilypad8MHz.hex , 1MHz駆動にしたものをATmegaBOOT_168_lilypad1MHz.hex として添付しておきます。
ちなみに LilyPad フォルダ内の Make だと下図のエラーが出てしまいます。
- HEX書き込み
ここでファイルを集めて、avrdude_GUIで書き込み。Lock Bitは関係なし。PICと違ってコンフィギュレーションをHEXに埋め込めない。面倒だし、間違えやすいのに・・・
初めて HEX を書き込む場合は、 Fuse を Read して、E2を書込み、高速モードにしてから書き込むと速い。そうしないと3~5分も待たされる。1MHz版のHEXは lFuse のbit7 を 0 にした62 を書込んでおく。ここで1MHzになってしまうので Command line Option に低速モードスイッチ -b 4800 を書かなくてはならない。 1MHz版は Arduino IDE でスケッチをアップロードできないので注意(調査中) 1MHzだと9600bpsでも誤差が±7% もあるのでダメかも
-
Arduino IDE でボードを選択

Arduinoでは Board で LilyPad Arduino w/ ATmega168 で選べばOK 。この方法で LilyPad互換機を作ってしまえば こちらのように delay の速度が変わってしまって board.txt に追加設定する必要もなくなる。添付した board.txt を使うと1MHz版を選べるようになるが、まだ動いていない。
-
動作確認
Arduino Duemilanova から +3.3V , GND だけをもらってくると便利です
配線はGND,Vcc,AD変換を使うのであればAVcc,rstとVcc間に10kΩ程度の抵抗,Vcc-GND間に0.1uFのパスコンを入れれば Blink で確認できると思います。ATmega168には2つのGNDがありますが、どちらか一方だけでOKです。

3.3Vはここから取り出します

|
ď ATmegaBOOT_168_lilypad1MHz.hex (5k) webmaster ., 2010/01/04 18:25
ď ATmegaBOOT_168_lilypad8MHz.hex (5k) webmaster ., 2010/01/04 18:25
ď webmaster ., 2010/01/04 17:24
ď webmaster ., 2010/01/04 18:42
ď webmaster ., 2010/01/04 18:28
|