AVR Dragon を使うと debugWire インタフェースを通して実機上でデバッグが可能です。debugWire は AVR ISP プログラミング用の 6ピンのコネクタを共用します。詳しくは下記のリンクに説明があります。
http://www.atmel.no/webdoc/avrdragon/avrdragon.section.zrr_osd_lc.html
ところが、AVR Dragon を使うと、開発対象のアプリケーションの SPI 機能がうまく働きません。
これは以下のリンクにあるように、既知の問題のようです
http://asf.atmel.com/bugzilla/show_bug.cgi?id=3284
問題は、AVR Dragon は SPI ピン (SCLK, MOSI, MISO) を強制的に H レベルにしてしまうことにあるようです。このため、アプリケーションからの SPI 信号をターゲットのプロセッサが認識しません。
SPI の3ピンをデバッグ中に外してしまえばこの問題は回避できます。こうしてしまってかまわないのは、デバッグ中に必要なピンは Reset, VCC と GND ピンのみで SPI ピンは不要だからです。ただし、以下の場合に SPI ピンが必要になるので、デバッグ中には接続・切断を頻繁に行う必要があり、線を抜くなどの物理的手段ではかなり面倒です。
- デバッグモードへの移行
- デバッグモードからの復帰
- デバイスのプログラミング
そこで、部品箱をあさって以下のような回路をざっと組んで使ってみたところ大変具合が良いです。6ピンコネクタの片側を Dragon につなぎ、反対側をターゲットに繋ぎます。スイッチで SPI ピンの接続・切断を切り替えます。電源はターゲットボードからもらうので別途電源は不要です。