2012年6月29日金曜日

AVR Dragon を使ってみる

 AVR Dragon を入手したので、早速使って見ることにしました。


まずはパラレル書込用の接続ケーブルを作ったんですが・・・雑です。配線はAtmel Studioのヘルプの中のAVR Dragonの項目にデバイス(目次のタイトルはスタートキットの型名)別に載っていました。今回はATmega168、328等用を作成。20pinのピンソケット側は圧着でコネクタを作成し、反対側は40pin(使っているのは28pinくらいまで)は順番を変えて配線する必要があるので圧着は難しそうなので、基板用のピンソケットに線を一本ずつハンダ付け。これだとハンダ付けがとれたり、ショーとしたりするのでホットボンドで固めて固定・・・ってホットボンド盛りすぎた・・・。ホットボンドの厚みでゼロプレッシャーソケットと圧着コネクタの間に入らないくらい。
まあ、なんとか押し込んで、試しに書込してみたところ、


一応、無事に書込成功。見た目は酷いですが、機能は果たしているということで・・・。

で、このDragonはパラレルでの書込だけでなく、ISPやDebugWireにも対応しているって言うことで、


ためしてみたところ、ISP書込みは無事成功。ただし、DebugWireでのデバッグがうまくいきません。DebugWire有効にするFusesビットを設定しても反応しなくなり、ISPモードにも戻れず、早速パラレル書込みのお世話に。
で、しばらく悩んで、回路図を眺めてみたところ、どうもこのAVRのDebugWireでのデバッグというのはISP端子の中のリセット端子を使っている様子。で、ISP(というかボードの)リセット端子はAVRマイコンのリセット端子に接続されつつ、シリアル通信モジュール側のDTR(だったかな?)にもつながっていて、そこにコンデンサが入っています。このコンデンサがDebugWireの通信を邪魔しているんじゃなかろうか?と思って基板をよく見ると、ちゃんと、リセット端子からコンデンサ側の回路を切り離すためのジャンバがついているじゃないですか。組み立ててる時は、「なんでこんなジャンパついてんだ?いらねーじゃん。」くらいに思ってましたよ。秋月(の中のこれ作った人)さん、ありがとう!!で、このリセットのジャンパを外したら、無事にデバッグ成功。簡単なサンプルプログラム(LEDチカ)でAtmel Studioからブレーク、ステップ実行等の確認ができました。