Other Parts Discussed in Thread: SN65LVPE512,
Hello,
In our prototype design, we are switching our USB system (HUB, with downstream ports) on the upstream side, between multiple connectors. Basic block diagram is shown below.
Here the switch is actually multiple switches (for USB3 and USB2), but the control signals are shared (so USB2 and USB3 signals switch at the same time).
We have the ability to turn off power to downstream devices (turn off VBUS) and reset the HUB, which we do, prior to switching between upstream connectors. We have tried a variety of timings - everything is powered off / reset in the hundreds of milliseconds (i.e. much much longer than it takes to switch). Initial USB3 / USB2 transmit compliance testing was a pass.
Initial Results / Issues:
When we switch away, some hosts appear to not detect that the HUB / devices have disconnected electrically (sometimes), while other hosts exhibit no issue (example - no issues with a couple different macbooks running macos or windows 10, no issue with our chrome book, and a couple different laptops with windows 10).
The USB2 section of the HUB (and any USB2 devices) drop / re-appear as one might expect when switching away / back (no issue with USB2 at all, on any tested host).
When we have an issue, its always USB3. What we are seeing is that after first switch away - occasionally the USB3 portion of the HUB + any USB3 devices are phantoms - they show up in explorer / USBView, but we cant navigate to them (because they are not actually connected), and do not recover when we switch back.
Our LeCroy analyzer shows no "term off" when it fails in this fashion, and host traffic continues.
Probing the SS_RX (at re-driver, upstream / host side) after switching away (failed state), we can see that the host is continuing to poll.
In the failed (+switched away) state, if I short EN_RXD on the re-driver to GND, the phantom USB3 HUB + devices disappear from host immediately, and when I switch back everything is fine.
This is our first dive into USB3 (so excuse my ignorance) - but I assume the host is continuing to transmit (and "seeing" devices that are disconnected) because terminations remain applied at the re-driver (despite being disconnected on the downstream side).
Why would this be an issue for some hosts but not others?
How is this any different than me physically disconnecting my downstream USB system (i.e if the "switch" was a connector)? For example if the re-driver was built into the host instead.
What conditions must be met in order to trigger a proper disconnect to the host?
Anyone have advice / things to try?
Thanks,
Chris
