Arduinoの設定 - デバッグ
概要
Atmel Studio 7を使用すると、Arduinoのスケッチをインポートしてデバッグできる。
これにより、Arduinoはプロの設計エンジニアツールとなる。
前提条件
Arduinoをデバッグするには、以下のような注意点がある。
- Arduino ICSP接続ができるデバッガが必要となる。
(例: Atmel-ICE等) - Atmel Studio 7をインストールする必要がある。
- ArduinoでdebugWireを動作させるため、Arduinoの回路を変更する必要がある。
Atmel Studio 7で設計を行う場合、Arduinoのブートローダが消去される。
そのため、他の開発環境でArduinoを使用する場合は、ブートローダを再び書き込む必要がある。
Arduinoの回路の変更
Arduino Unoには、ATmega 328Pとブートローダ(optiboot_atmega328.hex)が搭載されている。
ブートローダは、リセット時に実行されて、シリアルインターフェイスを介して送信された値により、ATmega 328のメモリをプログラムする。
これは、新しいスケッチをArduinoにアップロードできるようにするものである。
DTR信号の状態が一時的に変化する時、ブートローダが開始される。
下図に示す回路において、CH1がDTRであり、CH2がRESETである。
下図に、スケッチがArduinoにアップロードされた時、オシロスコープにより計測されたリセットパルスを示す。
回路図のコンデンサC5は、debugWIREインターフェースに影響を与えており、また、ATmega 328Pのリセット制御にも依存している。
幸い、リセットラインからコンデンサC5を切り離すことができるジャンパーカットをPCBに残している。
剃刀等の鋭利な工具を使用して、"RESET EN"または"RESET ON"と書かれた2つの錫メッキパッドを接続するパターンをカットする。
(C5までのパターンを切らないように注意すること)
パッドのパターンをカットした後、Arduinoのデバッグが可能になる。
※注意
このパターンを切断している状態では、ブートローダが書き込まれている場合でも、Arduino IDEはスケッチをアップロードできない。
下図のように、パッドに2ピンのヘッダを接続して、debugWIREインターフェースと標準のArduinoのブートロードを切り替えられるようにするとよい。
切り替えは、ジャンパの接続または取り外すことで行う。
Arduinoのスケッチをデバッグするには、以下のようにする必要がある。
- リセットがコンデンサC5から切り離されていることを確認する。
2ピンのヘッダを接続している場合は、ヘッダからジャンパーを取り外す。 - ICSPのシルクがあるコネクタにAtmel-ICEを接続する。
接続方法は、Atmel-ICEコネクタのタブ(出っ張り)を、ArduinoのコンデンサC5に向けて接続する。 - PCとArduinoをUSBケーブルで接続して、ArduinoのDCジャックに電源を供給する。