Atmel Studio入門:debugWIREのデバッグ設定

デバッガを利用した開発は、非常に便利かつ効率的です。Atmel社のマイコンとデバッガを接続する方式には、JTAGとdebugWIREがあります。前者は一般的によく利用されている方式で、後者は比較的ピン数の少ないデバイスで採用されています。

今回は、まずdebugWIREを利用したデバッグの設定手順を取り上げます。ターゲットデバイスの例としては、ATmega328Pなどが挙げられます。

デバイスのインストール

初めてパソコンにデバッガを接続するとデバイスのインストールが始まります。

(Device Settings)
ast_jtag3_1
デバイスのインストールが終了してから使用します。

デバッガのアップグレード

デバッガのファームウエアも更新されます。

“Tools”→”Device Programming”を選択した際に更新があるかもチェックされます。

(Tools → Device Programming)
ast_write_mkii_5

“Tool”、”Device”、”Interface”があっているか確認して”Apply”ボタンをクリックします。この例では、”Interface”を”ISP”に設定しています。なおJTIAGICE3は、ISPによるライタとしても使用できます。

(Device Programming, Apply)
ast_jtag3_5

利用可能な更新がある場合は、”Firmware Upgrade”が表示されます。

(Firmware Upgrade)
ast_jtag3_6

アップグレードが終了したら、”Close”ボタンをクリックします。

(Firmware Upgrade, Close)
ast_jtag3_7
以上の作業で、デバッガが最新の状態にアップグレードされます。

“Project”メニューの”Properties”設定

“Project”→”(Project Name) Properties”で、debugWIREによるデバッグの設定を行います。

(Project → * Properties)
ast_jtag3_0

“Tool”タブを選択します。

(Tool)
ast_jtag3_2

“Select debugger/programmer”で使用するデバッガを選択します。この例では、JTAGICE3を選択しています。なお数字はシリアル番号で変わります。

(Select debugger/programmer)
ast_jtag3_3

“Interface”の設定は、debugWIREでデバッグを行う場合、”debugWIRE”に設定します。”ISP”、”debugWIRE”、”JTAG”の中から選択可能なので、注意して下さい。

(Project → * Properties, Select debugger/Programmer)
ast_jtag3_8

設定終了後、設定を保存しておきます。

(Save Selected Items)
ast_jtag3_9
以上で、”Project”の”Properties”の設定は終了です。

“Tools”の”Device Programming”での設定

次に”Tools”の”Device Programming”でdebugWIREの為の設定を行います。

(Tools → Device Programming)
ast_jtag3_10

“Tool”、”Device”、”Interface”があっているか確認します。こちらの”Interface”は、ISPで構いません。(ターゲットデバイス次第では、ISPしか選択できません。)

(JTAG ICE, Apply)
ast_jtag3_11

“Interface settings”を開きます。

(Interface settings)
ast_jtag3_interface_1

書き込み時のクロックスピードが、ターゲットデバイスのクロック周波数の4分の1以下である事を確認します。

(Interface settings, ISP clock)
ast_jtag3_interface_2

“Tool information”を選択します。

(Tool information)
ast_jtag3_tool_1

デバッガの情報を確認する事ができます。

(JTAGICE3 Information)
ast_jtag3_tool_2

“Device information”では、ターゲットデバイスの情報を確認できます。

(Device information)
ast_jtag3_device_1

“Read”ボタンをクリックするターゲットデバイスの情報を得る事ができます。

(Device information, Read)
ast_jtag3_device_2

検出されたターゲットデバイスと仕様が表示されます。

(Device information, Detected Device)
ast_jtag3_device_3

“Oscillator Calibration”の設定も行えます。

(Oscillator Calibration)
ast_jtag3_osc_1

必要がなければ、特に改めて設定する必要はありません。

(Oscillator Calibration Byte)
ast_jtag3_osc_2

“Memories”で、ライタと同様にファームウエアをFlashに書き込めます。

(Memories)
ast_jtag3_mem_1

書き込みの方法は、ライタを使用した場合と全く同じです。

(Memories, Flash)
ast_jtag3_mem_2

“Lock bits”では、ロックビットの設定が行えます。

(Lock bits)
ast_jtag3_lock_1

通常開発の途中では、これらを設定変更する事はありません。すべて”NO_LOCK”で構いません。

(Lock bit Status)
ast_jtag3_lock_2

“Production file”の設定メニューもあります。

(Production file)
ast_jtag3_pro_file_1

この設定についても、特に設定を変える必要はありません。

(Production File Settings)
ast_jtag3_pro_file_2

debugWIREによるデバッグで必要となるのは、”Fuses”の設定です。

(Fuses)
ast_jtag3_fuse_1

debugWIRE用にヒューズ設定をする必要があります。

(Fuse Settings)
ast_jtag3_fuse_2

この例では念の為、ヒューズの”Auto read”設定を解除してあります。まず、”Read”ボタンをクリックして実際のターゲットデバイスのヒューズ設定を確認します。

(Fuse Settings, Auto read)
ast_jtag3_fuse_3

正常に読み込まれると各”Fulse Name”左のアイコンにチェックが入りグリーンになります。

(Fuse Status)
ast_jtag3_fuse_4

debugWIREによるデバッグを開始するには、”DWEN”を有効にする必要があります。

(Fuse Status, DWEN)
ast_jtag3_fuse_5

“Program”ボタンをクリックして、ターゲットデバイスのヒューズ設定を変更します。”DWEN”は、なお”debugWIRE Enable”の意味です。

(Fuses, Program)
ast_jtag3_fuse_6

“Read”ボタンをクリックすれば、”DWEN”のヒューズが有効になっているか確認できます。

(Fuses, DWEN)
ast_jtag3_fuse_7
以上で、debugWIREによるデバッグの準備が完了します。

debugWIREによるデバッグの開始と終了

“Device Programming”で、ヒューズビットの設定が終了したら、debugWIREによるデバッグの準備は整っています。”Start Debugging”やショートカットキー”F5″でデバッグを開始します。

(Debug Start)
ast_jtag3_debug_1

”Launch Failed”が表示される場合は、DWEN fuseをSPI経由で再度有効化します。”Yes”ボタンをクリックして先に進みます。

(Launch Failed)
ast_jtag3_debug_2

“Cycle Power”メッセージが表示されます。このメッセージが表示されたら、次の操作を行います。
(1)ターゲットデバイスの電源を切ります。
(2)ターゲットデバイスの電源を再投入します。
(3)”Cycle Power”メッセージの”OK”ボタンをクリックします。

(Cycle Power)
ast_jtag3_debug_3

これでデバッグモードに入り、デバッグを行う事ができます。デバッグを終了する場合は、”Debug”→”Disable debugWIRE and Close”を選択します。

(Debug → Disable debugWire and Close)
ast_jtag3_debug_4
この手順で、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によるデバッグを行って下さい。

→その他のAtmelマイコン関連情報

Sponsored Link