Jump to content
  • 0

Cora z7-10 baremetal USB-CDC on USB Type-A connector


TANII

Question

Hello!

Recently, I purchased a Cora Z7-10 board and tried to implement the baremetal USB-CDC  (USB 2.0) design found in the following Xilinx website:

Zynq-7000 AP SoC USB CDC Device Class Design Example Techtip

https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18841624/Zynq-7000+AP+SoC+USB+CDC+Device+Class+Design+Example+Techtip

I know that Digilent guarantees that the USB Type-A connector on the Cora board acts not as a USB device but as a USB host, as indicated in the

reference website for the Cora board.

However, when I implemented the above design in my Cora board, it seems that it works as a USB device (Do you believe this?), since the Zynq

communicates with a COM port of windows10 via a USB cable connected with the USB Type-A connector on the Cora board (I think that windows

can only act as the USB host).

So, now I am considering to use the USB Type-A connector to establish the second UART connection with windows 10, because this is so useful

that we can establish two parallel connections with windows 10 using the simple UART protocol (one can be used for slow transaction via the FTDI

chip (115200 bau), and the other can be used for comparatively fast transaction (approximately 40 Mbps) via the Microchip USB3320 USB 2.0 

Transceiver Chip).

What I am afraid of is that it may damage to the board if I continue to use the connector as a USB device, as I conjecture that the reason that

the use of the connector is limited to the USB host is because of the wiring condition of the USB3320 chip, which could be fixed to the USB host mode.

Are there any available reference (e.g. circuit diagram) on the wiring condition of the USB3320 chip of the Cora board?

I guess, I can figure out what happens if I continue to use it as a USB device and the reason why it also works as the USB device, if I got such documents.

Thanks in advance,

TANII

Link to comment
Share on other sites

4 answers to this question

Recommended Posts

  • 0

The schematic can be found on this page: https://reference.digilentinc.com/reference/programmable-logic/cora-z7/start.

The USB OTG Controller in the Zynq and the USB3320 PHY are versatile and support all USB roles, which is why you see it working.

Your concern must be with the VBUS pin that can be supplied by the host or the OTG-A device. The power switch/current limiter NCP380 on the Cora Z7 is controlled by the USB PHY and ultimately by the driver running on the Zynq. Make sure VBUS power control CPEN of the PHY is inactive.

The second concern is the amount of capacitance on the on VBUS. The Cora Z7 has a 150uF cap on VBUS (reference manual erroneously says the contrary) which is required for a host, but not allowed for a device. A device with big load capacitance can cause the current limit of the host to kick in during a hot-plug or power-cycle event. It is out-of-spec and functionality is not guaranteed.

 

 

Link to comment
Share on other sites

  • 0

I'm using a cora Z7-10  with petalinux 2021.2 all seems to work but the USB-A port has no power and does not detect USB sticks or serial adapters!

are there special tricks to make the CPEN signal inactive?

Best regards

Thomas

 

 

Link to comment
Share on other sites

  • 0
On 5/28/2020 at 2:15 AM, TANII said:

So, now I am considering to use the USB Type-A connector to establish the second UART connection with windows 10, because this is so useful

that we can establish two parallel connections with windows 10 using the simple UART protocol (one can be used for slow transaction via the FTDI

chip (115200 bau), and the other can be used for comparatively fast transaction (approximately 40 Mbps) via the Microchip USB3320 USB 2.0 

Transceiver Chip).

Sounds so inviting. Windows can handle 921600 COM devices without flow control and long data transfers, as do several Serial Terminal applications that run on the OS. At faster baud rates things get ugly pretty fast. FTDI USB UART bridge devices support baud rates to 3 or 12 Mbaud depending on the device, but the Windows VCOM drivers will not let you go above the 921600 mark. You can buy an FTDI UART Bridge module and convert it to a D2XX driver compatible device, but using the higher baud rates will still require hardware flow control and using the FTDI D2XX API libraries.

You are hoping to bootstrap a Xilinx demo using the USB port as a 115200 baud ( as I read the article ) and a Win 2000 32-bit driver for which you have no source, API, or even capability description at 40 Mbaud? This doesn't sound promising to me. UART devices are pretty straight-forward. UART over USB is anything but straight-forward, especially if you want to use high baud rates. I'm not saying that the USB3320 USB 2.0 can't be useful for Win**** platform communications but make sure that you have all of the parts before venturing too far into a commitment. Window is just not a DYI friendly OS environment nor do the tools provide an easy cost-free path for custom driver development.

 

Edited by zygot
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...