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.

TUSB2036: downstream ports not enabled

Part Number: TUSB2036

I am attempting to use the TUSB2036 in a system which requires the ability to boot from a USB flash drive.  In the prototype, the hub is recognized by the USB host, but the hub's downstream ports are not powered and downstream connected devices are not recognized. The hub appears to function properly when connected to a PC running Windows 10.

The power supply is stable, the 6MHz crystal is stable and properly oscillating at least 60us before the reset pin is pulled high, and the power supply is stable.

It appears as though the hub is waiting for the proper commands to enable downstream communications and power, because I see USB resets and communications prior to the hub functioning properly on a PC.

 

What is required for the part to enable downstream communications and power?

  • Hi Chris,

    USB hubs are "dumb" devices that only do what the USB host controller commands.  It sounds like the driver that is loading during the boot process is enumerating the USB hub, but not powering / enabling / enumerating its downstream ports.  Here's the typical process for powering / enabling the downstream ports but then the host would need to check status for a connected boot device and then enumerate the device.  You may want to check the BIOS settings to see if there is a setting to enable USB boot.

    Regards,

    JMMN

  • Hi JMMN,

    Yes, that is exactly where I landed: the hub is being enumerated, but the downstream ports are not being powered/enabled.

    Relating to enabling USB boot, USB boot is already enabled and I'm able to boot thru two different (high speed) hubs with no apparent problems. The system is able to enumerate thru at least two hubs to get to the bootable flash drive. When the TUSB2036 is plugged into the system, its downstream ports remain unpowered/disabled until the system boots thru another hub that is also connected to the system.  So, it seems that the hub and upstream system are incompatible. Although it could be some other issue with the upstream system, it seems as though the commands required to enable ports downstream of the TUSB2036 are not present during the boot process, but become available after booting. To isolate the source of the problem and identify a solution, I was hoping to identify the sequence that resulted in enabled downstream ports.

    Assuming the typical process in the attached image is representative of the required process for this hub, I'm guessing that either SET_FEATURE(PORT_POWER) or SET_CONFIGURATION is likely used to enable the downstream ports.

    Can you confirm the command sequence which must occur for the downstream ports to be enabled?

    Thanks,

    Chris

  • Hi Chris,

    What kind of a system is this?  One difference is that that TUSB2036 is a USB FS hub, not a HS hub, it shouldn't matter but I know there are some odd behaviors with Raspberry Pi systems / a few Linux builds.

    During enumeration, the host would need to send the SET FEATURE (PORT_POWER) to each downstream port and then GET STATUS for each port.  At that point the host should see something connected on a downstream port and send more commands, but I'd look for the port power and status first.

    Regards,

    JMMN