Arduinoの設定 - デバッグ

提供:MochiuWiki : SUSE, EC, PCB
2021年2月6日 (土) 03:39時点におけるWiki (トーク | 投稿記録)による版 (ページの作成:「== 概要 == Atmel Studio 7を使用すると、Arduinoのスケッチをインポートしてデバッグできる。<br> これにより、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 Debug 1.jpg
図.



下図に、スケッチがArduinoにアップロードされた時、オシロスコープにより計測されたリセットパルスを示す。

Arduino Debug 2.jpg
図.



回路図のコンデンサC5は、debugWIREインターフェースに影響を与えており、また、ATmega 328Pのリセット制御にも依存している。
幸い、リセットラインからコンデンサC5を切り離すことができるジャンパーカットをPCBに残している。

剃刀等の鋭利な工具を使用して、"RESET EN"または"RESET ON"と書かれた2つの錫メッキパッドを接続するパターンをカットする。
(C5までのパターンを切らないように注意すること)
パッドのパターンをカットした後、Arduinoのデバッグが可能になる。

※注意
このパターンを切断している状態では、ブートローダが書き込まれている場合でも、Arduino IDEはスケッチをアップロードできない。

Arduino Debug 3.jpg
図.



下図のように、パッドに2ピンのヘッダを接続して、debugWIREインターフェースと標準のArduinoのブートロードを切り替えられるようにするとよい。
切り替えは、ジャンパの接続または取り外すことで行う。

Arduino Debug 4.jpg
図.



Arduinoのスケッチをデバッグするには、以下のようにする必要がある。

  1. リセットがコンデンサC5から切り離されていることを確認する。
    2ピンのヘッダを接続している場合は、ヘッダからジャンパーを取り外す。
  2. ICSPのシルクがあるコネクタにAtmel-ICEを接続する。
    接続方法は、Atmel-ICEコネクタのタブ(出っ張り)を、ArduinoのコンデンサC5に向けて接続する。
  3. PCとArduinoをUSBケーブルで接続して、ArduinoのDCジャックに電源を供給する。
Arduino Debug 5.jpg
図.