在Xilinx的ZCU102和ZCU106單板設計中,使用了管腳PS_MODE1作為外部USB Phy的復位信號。在MPSoC的文檔ug1085和ug1087中,關于PS_MODE1的信息比較少。下面是更詳細的描述。
1. UG1085文檔
按UG1085,PS_MODE1本來作為MPSoC的啟動模式管腳。
![poYBAGGYHxGAWWZHAAID1i6OFRY298.png](https://file.elecfans.com/web2/M00/1F/62/poYBAGGYHxGAWWZHAAID1i6OFRY298.png)
UG1085也提到,PS_MODE1/PS_MODE2也可以作為外部USB Phy的復位信號。
![poYBAGGYHxKAPCCGAAIaDcrYos0459.png](https://file.elecfans.com/web2/M00/1F/62/poYBAGGYHxKAPCCGAAIaDcrYos0459.png)
PG201也提到了外部USB Phy的復位信號的相關設置。
![pYYBAGGYHxOAJKe7AABrNNyo7xE922.png](https://file.elecfans.com/web2/M00/1F/6A/pYYBAGGYHxOAJKe7AABrNNyo7xE922.png)
2. Vivado工具
在Vivado里,可以指定外部USB Phy的復位信號的來源和極性。
![poYBAGGYHxWAZ2JbAAB8Y4jjj58410.png](https://file.elecfans.com/web2/M00/1F/62/poYBAGGYHxWAZ2JbAAB8Y4jjj58410.png)
3. USB Phy的復位信號
USB Phy是否需要復位信號,由外部的Phy決定。一般來說,單板復位后,建議把外部USB Phy復位一次,保證USB Phy處于干凈的狀態。
MPSoC既可以使用MIO管腳、也可以使用PS_MODE(BOOT_PIN)管腳來作為USB Phy的復位信號。
3.1. 使用MIO管腳作為USB Phy復位信號
MPSoC有兩個USB控制器。如果都使用,外部有兩個USB Phy。使用MIO管腳作為USB Phy復位信號時,可以兩個USB Phy共用一個MIO(Shared MIO pin);也可以每個USB Phy使用一個MIO(Separate MIO pin)。
在Vivado里,配置對應的MIO作為對應的USB Phy復位信號。Vivado導出HDF/XSA文件時,會導出這些信息。
同時,在device tree里,添加下列字段。
xlnx,phy-reset-gpio = < &gpio GPIO_NUMBER GPIO_ACTIVE_HIGH/ GPIO_ACTIVE_LOW>;
USB驅動程序里,會查找參數“xlnx,phy-reset-gpio”。如果找到,會調用Linux的GPIO框架來復位外部USB Phy。
3.2. 使用PS_MODE管腳作為USB Phy復位信號
如果使用PS_MODE管腳(BOOT_PIN),則可以節約MIO管腳;在device tree里,也不用添加參數。
FSBL里,會使用PS_MODE的對應寄存器,復位外部USB Phy。文件psu_init.c里,可能有下列代碼。
/*##################################################################### */ /* * BOOT PIN LOW */ /* * Register : BOOT_PIN_CTRL @ 0XFF5E0250 * Value driven onto the mode pins, when out_en = 1 * PSU_CRL_APB_BOOT_PIN_CTRL_OUT_VAL 0X0 * When 0, the pins will be inputs from the board to the PS. When 1, the PS * will drive these pins * PSU_CRL_APB_BOOT_PIN_CTRL_OUT_EN 0X2 * Used to control the mode pins after boot. * (OFFSET, MASK, VALUE) (0XFF5E0250, 0x00000F0FU ,0x00000002U) */ PSU_Mask_Write(CRL_APB_BOOT_PIN_CTRL_OFFSET, 0x00000F0FU, 0x00000002U); /*##################################################################### */ /* * ADD 5US DELAY */ mask_delay(5); /*##################################################################### */ /* * BOOT PIN HIGH */ /* * Register : BOOT_PIN_CTRL @ 0XFF5E0250 * Value driven onto the mode pins, when out_en = 1 * PSU_CRL_APB_BOOT_PIN_CTRL_OUT_VAL 0X2 * When 0, the pins will be inputs from the board to the PS. When 1, the PS * will drive these pins * PSU_CRL_APB_BOOT_PIN_CTRL_OUT_EN 0X2 * Used to control the mode pins after boot. * (OFFSET, MASK, VALUE) (0XFF5E0250, 0x00000F0FU ,0x00000202U) */ PSU_Mask_Write(CRL_APB_BOOT_PIN_CTRL_OFFSET, 0x00000F0FU, 0x00000202U); /*##################################################################### */
4. 單板定制
雖然ZCU102和ZCU106單板都使用了管腳PS_MODE1作為外部USB Phy的復位信號。客戶的單板,可以自由選擇PS_MODE和MIO作為外部USB Phy的復位信號。
5. 輸出模式
PS_MODE1是totem-pole驅動,不是open-collector驅動。
6. 參考文檔
SR #10480757 ZynqUS+ USB PHY reset feature
審核編輯:湯梓紅
-
Xilinx
+關注
關注
71文章
2171瀏覽量
122129 -
MPSoC
+關注
關注
0文章
199瀏覽量
24321 -
復位信號
+關注
關注
0文章
54瀏覽量
6366
發布評論請先 登錄
相關推薦
復位信號是什么意思?復位信號的作用?詳解Xilinx FPGA復位信號那些事
![<b class='flag-5'>復位</b><b class='flag-5'>信號</b>是什么意思?<b class='flag-5'>復位</b><b class='flag-5'>信號</b>的作用?詳解Xilinx FPGA<b class='flag-5'>復位</b><b class='flag-5'>信號</b>那些事](https://file1.elecfans.com/web2/M00/8D/E9/wKgZomTBzbqAXwRmAAAZtQ35WAA311.png)
Zynq UltraScale + MPSoC USB 3.0 CDC器件類設計
如何調試Zynq UltraScale+ MPSoC VCU DDR控制器
Gowin USB HSIC PHY IP用戶使用指南
什么是usb phy?
基于ZU+系列MPSoC芯片的USB3.0/2.0接口硬件設計
![基于ZU+系列<b class='flag-5'>MPSoC</b>芯片的<b class='flag-5'>USB</b>3.0/2.0接口硬件設計](https://file.elecfans.com/web1/M00/8A/74/pIYBAFyMUGiADJ0yAACIebgvdFA614.jpg)
ZCU10中MPSoC對DDR復位信號設計
![ZCU10<b class='flag-5'>中</b><b class='flag-5'>MPSoC</b>對DDR<b class='flag-5'>復位</b><b class='flag-5'>信號</b>設計](https://file.elecfans.com/web1/M00/C7/D1/o4YBAF9t6CaATKl2AAJuaLwcd_I828.png)
評論