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.

[FAQ] How do I debug a TI USB Hubs when downstream ports are non-operational?

Other Parts Discussed in Thread: TUSB8044, TUSB8041A, TUSB8043, TUSB8042, TUSB4020BI, TUSB8020B, TUSB8041, TUSB4041I

I have implemented a USB Hub with four USB 3.1 Gen / USB 2.0 ports using TUSB8044 however the downstream ports don’t work when the hub is connected to the host. What are the necessary steps to debug this issue? 

  • Debugging USB Hubs can be a complex task sometimes requiring an extensive amount of time to debug. Listed below are some simple questions to ask when beginning debug on your design.

    • Was the USB hub enumerated by the USB Host?
      • To check, open your device manager (Windows OS) and check to see if a new USB hub instance (two will appear for a USB 3.1 Hub) appears upon power-on reset of the USB Hub.
      • If you do not see new device instances named “Generic  USB 2.0 Hub” and “Generic USB SuperSpeed  HUB” then TUSB8044 was never enumerated and focus should be given to the upstream port and getting TUSB8044 to enumerate.

    • Are USB 3.1 RX and TX lines connected appropriately and are there AC coupling caps on TX lines of USB 3.1 Gen 1 downstream ports? (USB 3.x Hubs only)
      • SSTX pins should connect to SSRX pins of the host and vice versa.
      • SuperSpeed polarity can be swapped; SSTXp can be swapped to SSTXn and vice versa. AC coupling caps of  0.1 uF should be placed on SSTXp/n lines.

    • What does the reset pulse look like at power up?
      • When using a passive reset for TUSB8044, ensure that the VDD comes up before VDD33 and that the voltage on the reset pin for TUSB8044 does not go high for 3 ms. This is the proper way to power-up and exit reset.
      • When using an active reset for TUSB8044, there is no ramping order of VDD and VDD33, but reset should still be low for 3ms after the voltages have completed ramp.

    • When connected to the host, what is the voltage at the USB_Vbus pin?
      • If it is not above Vbus_good (450 mV)  then the USB Hub will not recognize that a USB Host is  connected upstream and enumeration will not occur. The voltage divider used for this pin can be adjusted for applications where Vbus is 3.3 V.

    • For oscillator-based applications, does my clock input at the XI pin start before TUSB8044 comes out of reset?
      • TUSB8044 is a state machine driven device, if the clock is not present to TUSB8044 before the device exits reset then TUSB8044 can get into an undefined state causing downstream ports to be non-functional.

    • Is the SMBUSz pin held low in the system?
      • If so, the hub will not connect until the SMBUS host sets the cfgactive bit in the hub registers.

    • When SMBUSz is pulled high (I2C Mode), is a blank EEPROM attached to the hub?
      • If so the hub will automatically enter programming mode until the EEPROM is programmed or disconnected.

    • Are the differential pairs connected correctly?  
      • DP and DM should not be swapped.  SSTX pins should connect to SSRX pins of the host and vice versa.

    • Does the hub have a good thermal pad connection with adequate solder paste?
      • Many intermittent issues arise from not having enough solder paste applied to the thermal pad. Ensure that ample solder paste is applied.

    • If the USB Hub has enumerated, check the USB port descriptors. Are the downstream ports reported correctly?
      • Use USBTreeView program to see ports and device descriptors.

    Note: This FAQ also can be used for TUSB4020BI, TUSB4041I, TUSB8020B, TUSB8041, TUSB8041A, TUSB8042 and TUSB8043.