This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TUSB7340 PLS stuck in Compliance Mode

Other Parts Discussed in Thread: TUSB7340

Hi everyone,

We have the following Problem:

We are using the TUSB7340, together with an other USB controller and switch the USB lines between these two controllers. The other USB Controller is a USB2.0 only Controller from a CPU. The RX USB3.0 lines of the USB Port are switched to avoid that a USB3.0 device could be found at both USB Controllers at the same time, but the SSTX USB3.0 lines are connected to the TUSB7340 directly. The following diagram shows an overview of the connections:

My question is:

Could it be possible, that the TUSB7340 gets confused if an USB3.0 device is connect with its USB2.0 lines to other USB Controller but is still connected with its SSTX USB3.0 lines to the TUSB7340?

We have tested several combinations and it seems, that if an USB3.0 device is connected durring the switching process from USB2.0 of the CPU to the USB3.0 lines of the TUSB7340 the Link stucks in the Compliance Mode and the device is not found:

Fail case with USB3.0 stick:

PORTSC = > 0x0e000340

             0x0e       0x00       0x03       0x40
           00001110 | 00000000 | 00000011 | 01000000

-> PLS = 10 => Link is in the Compliance Mode State
-> PP  = 1 => This port is not in ther Powered-off state
-> WCE = 1 => sensitive to device connects as system wake-up events
-> WDE = 1 => sensitive to device disconnects as system wake-up events
-> WOE = 1 => sensitive to over-current conditions as system wake-up events

When the TUSB7340 is in this state, no USB device will be detected again, no matter how the switches are set. Only a driver reset or a power cycle gets the TUSB7340 back to the default state:

PORTSC = > 0x0e0002A0

             0x0e       0x00       0x02       0xA0
           00001110 | 00000000 | 00000010 | 10100000

-> PLS = 5 => RxDetect
-> PP  = 1 => This port is not in ther Powered-off state
-> WCE = 1 => sensitive to device connects as system wake-up events
-> WDE = 1 => sensitive to device disconnects as system wake-up events
-> WOE = 1 => sensitive to over-current conditions as system wake-up events

If the USB 3.0 stick is pull out and plug in again, it will be found as USB3.0 device.

Note:

After each switching process the USB device gets a power on/off cycle of about 4 seconds, to simulate plug in/off.

Regards,

Andreas

  • Hello,

    Only one host controller can be connected at a time.

    Why do you need a USB2.0 Host controller? The TUSB7340 has both USB3.0 and USB2.0

    I don't understand your configuration, are you trying to connect the super-speed portion of the USB device to the TUSB7340 and the high-speed to the USB2.0 host controller? That is not possible.

    You can't share the USB lines of the Device with the two host controllers at the same time.

    Regards.

  • Hello,

    Thanks for your answer.

    The Problem is, that we have no driver support for the TUSB7340 within our BIOS of the CPU. So we use the internal USB2.0 Controller of the CPU. After the booting process we switch to the TUSB7340 to get USB3.0 support. We don't want to share the USB lines at the same time. The idea was that only one controller recognize the USB device.

    But we decided, to save money and switch only the SSRX lines. I guess, that this is the problem.

    I have performed additional tests today and figured out that even if only the SSTX lines are connected, the TUSB7340 recognize that a USB3.0 device is plugged in and goes to the compliance mode. In this mode it seems that USB2.0/USB3.0 devices are still recognized, but only as USB2.0.

    As a Workaround we currently do a driver reset and perform a power cycle on the USB device, when we switch from the CPU HOST Controller to the TUSB7340. What seems to work.

    Could you confirm, that the TUSB7340 can regonize that an USB3.0 stick is plugged in when only the SSTX lines are connected, but there is a commication over the USB2.0 lines with another USB Host Controller? Or is it impossible and the reason must be somewhere else?

    Thanks,

    Andreas