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.

TUSB2077A: Windows 10 random port disable

Part Number: TUSB2077A
Other Parts Discussed in Thread: TUSB2046B, ALLIGATOR

This design has been in production since 2013. Dual hub primary TUSB2077A and secondary TUSB2046B in series to create a 9 port hub product. There have been no documented problems until recent revisions of Windows 10 interaction resulting in random port disable state. In a static connection to 8 devices all under self power and the hub self powered and ports individually monitored for current draw faults, simply disconnecting the USB link to the host Windows 10 and reconnecting results in 0 to 3 devices, mostly 1 or 2, fail to enumerate properly. Missing in the OS record of connected devices is the end point establishment and device ID. Some but not all of the device "hello" data is transferred. Also associated with the failure is pin 42 PORTDIS is low. If all devices enumerate properly then PORTDIS is high. When devices that are connected to the ports are directly connected to host, the device never fails to enumerate. This leads me to the conclusion that there is some sort of race condition causing the hub to detect a port disable and it remains in that state until the next connection cycle. I need advice from an FAE on how to tackle this problem.

The attached schematic shows pull-down resistors on the DPx and DMx pins - these are unpopulated in the production build and reset duration has been extended with larger R values 232k at R49 and 118.

200451-sch_d.pdf

  • do you know which device has problem?
  • I have seen port failures on both devices but the TUSB2046B does not have a PORTDIS output pin making monitoring port disables on this chip difficult. The problem materializes in the same manner so I assume it is the same problem.
  • Hi Robert,

    Since you are using a Windows OS, can you download usbview.exe or usb device tree viewer (both are available online) and send us a screen shot of what it looks like when the downstream device enumeration fails? All downstream ports of the TUSB2077 or TUSB2046 should have 15K pulldowns (not 1.5K) installed. Also can you confirm that VBUS on the downstream ports is not drooping below 4.75V when the devices enumerate?

    Regards,
    JMMN
  • Conclusion: adding 15K pulldowns to all downlink channels did not solve problem.  The connection failure frequency did not changed from the prior state where all pull down pads were open, the 1.5K is not in the production BOM.

    After adding 15K pulldowns  proceeded to capture USBView in the following modes:

    - successful connection of hub board populated with 8 modules

    - failure in connection of hub board where at least 1 of 8 modules fails

    I have also provided photos of the test:

    - 2 photos of an individual module directly connected to Windows 10 - this configuration always connects successfully.

    - photo of all modules plugged into hub board

    - photo of LEDs in a successful connection of all 8 channels.

    - photo of LEDs in a connection failure of at least one of 8 channels.  Note PORTDIS on far left.

    I also connected a volt meter to VBUS and observed the following:

    0.11V  - Power on before connecting Windows 10 for first time.

    ramp up to 5.01V - on first connection to Windows 10 host.

    5.01V - successful connection of all modules

    5.01V - after disconnect Windows 10 host

    5.01V - subsequent reconnection of USB resulting in connection failure of at least one of 8 channels.

  • In Device Manager, what is the reported error for the device?

    Thanks,

    JMMN

  • Here is the Device Manager error for a failed channel:

  • Hi Robert,

    Can you provide info on the XHCI driver in the system (version, build date)? Do you see this issue with the regular Windows 10 version or just with the latest Window 10 update from last fall? Can you test with less devices connected (maybe 4) and see if the issue still occurs. Since the USB host is able to load the descriptors from the downstream devices, physical USB connections are being made. Since USB hubs are essentially slave devices whose behavior is controlled by the USB host - this is likely a protocol level issue. Do you have access to any USB protocol analyzer tools?

    Regards,
    JMMN
  • This problem is being reported in many multiple customer locations.  I do not know what the XHCI driver versions are at those locations.   I believe the problem started with a recent update of Windows 10 and not the original version.   

    I have not tested with fewer than 8 active ports but will do so later today.   I do have some additional information that leads me to believe this is a race condition with Windows 10 because when 1 device is plugged in directly to the Windows 10 host, it never fails enumeration.   The problem has only been observed when the TI hubs are inserted into the connection.   There is a soft, but not appealing working around:  Using Device Manager, delete all HID devices that display "!" indicating non-operational and then scan for hardware changes.   This re-enumerates the failed devices and the problem is solved completely.  It is unacceptable to ask my customers to do this every time they boot the computer.   I will inform you of further testing results when I have them.

    I have access to a software based protocol analyzer which would run on the same Windows 10 host.  I have no other tools available.  I have been able to monitor the enumeration process on the device side using a Microchip debugger.   The process appears to fail at the final step of the enumeration process and device is left in a state where it has not completed enumeration.

    Again, the current design of all devices in the USB link has been stable and error free for years.   This problem is a recent occurrence within the last 3 or 4 months.  I do not have any reports of failure leading back to last fall although my customers could have been confused for a period of time and did not report.  The problem has only been reported using the Windows 10 OS.

    We do all final production testing on a Windows 7 OS and it never has had a problem. 

    Do you have a contact at Microsoft that we can get involved in the discussion?

  • XHCI version: 10.0.17134.1 April 10, 2018

    Less devices: more than 1 unit plugged into TUSB2077A there are random issues. When only one unit is plugged into TUSB2077A it seems to successfully enumerate most all of the time. We have implemented a firmware change in our devices that if enumeration failure is detected on the device side, then device will reset the connection. Enumeration failures are detected nearly all of the time when the TUSB2077A remains under power and the USB connection is made/unmade. When connection is stable and power is turned on and off, the enumeration failures occur and the devices are not able to detect the problem consistently. When operating with just one device connected, it appears that the device is detecting the problem often and resetting the connection automatically which remedies the condition.
  • Hi Robert,

    We will need to set up a similar test in the lab to duplicate and acquire protocol traces for debug.

    I plan to have an update on Thursday.

    Regards,

    JMMN

  • Hi Robert,

    I'm not able to duplicate in our lab. Are your downstream devices FS or LS?

    Regards,
    JMMN
  • Hi Robert,

    I did notice that my lab machiens have the latest Win 10 OS update, so I am running XHCI 10.0.17763.1 from 9/14/2018.

    Regards,
    JMMN
  • We are using the Microchip PIC18F2450 for USB control.  There are no external resistors on D+ and D-.  This function is controlled by a software register that enables an internal pull-up to operate the chip in either FS or LS modes.   I dove into the firmware and it appears to be initialized to FS and has been that way since the product was first introduced.

  • It looks like you are running a newer version of the device driver. I'm going to attempt to upgrade our device driver so that we are running the same thing.
  • When you say unable to duplicate, how many devices are attached to the hub?
  • I cannot find a driver update for the USB. I ran both the Intel driver assistant software to identify any up-gradable drivers and also reviewed the ASUS driver support. Neither location offers a different version of the USB support. Furthermore, this problem is being reported on multiple platforms at various locations around the world. For all I know we're all running different versions of the xHCI driver. Again, this problem does not exist on older Windows OS from Windows 7 to before the current version of Windows 10 update.
  • Hi Robert,

    I have tried:

    TUSB2077A with 6 FS devices + 1 FS hub connected, the second FS hub had 3 devices attached (mix of FS / LS)
    TUSB2077A with 4 FS / 2 LS devices + 1 FS hub connected, the second FS hub had 3 devices attached (mix of FS / LS)

    I ran 20 cycles of disconnect / reconnect on each and saw all devices reconnect properly.

    Regards,
    JMMN
  • Drop power to both hubs and re-apply with all device connects and connection to the host static. In my setup all devices and the hub are self powered. This was worst case scenario.
  • Hi Robert,

    I cannot run the exact same scenario in my lab.  I have to disconnect the host from the top hub to prevent it from swapping to bus power mode when external power is removed, but powering off / on hubs and reconnecting to the host I see all devices reconnect.  It takes over a minute since I am loading 10 mass storage devices at FS, but they all come up.  Have you tried the latest driver?

  • You keep pointing at the driver revision and I have investigated.  On my test host Windows 10 reports that I have the latest driver and does not provide an upgrade path.  I have visited the Intel web site and they do not provide an xHCI driver option in driver support download area.  Can you provide a link to the latest driver?   My customers have unknown driver versions and they are reporting difficulty but there is one constant among all of the customers and our own test computer.  This problem started with the most recent Windows 10 upgrade.  All earlier versions of Windows 10 and all earlier versions of Windows back to Windows 7 do not have a problem connecting through our hub.

    I believe this is a marginal timing issue between Windows 10 and the Alligator Technologies products that only surfaces when there is a TI chipset hub in the communication path.  When the AT devices are plugged into Windows 10 directly, they enumerate properly.   It is possible that the reset timing in our hub implementation does not match yours.  I am assuming your test hubs have an RC controlled reset time.  Can you tell me how long reset is on your end that I can match on my hub?

  • Hi Robert,

    The latest Windows update download instructions are here, I have not found a way to just download the XHCI driver portion: support.microsoft.com/.../windows-10-get-the-update

    I will measure the RC time constant today.

    Regards,
    JMMN
  • Because of the slow ramp VCC time, the reset pulse is only valid for 100 us on the EVM.

    Regards,
    JMMN
  • 100uS is considerably shorter than what I am using.   I'll change that and see what happens.   

    There are several problems with how you have tried to duplicate the problems I am observing.  Reset time of the hub is one.  The other is the client devices you are using may have different reset and communication responsiveness timing.

    I have definitely concluded that there is a marginal timing issue between the host and the client during the enumeration process that only shows up when the TUSB2077 is an intermediary.  I suspect the propagation delay through the hub is exacerbating the problem.

    One of my questions that remains unanswered is the mechanism used in the TUSB2077 that creates a PORTDIS signal and further, what happens to the +D and -D lines and power to the client device in this condition?

    Can you elaborate on this?

  • Hi Robert,

    The PORTDIS is just a status output that is driven when the hub is in bus-powered mode (only 4 ports enabled) or if the USB host disables a port. It doesn't tell us why the port was disabled.

    Can you please accept my friend request and send me a message so we can discuss next debug steps.

    Regards,
    JMMN