AVR Studio と AVR Dragon の組み合わせで debugWIRE を使ってデバッグをする方法について書きます。
debugWIRE は 6ピンのISPコネクタで接続するので、結線自体はふつうにISP書き込みするのと同じです。
ただ、debugWIRE を使うには、事前に AVR のフューズビット DWEN を 1 にしておく必要があります。フューズ操作は、デバイスによっては ISP接続ではできないものもあり、 AVR Dragon でそのようなデバイスのフューズを操作するには、ISPコネクタでの接続ではなく HVPP ソケットを使わなければなりません。
ですが、買ったままの AVR Dragon は HVPPソケットはスルーホールパターンのみでソケットは実装されていないので、HVPP を使いたいときは、事前に別途 ZIFソケット等をハンダ付けしておく必要があります。
これらのことは特に、新しい環境だったり初物のマイコンだったりすると割とハマリやすいので、以下に手順を残します。
まずは AVRマイコンの DWEN ビットを ON します。
AVR Studio を起動し AVR Dragon と PC をUSBケーブルでつなぐ。
AVR Dragon の HVPP ソケットに AVRマイコンを差し込む。
AVR Studio > Tools > Device Programming
Interface = HVPP > Apply
左ペインの Fuses を選択し、 DWEN をチェック。 Program を押す。
次に HVPPソケットから AVRマイコンを外してターゲット基板に実装し、ISPコネクタと接続します。
debugWIRE でデバッグするのに最低限必要な結線を下図に示します。

ここで、ターゲット基板に専用の電源回路がある場合(ふつうはこれ)は、ISPコネクタの 2番ピン(VTG)は接続しません。
ターゲット基板に電源回路がない場合は、しかたないので接続します。ただし、その場合は AVR Dragon から+5Vを供給することになるので、ターゲット回路の電源系は+5Vとなります。もし 3.3V系のICなどが接続されている場合は壊れる可能性があるので注意が必要です。
結線ができたら、あとはふつうにデバッグを始められます。
ターゲット基板の電源を入れます。
Alt
+ F7
を押して プロジェクトのプロパティを開き、左ペイン > Tool > Selected debugger/programmer = AVR Dragon, Interface = debugWIRE

ソースにブレークポイントを仕掛けて、F5
(Continue)します。
実行中は AVR Dragon の赤LEDは点灯せず、緑が点灯/点滅しています。もし、赤が点灯している場合は何かがおかしいです。
デバッグまでの手順は以上です。
余談その1
上の結線図にもありますが、ISPコネクタの2番(VTG)はターゲット基板に接続する必要はありません。このピンは AVR Dragon から 5V が出力されており、これをターゲット基板の電源として使うこともできますが、単純なブレッドボード上での評価用と割り切ったほうがいいと思います。特にターゲット回路の電源が5Vより低い場合(3.3V系など)はターゲット回路を壊す可能性があるため、このピンはオープンのままのほうが無難です。
余談その2
ブレークポイントを仕掛けても止まらないとか、ローカル変数がウォッチできない場合は、コンパイル時の最適化が効いていることが原因かもしれません。その場合、次のようにして最適化を無効にします。
Alt
+ F7
を押して プロジェクトのプロパティを開き、左ペイン > Toolchain > AVR/GNU C Compiler > Optimization > Optimization Level = None(-O0)

余談その3
AVR Dragon のマニュアルによると、大きい方のLED が黄色に光っているときは、AVR Dragon のファームウェアがコンフリクト(?)しているらしいので、ファームウェアをアップデートする必要があります。
余談その4
ISPコネクタでの接続した状態で AVR Studio > Tools > Device Programming > Interface = ISP
とした時は Device Signature
, Fuses
, Lock Bits
はどれも読めず、下記のようなダイアログが出ます。
Unable to enter programming mode.
Please verify device selection, interface settings, target power and connections to the target device.
しかし、この動作は正常です。最初に書いたとおり、AVR Dragon でフューズビット等をR/Wするには、ISPコネクタではなく HVPPでの接続でしかできません。つまり AVR Dragon でこの手の操作を行うには、AVR Studio > Tools > Device Programming > Interface = HVPP
として、HVPPソケットにAVRマイコンを挿しこんで行います。ダイアログのメッセージを読むと、一見、結線や電源を見なおせばISP接続でも Device Signature
等が読み取れそうに思えますが、この場合はそうではないです。
以下環境です。
- Mac mini 2011 (OS X 10.8.3 / Mountain Lion)
- Parallels Desktop 8
- Windows XP Home SP 3 / Windows 7 Home x64
- AVR Studio (Atmel Studio) 6.1 / 5.1
- AVR Dragon