Camera program breakdown!

A TT only matters if your device is less than the speed of the root HUB max and some other device is going faster. If both cameras are the same model, then those would not care if a bus slowed down because of a camera not being able to go as fast as the bus…but of course other devices on that root HUB could drag things down slower. The TT is indeed usually part of the USB HUB chip itself, but verification that your keyboard did not slow the cameras via “lsusb -t” proves you have the TT.

Really, odds are fairly high that there is a signal integrity issue. You can follow schematics exactly, but have rules for trace impedance cause failure for any number of reasons (e.g., D+/D- lanes are different lengths, or bend the wrong way, or are routed with unexpected coupling to a nearby trace with noise). At USB1.1 speeds you wouldn’t see this, but at USB2 speeds trace routing requirements go up substantially (and of course USB3 becomes quite a bit more of an issue relative to USB2).

Have you gone over traces to consider D+/D- routing so far as RF behavior and impedance? This would be a likely candidate if the setup works most of the time, but occasionally fails.

One other alternative is if the driver is on occasion unable to run (for example another driver wouldn’t let go of CPU0 in time)…this would block data and cause an error, but I highly doubt it would cause re-enumeration.

Hi linuxdev,
I try the driver on the demo carrier board of P2597 with the way #4(Posted 02/16/2017 08:56 AM),and it fails again.Although I consider D+/D- routing and impedance with JetsonTX1_OEM_Product_DesignGuide,but P2597 must be better than my layer 4 layout.With two board failing only under dual USB ports,it may be caused because of bug but maybe still because of noise on the USB data lines.
Do you have any method to check which specific device caused the re-enumeration?

The simple way would be to have a USB analyzer.

If you can’t afford that, then there are some kernel options I’ve never tried but which got my curiosity up…in the USB there are some increased logging options…you’ll have to dig around to find them, I don’t know where those are. Those logging options, or perhaps some of the other kernel USB options might provide a way to look at that.

For monitoring software take a look at wireshark:
[url]https://wiki.wireshark.org/CaptureSetup/USB[/url]