★★★ 2021.10.1 「社会人一年目」さん メッセージありがとうございます! 利益は殆ど無いです(笑)★★★

デイジーチェーン接続とは?JTAG回路の設計方法

回路設計



この記事でわかること

・JTAG回路の設計方法がわかる
・複数デバイスのJTAG配線について
・接続機器と基板を絶縁する方法

CPUやFPGA等のデバイスを搭載した基板に対して、
プログラム書込みや、デバック等の目的で、
デバイスにアクセスする手段としてJTAGが用いられます。

JTAGの名称は、規格を制定した団体名
「Joint Test Action Group」からきています。

JTAGの信号は、4つの基本信号と、
オプションのTRST信号から構成されます。

TCK(Test Clock):クロック
TDI(Test Data In):データ入力
TDO(Test Data Out):データ出力
TMS(Test Mode Select):状態制御
TRST (Test Reset) :リセット

しかし、コネクタのピン配置や電圧レベルは
規格で定義されていない為、
各デバイスメーカーが独自で定めています。

このため、JTAG回路の設計をする際は、
デバイスのマニュアル等を参照しますが、
詳しく記載されていない事が多いです。

本記事では、JTAG回路の設計方法と、
基板にデバイスを複数搭載する場合、
配線をどのようにすれば良いか解説します。

JTAG回路の設計方法

JTAG回路の基本回路は以下になります。

基板に搭載されるデバイスが1個で、
JTAGコネクタとのパターン長が短い場合
です。

接続する外部機器(デバッカ等)からの出力パワーだけでは
電圧レベルが不安定になる場合があるので、
各信号には4.7k~10kΩのプルアップ抵抗を接続します。

但し、TRST信号はデバイスによっては、
プルダウンする必要があるので注意して下さい。

(ルネサス、テキサスインスツルメンツ製マイコンなど)

理由ですが、デバック以外(通常動作特)は
TRSTをLレベルにしないといけない為、
プルダウンによりJTAG未接続時はLレベルに固定します。

通常動作で、ノイズによる誤動作を防ぐため、
プルダウンの抵抗値は小さい方が良いです。

しかし、抵抗値が小さいと、今度はデバック時に
デバッカの出力がHレベルを維持できなくなり、
僅かなノイズでも通信エラーが起きるので注意して下さい。

<ノイズに強いJTAG回路>
外部機器からの信号は配線長やノイズの影響等で
信号波形が歪み、通信エラーが起きやすくなります。

このため、パターン長が長い場合(15cm以上)や、
パワー回路等のノイズが大きくなる事が予想される場合は、
バッファICを経由させます。

バッファICをつけることで、JTAG信号の波形の歪みが低減し、
通信エラーが起きにくくなります。

私の考えですが、
マイコンの入出力を直接基板外に出すのはお勧めしません。

外来ノイズ等によるマイコンの誤動作や故障を避けるため、
JTAG信号に限らず、基板外への入出力信号については、
バッファICをつけるようにしています。

マイコンからの入出力回路の設計については、
下記で解説しています。

複数デバイスのJTAG接続方法

基板上に複数のデバイスを搭載する場合、
下図のように配線します。

<TDIとTDO>
・JTAGコネクタからのTDIは1番目のデバイスのみ接続
・1番目のデバイスのTDOを2番目のデバイスのTDIに接続
 以降、前段デバイスのTDOを後段のTDIに繋ぐ
・最終段デバイスからのTDOはJTAGコネクタから出力

このように複数のデバイスを数珠繋ぎに接続する方法を
デイジーチェーン(daisy chain ※1)と呼びます。

※1 :ヒナギクで作った花輪に似ていることからこのように呼ぶ。

<TCK、TMS、TRST>
これらは共通信号なので、デイジーチェーン接続せずに、
各デバイスにぞれぞれ接続します。

この3信号については、配線が長くなるため、
信号波形の劣化に注意する必要があります。

対策としては、図のように一筆書きになるように
パターンを配線します。

そして、JTAGコネクタとデバイス間にバッファICを入れます。

また、波形が歪む等の問題があった場合に備え、
以下の対策ができるようにパターンを設けておきます。

・最終段デバイスのTDOの近くにダンピング抵抗を設ける
(目安として22Ω~68Ω程度)

・最終段デバイスのTCKの近くに
 終端抵抗とコンデンサを設ける
(目安として68Ω~220Ω、22pF~100pFで波形を見ながら調整)

これらの部品は最初は実装せず、
通信が安定しない場合に信号波形を見ながら定数を決めます。



絶縁型JTAG回路の設計方法

生産現場でのソフト書き込みでは、
基板と接続する外部機器を絶縁したい場合があります。

このような場合、アイソレータを中継させることで、
基板回路とJTAG接続する回路を絶縁することができます。

ここではテキサスインスツルメンツ製
デジタル・アイソレータを使用して、
JTAG接続機器とマイコンを絶縁しています。

このアイソレータの電源電圧は
2.25~5.5Vまで対応できるので、
外部機器の電源電圧に合わせて使用できます。

この時、アイソレータの電源は外部機器からと、
基板の内部電源の両方から供給する必要があります。

JTAGコネクタの信号配置の注意点

コネクタのピン配置については、
基本的にはデバイスやデバッカ等の
マニュアルに記載の通りに行います。

ピン数は10、14、20ピンと様々で、
ピッチも標準の2.54mmだけでなく、
更にピッチの小さいデバッカもあります。

コネクタについては、搭載スペースを小さくしたいところですが、
あまり小さいピッチだと、ピンが細いため、
挿抜を繰り返した際にピンが曲がって
コネクタが入らなくなったりするので、
2.54㎜ピッチが良いです。

ピンの割り当てを独自に設定する場合は、
奇数ピンを信号線、偶数ピンをGNDにします。

こうすることで、フットケーブルでは、
信号とGND線が交互に配置され、
クロストークの影響を低減することができます。

また、GND線を多く設けることで、
デバッカと基板間のGNDを安定化でき、
ノイズに強くなります。

コネクタの極数を減らしたい場合や、
他の信号線を入れる都合上、
1個おきにGNDを割り当てるのが難しい場合は、

偶数ピン側に電源ピンVccや、リセット信号TRSTなどの
通信中に変化する頻度が少ないものを割り当てます。

基板側のコネクタは逆差し防止の為、
ボックスタイプが適切ですが、
ヘッダピンを使う際は誤挿入防止対策を取ります。

具体的には、未使用(NC)ピンを1個割り当て、
ケーブル側のコネクタのメスピンを埋めます。
そして、基板側のヘッダピンを抜きピンにします。

また、コネクタの方向は、デバッカのケーブル接続時に
他の部品と干渉しないようにし、フラットケーブルの場合、
ケーブルが引き出される方向も考慮
します。

<以下の記事で、基板の部品交換や修正で役立つ工具類を紹介しています>