2017年10月18日、ポジティブワンは、ARM-Cortex MCUのデイジーチェーン接続を機能強化したCycloneとMultilinkデバッグプローブの販売を強化いたします。
ポジティブワン株式会社(本社:東京都渋谷区)は、ARM-Cortex MCUのデイジーチェーン接続を機能強化したCycloneとMultilinkデバッグプローブの販売を強化いたします。
JTAG仕様では、複数のMCUのデバッグとプログラミングに必要なヘッダー数を削減するため、MCUのデイジーチェーン接続が導入されています。JTAGデイジーチェーン接続により、複数のMCU(およびFPGAなどの他のJTAG互換ハードウェア)が単一のデバッグヘッダーを共有できます。PEマイクロは現在、CycloneプログラマとMultilinkデバッグプローブを介してARM-Cortex MCUのデイジーチェーン接続をサポートしています。EclipseプラグインGDB Server、Cycloneの自動化および制御パッケージを含むほとんどのPEmicroソフトウェアでも同じことが言えます。
接続: JTAGには、TDI、TMS、TCK、TDOの 4つのピンが必要です。TDIはJTAGデータの入力ピンです。TMSは制御信号です。TCKはクロック信号です。TDOはデータ出力です。 デイジーチェーン設定では、TMSとTCKはチェーン内のすべてのデバイスに共通です。つまり、ボードを配線するときには、これらの信号をチェーン内のすべてのデバイスにルーティングする必要があります。TDOとTDIは少し面白いです。デバッガはTDIピンをチェーン内の最初のデバイスのTDIピンに接続する必要があります。最初のデバイスはTDOを次のデバイスのTDIピンに渡す必要があります。この連鎖には実際的な制限はありません。最後にチェーン内の最後のデバイスはTDOピンをデバッガのTDOピンに接続する必要があります。
デバッグ: JTAGはJTAGステートマシンを使用して、各デバイスに存在するIR(命令レジスタ)とDR(データレジスタ)にデータをシフトします。TMSの現在の状態と値が次の状態を決定します。ステートマシンを使用して、デバッガは命令とデータをシフトします。デイジーチェインのキー命令は、BYPASS命令です。すべての "1"を特定のデバイスのIRレジスタにシフトすることにより、そのデバイスをバイパスすることができます。デイジーチェーニングでは、ターゲットデバイス以外のすべてのデバイスがバイパスされます。これは、デバッガが一度にチェーン内の1つのデバイスと効果的に通信していることを意味します。
PEMicroの実装: PEmicroハードウェアインタフェースがチェーン内の特定のデバイスをデバッグまたはプログラミングするためには、Tap番号とPre IRビットの2つのパラメータが必要です。すべてのPEmicroソフトウェアに含まれており、参考に役立ちます。タップ番号は、チェーン内のデバイスのインデックスです。ご覧のように、TDIに接続されている最初のデバイスはインデックス0、インデックス1などです。デバッガのTDOに接続された最後のデバイスは、デバイスのインデックス番号から1を引いたものです。Pre IR bitsパラメータは、ターゲットデバイスとデバッガのTDOピンの間のデバイスのIRレジスタの長さの合計です。このパラメータは「Post」IRビットと呼ばれるべきだと考えるかもしれませんが、「Pre」はこれらのビットを最初にシフトする必要があるため意味があります。ユーザがこれら2つのパラメータを指定すると、PEmicroは残りを推測してターゲットに接続できます。
トラブルシューティング:パラメータを指定する際の最もよくある間違いは、Pre IRビットを設定するときに発生します。デバイスの後のビット数をデバッガのTDOピンまでカウントしていることを確認してください。また、特定のデバイスのIRレジスタの幅を決定することは、必ずしも簡単な作業ではありません。ARMでは通常この数が4ですが、実際には複数のJTAGデバイスが内部的に複数のデバイスに格納されているため、デバイスが大きくなります。デバイスのデータシートを参照することは、通常、開始するのに最適な場所です。
クイックノート:把握するための重要な違いの1つは、JTAGデイジーチェーンはギャングプログラミングインターフェースではないということです。デバッガ/プログラマはチェーン内で一度に1つのデバイスとしか通信できません。
JTAG Daisy Chainingは、ハードウェアのレイアウトを簡素化し、生産性を向上させる重要な機能です。デイジーチェーン設定でデバッグするのが最も難しいのは、正しい初期パラメータを選択することです。PEmicroのテクニカルサポートは、これらのパラメータを選択するのに役立ちます。これが完了すると、ユーザの介入なしに適切に動作が可能です。