コスモリサーチの凄腕エンジニアたちが日々、難題と格闘した記録
Copyright Cosmo Research Corp.

USB-UART(+JTAG)ICで起動直後のログが見えない

Zynqと接続した、JTAG-SMT3-NC/DIGILENTのUART出力が起動ログの途中からしか出てこない問題の解析を行った。

症状

  • fsblのログは表示されず、u-bootの途中からになる。
  • 他プロジェクトでも同様の症状
  • 表示されないのは電源投入した際で、ハードウェアリセットの場合は、fsblのログも表示される。
  • USB-UARTのデバイスCY7C65211-24LTXI/Cypress ではfsblの最初から表示される。

原因

CY7C65211-24LTXIはVBUSで駆動するため、装置の電源投入前からPCがUARTをUSBデバイスとして認識できる。 JTAG-SMT3-NCはVBUS_DETだけでVBUS駆動ではないので、装置の電源投入後にPCがUSBデバイスの接続が始まる。 USBデバイスの認識は数秒かかるので、装置起動後の最初のほう(fsbl~)はUART転送可能になる前に終わってしまい、 ログとして残らない。 JATGの接続も起動直後は同様であるため、起動時の問題デバッグなどができない。

装置へのコマンド転送などが目的であれば実用上問題になることはないが、 デバッグ用途に使用する場合、UART/JTAGから起動時のログを見ることがあるので、JTAG-SMT3-NCのみでJTAG、UARTを接続するのはよろしくない。

対策

JTAG-SMT3-NCのVDD(15pin)をVBUSから取ってあげればよい。 DIGILENTのフォーラムに可能であるとの回答があった。
https://forum.digilentinc.com/topic/17862-jtag-smt3-nc/#comment-45773

USBコネクタ一つでUART/JTAGが使えれば、PCとのIF、部品点数を減らせてうれしい。 ただしVBUS駆動の実験などはまだ実施していない。