DLC-008のTCK出力はなぜCPLD直接出力なのか?

2005/1/16(更新日 )

DLC-008(USB/JTAG)のTCK/TDI出力は内部制御用CPLD(VCIOは3.3V)の出力から100Ωを介して出力されています。相手側が2.5Vデバイスであっても、TCK出力には100Ω抵抗がありますし、通常ターゲット側にも抵抗があると期待されますので、2.5V系の回路に接続しても問題ありません。
以下に、その理由をご説明いたします。
 DLC-008の回路図から、下図を抜粋しました。
 ごらんのように、X_TCKという信号(JTAGコネクタに供給される信号)にはターゲット側電源で動作するU7B(TC7W14)からも供給できるように設計されました。
 実際動作するのですが、問題が発生しました。BitBlasterとの互換性のため、ターゲット側電源をモニターしているのですが、U7Bの入力がHのときU7Bの入力側寄生ダイオード(保護ダイオード)により、U7Bの電源ピンに電源が供給され、ターゲット側を接続していないときでも、ターゲット側の電源が入っていると判断されてしまうのです。
 BitBlrasterはターゲット側の電源でのみ動作するのでうすが、DLC-008ではUSB側より電源をとっています。
そこまで互換性を持たせなくても良かったのかもしれません。
 X_TCKをオープンドレインにすれば良いのではないかと考えましたが、TCKでは立ち上がりが重要であると考えられます。オープンドレインにすれば、プルアップ抵抗をかなり小さくしない限り立ち上がりは緩やかになってしまいます。
 U7は3個入りのシュミットトリガーインバータなので、TDI出力は当初よりオープンドレインと考えておりました。
 上記のようなことから、DLC-008のTCK出力はCPLDから直接出力されています。
TDIについては、TKCを直接にしたからには、TDIだけオープンドレインにしなくても良いとの判断です。
 以上、ひとつの初歩的な設計ミスの例としてごらんください。
ただ、最初からR15でU7Bを切りはなせるようにしてあったのでパターンカットをしなくてすみました。
メールでのご質問はこちらへどうぞ

HDLのホームページへ