Hello, NXP experts
We divide one USB 3.0 module of i.MX8MPUS into two usb host ports without any external USB HUB, one is usb3.0 port and one is usb2.0 port. And now i.MX8MPUS can success to enumerate a super-speed device on the usb3.0 port and enumerate a high-speed device on the usb2.0 port.
But each time a high-speed device is re-inserted into the usb2.0 port, the super-speed device which is areadly enumerated on the usb3.0 port will became disconnected and then will be re-enumerated after 400ms. Even when we connect a usb2.0 HUB between the high-speed device and the usb2.0 host, the super-speed device will still disconnect 400ms after the high-speed device is pulled out and then inserted.
(Our hardware team has ruled out insufficient VBUS power supply drop to the super-speed device.)
We have two questions:
1. Our usage of dividing USB 3.0 module of i.MX8MPUS to two host ports without USB HUB is NXP recommended way?
2. Why the above 400ms usb disconnect of super-speed device happen? (when the high-speed device is re-inserted)
Thanks in advance.
@ riteshmpatel @Rita_Wang
USB3.0 is compatible with USB 2.0 and with independent of PHY, but one USB CORE divided into two USB ports, and these two USB ports cannot be used simultaneously.
At the same time, only one device can be inserted, either USB 2.0 or USB 3.0.
Your this kind design is OK, But the two USB cannot be used simultaneously. We don't recommend using it this way, it's meaningless. It is completely possible to use the USB-TYPE-AF interface of USB3.0, with definitions for USB2.0 differential lines and two pairs of differential lines of USB3.0. So, one port supports both USB2.0 and USB3.0 devices.This port is called the USB 3.0 HOST interface.
Since only one device can work, there is no need to divide it into two.
The question from changbaoma is usb 3.0 is because spec says "USB 3.0 is a physical SuperSpeed bus combined in parallel with a physical USB 2.0 bus".
Usually, when you plugin usb 2.0 disk, only usb 2.0 bus working. when you plugin usb 3.0 disk. only 3.0 super speed bus working.
usb 2.0
lsusb -t
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 5000M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 480M
|__ Port 1: Dev 2, If 0, Class=Mass Storage, Driver=usb-storage, 480M
usb 3.0
lsusb -t
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 5000M
|__ Port 1: Dev 2, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 480M
In theory(spec), the usb 3.0 and usb 2.0 can work at the time(without hub).
changbaoma is asking one usb 3.0 port on i.MX can split become two. one is usb 2.0 and usb 3.0.
Understand? NXP expert!
@smithcoba Thanks a lot for your advice. Gratefully~~