UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Observer swdave
Observer
51 Views
Registered: ‎09-18-2018

Can't get ZCU102 USB 3.0 port working in device mode with bare-metal

I am struggling to get the USB 3.0 port working on the ZCU102.  Everything seems to be in place in terms of the jumpers, the design in Vivado and the software.  However, I never see any USB messages on USB sniffer (Beagle USB 480).  With the board connected to my PC (with or without the sniffer), I don’t even see the D+ or D- signals being pulled high on a scope.  The VBUS pin shows +5V as expected.

At this point, everything is based on a bare-metal “Hello, World” application running on the A53 and the hardware design, both straight out of UG1209 Embedded Design Tutorial.    

Here is the I/O Configuration:

USB_IO_Config.png

I also added the USB0 3.0 port to the Isolation Configuration as shown:

USB_Isolation_Config.png

In the SDK, I then added the non-DFU files from the usbpsu example folder to the project as described at the ZynqMp USB Standalone Driver page here:

https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842468/ZynqMp+USB+Stadalone+Driver


From inside the main() function in helloworld.c, I called the main function in xusb_intr_example.c.

int main()
{
    init_platform();
    print("Hello World\n\r");
    usb_storage_main();  // main() from xusb_intr_example.c
    cleanup_platform();
    return 0;
}

I am following the jumper settings for the device mode as shown in these pictures:

J7 = OFF

J113 = Pins 1-2

J110 = Pins 1-2

https://photos.app.goo.gl/D6ijZDzvNUe8EEds9

When I step through the code, I don’t see anything suspicious.  No error codes are returned.  However, there is no evidence that anything is happening on the FPGA (USB device) side.  Like I said, the D+/D- pins are both held low.  No interrupts are triggered.

I haven’t tried building the Linux app and running that yet, but that might be next step.

Does anyone have any ideas what could wrong or where to look? 
Does anyone have a binary version I could try just to verify my board?

Thanks in advance,

Dave

0 Kudos