本文主要介紹Zynq UltraScale + MPSoC系列芯片的USB3.0/2.0接口硬件設計。
ZU+系列MPSoC要實現USB3.0/2.0的全部功能,需要同時使用MIO和GTR。因為GTR接口中的USB接口只支持USB3.0,對USB2.0的支持需要通過MIO接口外接USB PHY實現。
ZU+系列MPSoC包括兩個USB接口,根據實際需要可以進行如下表所示的配置:


當USB接口配置成3.0模式時,USB2.0也必須使能(在SDK的PCW配置界面),因為外部VBUS有效的反饋信號只能從USB PHY的ULPI接口得到。在非OTG模式下,VBUS信號也可以通過PL側信號得到,但只能通過命令的方式獲得。反之,USB2.0則可以單獨使用。
MIO側的USB2.0接口只支持ULPI接口,關于ULPI的更多信息可參考之前的文章《USB系列之“外部PHY接口”》,PHY芯片可以選擇和官方開發板一樣的USB3320(也可以選擇其他支持ULPI接口,且接口電壓為1.8V的PHY芯片)。

USB3320和ZU+的連接關系如下:

USB3320的外部時鐘輸入可以配置,通過REFSEL[2..0]上下拉實現。時鐘輸出固定為60MHz,通過CLKOUT引腳輸出,給到Link端。USB3320支持同步和異步兩種傳輸模式,當采用同步傳輸時,使用SDR模式,所有的數據都是在CLK的上升沿同步傳輸;當采用異步模式時,CLK關閉。數據總線的方向通過DIR控制,如果兩端都不驅動數據總線時,DIR的改變將產生“turn-around” cycle。
USB3320的外部時鐘配置選擇如下:

USB3320的電源去耦電容、偏置電阻要求如下:


USB3320的連接示意圖如下:

其中,ID引腳可以根據實際應用需求固定死(為高時ZU+作為DEVICE,為低時ZU+作為HOST)。
最后,針對PCB設計,為了阻抗匹配,在設計過程中注意以下幾點:
PCB and package delays should be kept to 1.30 ns or below.
PCB and package delay skews for DATA[7:0]/DIR/NXT/STP and CLK should be within ±100 ps.
For optimum signal integrity, add a 30Ω series resistor to the DATA and STP lines near the Zynq UltraScale+ MPSoC.(對于NXT、DIR和CLK,對于Link端是輸入,不能在末端串聯電阻匹配)
物聯網開發入門直播課 - ESP8266網絡編程上 - 創客學院直播室?www.makeru.com.cn
