USB3.0の使い方
ZYNQ UltraScale+のUSBの概要
ZYNQ UltraScale+にはPS GTRというギガビットトランシーバが内蔵されていて、これを使うことでUSB3.0の通信を行うことができます。
最初はUSB2.0で接続する
とはいっても、USB3.0は最初の接続時はUSB2.0として動作してネゴーシエーションの末にUSB3.0でリンクアップするしくみなので、USB2.0でも接続できる回路にしておかなければなりません。
ただし、ZYNQ UltraScale+のI/OはUSB2.0をそのまま出すことができないので、USB PHYを外付けします。
おすすめのUSB PHYは、Microchip社のUSB3320です。
USB3320の端子にはUSB_DATA0~7、USB_STP、USB_NXT、USB_DIR、USB_CLKがあります。USB_CLKはUSB3320→ZYNQ方向の信号ですが、それ以外はZYNQ→USB3320または双方向信号です。これらの信号はMIOに接続します。
ZYNQのMIOはコネクタJ3の115~128に出るので、以下のように接続してください。
また、VCCOは1.8Vなので、USB3320のVIO電圧も1.8Vにしてください。USB3320のクロック周波数はREFSELで選択できるので、入手しやすい水晶発振器を選んでください。
USB3320のRESETB端子は、MIOをGPIOとして使ってリセットがかけられるようにしておいたほうがよいでしょう。FSBLの中でリセットするのが良いと思われます。
USB3.0の信号の出し方
USB3.0の高速信号はPSのGTRから出力されます。バンクの番号は505で、コネクタJ2の下の図の場所から出力されます。
Bank505にはTXとRXが4組ずつありますが、どこを使っても構いません。
TE0808の純正ベースボードTEBF0808-04AではTX1/RX1を使用していたので上の図では同じくTX1/RX1を使用するようにしています。なお、ZCU104ではTX2/RX2を使用しているようです。
まとめ
USB3.0といっても、最初はUSB2.0として起動します。ZYNQ UltraScale+はUSB2.0を直接出せないのでPHYを使います。おすすめのPHYはUSB3320です。
USB3320によってUSB2.0の信号を作り、PS GTRのどれか1本を使ってUSB3.0の信号を作ります。
ZYNQ UltraScale+はUSBからもブートできるらしいので、ぜひ試してみたいですね。