« [iPhone][Jailbreak]地下鉄通勤者用!? アンテナ検索を強制的に実行するSearchSvcAirPlaneToggle | Main | [iPhone][AVR]iPhoneにAVRマイコン(Atmel ATtiny2313)をつないでみた »

2008.10.20

[AVR]ATmega644PにSanguinoのBootloaderを焼いてみたり

Arduinoを体験したくてマイコンいじりを再開。

ATmega644PにSanguinoのBootloaderを焼いて動かし、ATmega168にもArduinoのBootloaderを焼いて動かしてみた。

R0013016

Mac OS Xから焼くのはうまくいかないので、VMware Fusion上のAVR Studioから焼いた。

Bootloaderを焼く際に、Fuse bitのCKDIV8がOnになっているのになかなか気づかずハマった。
これがOnだとクロックを8分周してしまうので、AVRとIDEで通信ができないわけ。
PB5につないだLEDの点滅のスピードが何となく遅いことが気になっていたものの、そうと判明したのは、既に買ってあったArduino DiecimilaのFuse bitとLock bitをAVR Studioで読んで、自分で焼いた動かないものと比較したときだった……。

リセット回路でハマったこと。
Arduino/Sanguinoにプログラムを書き込むには、IDEで書き込みを指示したときにタイミングよくリセットをかけなくてはならない。
最初は、RESETをGNDに落とすスイッチだけを付けて手動でやってみたけれど、これではだめだ。最低限10kの抵抗を介して、プルアップしなければならない。

DTR#を使うと、Arduino Diecimilaのように自動リセットができるようになる。

Macとの接続には、秋月電子のAE-UM232Rを使用。
AVRのRXとAE-UM232RのTX、AVRのTXとAE-UM232RのRXをつなぎ、AE-UM232RのGNDをAVR側のGNDにつないだ上で、AE-UM232RのDTR#を0.1uFのコンデンサ(パスコンに使うやつを流用)を介して、AVRのRESETにつなぐ。
これで、IDEからの書き込み時に自動的にリセットがかかるようになり、書き込みに失敗しなくなった。

自動リセット機能の無いArduinoにも、上記のような結線で自動リセット機能を追加できるね。

|

« [iPhone][Jailbreak]地下鉄通勤者用!? アンテナ検索を強制的に実行するSearchSvcAirPlaneToggle | Main | [iPhone][AVR]iPhoneにAVRマイコン(Atmel ATtiny2313)をつないでみた »