デバッガを利用した開発は、非常に便利かつ効率的です。Atmel社のマイコンとデバッガを接続する方式には、JTAGとdebugWIREがあります。前者は一般的によく利用されている方式で、後者は比較的ピン数の少ないデバイスで採用されています。
今回は、まずdebugWIREを利用したデバッグの設定手順を取り上げます。ターゲットデバイスの例としては、ATmega328Pなどが挙げられます。
デバイスのインストール
初めてパソコンにデバッガを接続するとデバイスのインストールが始まります。
(Device Settings)
デバイスのインストールが終了してから使用します。
デバッガのアップグレード
デバッガのファームウエアも更新されます。
“Tools”→”Device Programming”を選択した際に更新があるかもチェックされます。
“Tool”、”Device”、”Interface”があっているか確認して”Apply”ボタンをクリックします。この例では、”Interface”を”ISP”に設定しています。なおJTIAGICE3は、ISPによるライタとしても使用できます。
利用可能な更新がある場合は、”Firmware Upgrade”が表示されます。
アップグレードが終了したら、”Close”ボタンをクリックします。
(Firmware Upgrade, Close)
以上の作業で、デバッガが最新の状態にアップグレードされます。
“Project”メニューの”Properties”設定
“Project”→”(Project Name) Properties”で、debugWIREによるデバッグの設定を行います。
“Tool”タブを選択します。
“Select debugger/programmer”で使用するデバッガを選択します。この例では、JTAGICE3を選択しています。なお数字はシリアル番号で変わります。
“Interface”の設定は、debugWIREでデバッグを行う場合、”debugWIRE”に設定します。”ISP”、”debugWIRE”、”JTAG”の中から選択可能なので、注意して下さい。
(Project → * Properties, Select debugger/Programmer)
設定終了後、設定を保存しておきます。
(Save Selected Items)
以上で、”Project”の”Properties”の設定は終了です。
“Tools”の”Device Programming”での設定
次に”Tools”の”Device Programming”でdebugWIREの為の設定を行います。
“Tool”、”Device”、”Interface”があっているか確認します。こちらの”Interface”は、ISPで構いません。(ターゲットデバイス次第では、ISPしか選択できません。)
“Interface settings”を開きます。
書き込み時のクロックスピードが、ターゲットデバイスのクロック周波数の4分の1以下である事を確認します。
(Interface settings, ISP clock)
“Tool information”を選択します。
デバッガの情報を確認する事ができます。
“Device information”では、ターゲットデバイスの情報を確認できます。
“Read”ボタンをクリックするターゲットデバイスの情報を得る事ができます。
検出されたターゲットデバイスと仕様が表示されます。
(Device information, Detected Device)
“Oscillator Calibration”の設定も行えます。
必要がなければ、特に改めて設定する必要はありません。
“Memories”で、ライタと同様にファームウエアをFlashに書き込めます。
書き込みの方法は、ライタを使用した場合と全く同じです。
“Lock bits”では、ロックビットの設定が行えます。
通常開発の途中では、これらを設定変更する事はありません。すべて”NO_LOCK”で構いません。
“Production file”の設定メニューもあります。
この設定についても、特に設定を変える必要はありません。
debugWIREによるデバッグで必要となるのは、”Fuses”の設定です。
debugWIRE用にヒューズ設定をする必要があります。
この例では念の為、ヒューズの”Auto read”設定を解除してあります。まず、”Read”ボタンをクリックして実際のターゲットデバイスのヒューズ設定を確認します。
正常に読み込まれると各”Fulse Name”左のアイコンにチェックが入りグリーンになります。
debugWIREによるデバッグを開始するには、”DWEN”を有効にする必要があります。
“Program”ボタンをクリックして、ターゲットデバイスのヒューズ設定を変更します。”DWEN”は、なお”debugWIRE Enable”の意味です。
“Read”ボタンをクリックすれば、”DWEN”のヒューズが有効になっているか確認できます。
(Fuses, DWEN)
以上で、debugWIREによるデバッグの準備が完了します。
debugWIREによるデバッグの開始と終了
“Device Programming”で、ヒューズビットの設定が終了したら、debugWIREによるデバッグの準備は整っています。”Start Debugging”やショートカットキー”F5″でデバッグを開始します。
”Launch Failed”が表示される場合は、DWEN fuseをSPI経由で再度有効化します。”Yes”ボタンをクリックして先に進みます。
“Cycle Power”メッセージが表示されます。このメッセージが表示されたら、次の操作を行います。
(1)ターゲットデバイスの電源を切ります。
(2)ターゲットデバイスの電源を再投入します。
(3)”Cycle Power”メッセージの”OK”ボタンをクリックします。
これでデバッグモードに入り、デバッグを行う事ができます。デバッグを終了する場合は、”Debug”→”Disable debugWIRE and Close”を選択します。
(Debug → Disable debugWire and Close)
この手順で、debugWIREを終了すると”DWEN”ビットが無効に戻ります。再度デバッグを行いたい場合は、再び”DWEN”を有効化して同様の手順を行います。
まとめ
よく流通しているATMega328などでは、debugWIREによりデバッグを行う事になります。debugWIREでは、次の注意すべき点があります。
(1)debugWIREとISPは両立できない
“Debug”→”Disable debugWIRE and Close”で”DWEN”が無効になり、ISPが利用できる様になります。
(2)再デバッグの場合、ヒューズ設定からやり直す必要がある。
“Cycle Power”で説明した様に、電源オフ/オンも繰り返す事になります。
(3)ターゲットのRESET端子の回路が不適切だと、デバッグできない。
これはRESETピンをdebugWIRE用の端子として利用している為の制約です。この制約については、記事「Aruduino基板利用ノウハウ」で詳しく取り上げる予定です。
小ピンのデバイス向けのデバッグ方法なので仕方ありませんが、やはりJTAGデバッグと比べてしまうと不便である事は確かです。しかしターゲットデバイス次第では選択肢がありませんので、上記事項に注意して、debugWIREによるデバッグを行って下さい。
Sponsored Link