この記事でわかること
・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個割り当て、
ケーブル側のコネクタのメスピンを埋めます。
そして、基板側のヘッダピンを抜きピンにします。
また、コネクタの方向は、デバッカのケーブル接続時に
他の部品と干渉しないようにし、フラットケーブルの場合、
ケーブルが引き出される方向も考慮します。
<以下の記事で、基板の部品交換や修正で役立つ工具類を紹介しています>