Jump to content
  • 0

[SOLVED] Zybo USB OTG - Reset via MIO 46


Michele

Question

Hi,

I'm trying to set up the USB OTG on Zybo board.

I've done the following:

1. Checked the "Peripherals I/O pin" field for the USB0 and MIO as well for reset the PHY chip into Re-customize IP ( double click on zynq ).It matched with the schematics.

2. I have checked the devicetree auto-generated by SDK ( 2017.2 ).I have attached it. Seems to be good.

3. I have plugged my usb key on J10 ( the bigger USB connector ) as I want zybo to be a host controller.

4. The jumper JP1 is shorted.

5. The MIO 46 have to provide the reset signal to the PHY chip if I understand correctly

6. The connection between zynq ps and PHY is ULPI ( 12 signals from MIO 28 to 39 )

7. When I boot the whole thing the device driver is correctly registered ( dmesg | grep usb ) but my usb key is not recognized.

8 If i stop the u-boot autoboot and issue the followings:

- usb info ---> says that the usb is stopped

- usb reset --> it rescan and detect correctly the host conroller and the usb key

- boot --> boot the whole thing but the usb key is not recognized.

I have searched a lot and, if I understand well, the following line on devicetree:

usb-reset = <&gpio0 46 0>;

declare that the gpio 46 have to became the reset signal for PHY chip ( active low , I have checked on Vivado into re-customize ip menu ) and in fact the "usb reset" on u-boot shell works but I don't know why I cannot recognize my usb key.

I have also read that the fsbl have to issue the reset signal.

I have done a search on fsbl source code and I have not found any USB reset function or something similar.

The only thing that I have found is into ps7_init.c but honestly I can't understand a lot of that code... :)

Anyone have encountered the same problem?? I have read that many peaple had problems with zybo USB OTG.

I have also tried to do this into 

u32 FsblHookBeforeHandoff(void)

but it doesn't boot ( maybe my mistake I have to retry ).

 

Thanks in advance.

Michele

 

 

pcw.dtsi

system-top.dts

zynq-7000.dtsi

Link to comment
Share on other sites

2 answers to this question

Recommended Posts

Hi,

finally I have solved in this way:

- I have modified the system-top-dts adding:

    usb_phy0: phy0 {
        #phy-cells = <0>;
        compatible = "usb-nop-xceiv";
        reset-gpios = <&gpio0 46 1>;
    };

- I have also modified the pcw.dtsi in this way:

&usb0 {
    status = "okay";
    dr_mode = "host";
    usb-phy = <&usb_phy0>;

Attached the result.

My usb key now is correctly detected and also the two partitions on it has been corectly detected into /dev.

Thx again I hope this can be useful for others that have same problem.

 

Michele

Terminal.jpg

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...