Sat 04/19, 2008

Arduino with ATmega88 [Electronics ]

ATmega88先日失敗した ATmega88 で Arduino に再挑戦。Bootloader だけでなく、cores/arduino のコードに手を入れて何となく動くようになった。手順は実に乱暴で、__AVR_ATmega168__ が定義されている箇所に OR 条件として __AVR_ATmega88__ を追加しただけ。

[変更前]
#if defined(__AVR_ATmega168__)
[変更後]
#if defined(__AVR_ATmega168__) || defined(__AVR_ATmega88__)
ただし、Bootloader のソースコード内で CPU signature (SIG2,SIG3) と PAGE_SIZE が定義されている部分だけはそのままにしておく。
#elif defined __AVR_ATmega88__
#define SIG2	0x93
#define SIG3	0x0a
#define PAGE_SIZE	0x20U	//32 words

#elif defined __AVR_ATmega168__
#define SIG2	0x94
#define SIG3	0x06
#define PAGE_SIZE	0x40U	//64 words

実行時には hardware/boards.txt に ATmega88 用のエントリを追加しておくこと。mcu が atmega88 で、アップロード容量が半分(ATmega8 と同じ)になる他は ATmega168 と同じ。

##############################################################

atmega88.name=Arduino NG or older w/ ATmega88

atmega88.upload.protocol=stk500
atmega88.upload.maximum_size=7168
atmega88.upload.speed=19200

atmega88.bootloader.low_fuses=0xff
atmega88.bootloader.high_fuses=0xdd
atmega88.bootloader.extended_fuses=0x00
atmega88.bootloader.path=atmega88
atmega88.bootloader.file=ATmegaBOOT_88_ng.hex
atmega88.bootloader.unlock_bits=0x3F
atmega88.bootloader.lock_bits=0x0F

atmega88.build.mcu=atmega88
atmega88.build.f_cpu=16000000L
atmega88.build.core=arduino
AVR プログラマには ELM 版 COM ポート ISP アダプタ と制御ソフトを用い、Arduino IDE から Bootloader の書き込みは試していない。ヒューズビットの設定など書き込み手順は ATmega168 と同じだ。 サンプルの Blink と Button でしか動作の確認はしていないから、他は動けば儲けものくらいに思って欲しい。Bootloader が CPU signature の照合をおこなうから、ATmega168 用にコンパイルしたプログラムをアップロードするとエラーになる。アップロードの前には必ず compile/verify するようにしたほうが良い。とりあえず、ATmega88 用に変更した Bootloader を置いておく。 ATmega88 は ATmega168 に比べてフラッシュの容量が半分だけど、秋月電子通商で 250 円というのは実に安い。その秋月電子通商では ATmega168 を扱っていないんだよね。

[2008.04.22]
試してはいないが、Bootloader で CPU signature を ATmega168 と同じにすることで cores のコードに手を入れずに動かせるかも知れない。この場合、boards.txt では 168 用のものの maximum_size を 7168 とするだけ良い筈だ。

[2009.04.26]
Arduinoのbootloaderについて深追い」で「mega88でもefuse=00でbootloader=2KBの設定なので 最大サイズは8K-2K=6K => 6144(0x1800) なのではないか? 」とあります。多分そうですね。

Posted by masato at 04:49 PM
このエントリーのトラックバックURL: http://bird.dip.jp/cgi-bin/mt/mt-tb.cgi/1562
Trackbacks

コメント/Toy/Bookmark/Arduino関連
Toy/Bookmark/Arduino関連 http://bird.dip.jp/mt/archives/2008/04/19/1649.html -- 2009-04-21 (火) 17:51:14 New! http://www.geocities.jp/arduino_diecimila/bootloader/index.html -- 2009-04-21 (火) 17:29:23 New! http://hwhack.blogspot.com/2009/03/ardu...

From なんかいろいろ (PukiWiki/TrackBack 0.3) at 04/21, 2009 05:51 PM
コメントする

おそらく携帯電話等からは投稿できません。日本語文字列を含まないコメントやトラックバック、および当サイトへの言及を含まないトラックバックは御遠慮いただいております。また、90日以上経過した記事へのコメントはできません。










名前、アドレスを登録しますか?