以前の投稿に書いたように、AVI Dragon は debugWire インタフェースの SPI ピンに干渉するため、SPI を使ったアプリケーションをデバッグするには、これらのピンを切断する必要があります。さらに、リセットピンも干渉していることに気づきました。今開発しているアプリケーションでは、Arduino からデバイスにリセット信号を送っているのですが、Dragon を繋いでいるとこの機能が無効になってしまいかなり開発がやりにくくなっていました。そこで、前回作った切断回路に改良を加え、リセットピンも干渉からはずせるようにし、さらに回路をブレッドボードから基板に移しかえ、お助けデバイス「ドラゴンのしっぽ」を作りました。いい感じで動作しています。
デバイスは、リセットピンも SPI ピンも切断した initial モードから立ち上がってボタンを押すたびに下記のモードを順繰りに遷移します。Dragon からの干渉をまったく受けたくないときには initial モードを使い、デバッグ実行時には debug モードにします。SPI を使う必要のあるときには programming モードにします。
Mode Name | Use this mode when you | Reset Pin | SPI Pins |
---|---|---|---|
Initial | Run application without any influence from Dragon | disconnected | disconnected |
Debug | Execute debug run from Dragon | connected | disconnected |
Programming | - Program the chip - Enter debug mode - Exit debug mode | connected | connected |
回路は以下のとおり。
1.5 inch x 1.2 inch サイズの基板に回路を載せました。ドラゴンの上にちょうどうまくおさまります。
裏側はちょっとぐちゃぐちゃです。