USB_SS#1 (G39, G40, D39, D40) cannot enumerate usb3.0 camera at some time

I’m use TUSB8041 usb3.0 4p hub on tx2.

USB_SS#0 (F43, F44, C43, C44)
USB_SS#1 (G39, G40, D39, D40)
USB_SS#2 (G42, G43, D42, D43)

tx2 usb3.0 set to config#4

nvidia@tegra-ubuntu:~$ lsusb -t
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci-tegra/3p, 5000M
|__ Port 1: Dev 8, If 0, Class=Hub, Driver=hub/4p, 5000M
|__ Port 2: Dev 86, If 0, Class=Hub, Driver=hub/4p, 5000M
|__ Port 3: Dev 87, If 0, Class=Hub, Driver=hub/4p, 5000M

now USB_SS#1 usb3.0 4p hub cannot enumerate devices at some time when plug in a usb3.0 device(USB3.0 camera).
we test USB_SS#0 is ok.

root@tegra-ubuntu:/sys/class/gpio/gpio246# echo 1 > value
root@tegra-ubuntu:/sys/class/gpio/gpio246# [ 3678.541818] xhci-tegra 3530000.xhci: exiting ELPG
[ 3678.570145] xhci-tegra 3530000.xhci: Firmware timestamp: 2017-12-07 10:50:08 UTC, Version: 55.09 release
[ 3678.584118] xhci-tegra 3530000.xhci: exiting ELPG done
[ 3678.589375] xhci-tegra 3530000.xhci: tegra_xhci_mbox_work mailbox command 6
[ 3678.842250] usb 2-2.3: new SuperSpeed USB device number 8 using xhci-tegra
[ 3678.863348] usb 2-2.3: New USB device found, idVendor=4255, idProduct=0004
[ 3678.870317] usb 2-2.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 3678.877810] usb 2-2.3: Product: Titan Simple Class
[ 3678.882709] usb 2-2.3: Manufacturer: Insta360
[ 3678.887176] usb 2-2.3: SerialNumber: 0001
[ 3678.892185] xhci-tegra 3530000.xhci: tegra_xhci_mbox_work mailbox command 6

root@tegra-ubuntu:/sys/class/gpio/gpio246# echo 0 > value
root@tegra-ubuntu:/sys/class/gpio/gpio246# [ 3774.284819] usb 2-2.3: USB disconnect, device number 8
[ 3774.291198] xhci-tegra 3530000.xhci: tegra_xhci_mbox_work mailbox command 6
[ 3774.469883] xhci-tegra 3530000.xhci: entering ELPG
[ 3774.480559] xhci-tegra 3530000.xhci: entering ELPG done

root@tegra-ubuntu:/sys/class/gpio/gpio246#
root@tegra-ubuntu:/sys/class/gpio/gpio246#
root@tegra-ubuntu:/sys/class/gpio/gpio246# echo 1 > value
root@tegra-ubuntu:/sys/class/gpio/gpio246#
root@tegra-ubuntu:/sys/class/gpio/gpio246# echo 0 > value
root@tegra-ubuntu:/sys/class/gpio/gpio246#
root@tegra-ubuntu:/sys/class/gpio/gpio246#
root@tegra-ubuntu:/sys/class/gpio/gpio246# echo 1 > value
root@tegra-ubuntu:/sys/class/gpio/gpio246#
root@tegra-ubuntu:/sys/class/gpio/gpio246#

Hi, len

Have you tried with external power supply plugged in?

hi, alanz
yes,it is no use. we plug in usb3.0 u disk, test 80 times it is ok.

usb3.0 camera enumerate need 4~5s, but usb3.0 U disk less than 1s.

USB_SS#0 (F43, F44, C43, C44)
USB_SS#1 (G39, G40, D39, D40)
USB_SS#2 (G42, G43, D42, D43)

All three USB3.0 have this problem,But the probability is different.

Hi,
Do you re-plug the device after doing ‘echo 1’? Does it happen to USB_SS#2?

hi,
No, ‘echo 1 > value’ enabled vbus 5V. yes,it is happened to USB_SS#2.

Hi,
Can you please try to enable/disable the regulator like:
https://devtalk.nvidia.com/default/topic/1032451/jetson-tx1/usb-load-switches/post/5255930/#5255930

hi,

normal:
root@tegra-ubuntu:/home/nvidia# lsusb -t
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci-tegra/3p, 5000M
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 5000M
|__ Port 2: Dev 15, If 0, Class=Hub, Driver=hub/4p, 5000M
|__ Port 1: Dev 16, If 0, Class=Vendor Specific Class, Driver=, 5000M
|__ Port 2: Dev 19, If 0, Class=Vendor Specific Class, Driver=, 5000M
|__ Port 3: Dev 21, If 0, Class=Vendor Specific Class, Driver=, 5000M
|__ Port 4: Dev 23, If 0, Class=Vendor Specific Class, Driver=, 5000M
|__ Port 3: Dev 6, If 0, Class=Hub, Driver=hub/4p, 5000M
|__ Port 1: Dev 17, If 0, Class=Vendor Specific Class, Driver=, 5000M
|__ Port 2: Dev 18, If 0, Class=Vendor Specific Class, Driver=, 5000M
|__ Port 3: Dev 20, If 0, Class=Vendor Specific Class, Driver=, 5000M
|__ Port 4: Dev 22, If 0, Class=Vendor Specific Class, Driver=, 5000M

abnormal:
root@tegra-ubuntu:/# lsusb -t
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci-tegra/3p, 5000M
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 5000M
|__ Port 2: Dev 14, If 0, Class=Hub, Driver=hub/4p, 5000M
|__ Port 1: Dev 15, If 0, Class=Vendor Specific Class, Driver=, 5000M
|__ Port 2: Dev 18, If 0, Class=Vendor Specific Class, Driver=, 5000M
|__ Port 3: Dev 20, If 0, Class=Vendor Specific Class, Driver=, 5000M
|__ Port 3: Dev 6, If 0, Class=Hub, Driver=hub/4p, 5000M
|__ Port 1: Dev 16, If 0, Class=Vendor Specific Class, Driver=, 5000M
|__ Port 2: Dev 17, If 0, Class=Vendor Specific Class, Driver=, 5000M
|__ Port 3: Dev 19, If 0, Class=Vendor Specific Class, Driver=, 5000M
|__ Port 4: Dev 21, If 0, Class=Vendor Specific Class, Driver=, 5000M

TX2 USB3.0 TX2 USB3.0 PINs 4p hub tca9539 cam vbus control USB3.0 camera normal abnormal
USB_SS#1 (G39, G40, D39, D40) TUSB8041 (P00,P01,P02,P03) (P6,P7,P8,P1) P8,P1 P6,P7
USB_SS#2 (G42, G43, D42, D43) TUSB8041 (P04,P05,P06,P07) (P2,P3,P4,P5) P2,P3 P4,P5

abnormal: (240,241,246,247)
echo 1 > /sys/class/gpio/gpio240/value (enable 5V Vbus usb3.0 camera)
echo 0 > /sys/class/gpio/gpio240/value (disabled 5V Vbus usb3.0 camera)

P6(P7,P4,P5) enumeration failed sometimes。

normal:(242,243,244,245)
echo 1 > /sys/class/gpio/gpio242/value (enable 5V Vbus usb3.0 camera)
echo 0 > /sys/class/gpio/gpio242/value (disabled 5V Vbus usb3.0 camera)

P8(P1,P2,P3)enumeration succeeded when test 100 times.

Hi,
Could you share HW layout for reference?

Hi,
After comparing your layout with oem design guide. It seems to have some deviation. In Figure 15 of oem design guide, we have
USB_SS0 TX+/- connect to 0.1uF capacitance

But in your desgin, we can see difference:
USB_SS0 TX+/- connect to resistor
USB_SS0 RX+/- connect to 0.1uF capacitance
USB_SS1 RX+/- connect to 0.1uF capacitance
USB_SS2 RX+/- connect to 0.1uF capacitance

Have you checked the signal quality? Maybe the difference takes effect in signals.
Also do you try other devices such as USB3 pendrives? Is it specific to the cameras? Or happens to other USB3 devices also?

hi,
USB 3.0 ophthalmogram test is ok, we try usb3.0 U disk test 100 times ok.

the usb3.0 camera enumeration succeeded need 5~7s, usb3.0 U disk enumeration succeeded need less than 1s

when enable vbus 5V.

Hi,
Could you get support from the camera vendor? If it is specific to the USB camera, shouldn’t it be some issue in the camera itself?

hi,
The usb3.0 camera was made by our company. we test usb3.0 camera in PC it is ok.

hi,
4p hub divides four routes of usb3.0, two of which are not enumerated sometimes.

Hi,
Does your camera pass compliance test?

Also we have guidance for passing compliance test.
http://developer.nvidia.com/embedded/dlc/tx2-series-interface-tuning-compliance-testing-guide

Hi len.xiao,

Have you clarified the cause and resolved the problem?
Any result can be shared?

Thanks

hi,kayccc
yes, it is a lot better when H2 camera stringed into a 10 ohm resistor.

We Had try serial or parallel resistors on USB signals,It seems improved, but still occured the Hub enumeration failed. Impedance value of PCB is lower than normal.