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.

TUSB2046B: The downstream device is not recognized

Part Number: TUSB2046B

Hello,

We are having an issue with TUSB2046B. Here are the details of the configuration and what we have checked.

[Configuration]
USB2.0 Full-Speed
Down1,2: Not in use
Down3: TI(Tiva C) MCU which never has issues … DFP3
Down4: Touch panel controller(actually a generic MCU) which has the issue … DFP4

[Investigation]
- Pin27: 48MCLK from the oscillator is stable
- RESET sequencing looks ok. (Hub UFP and DFP3 are always ok)

- Around 100ms after VBUS is powered, DFP4 pulls up D+ to high.

- DFP4 device toggles D+ as (a) 4us High -> (b) 9ms Low -> (c) Keep High.
It is caused when the internal USB phy wakes up. It’s unavoidable.

- From the LeCroy USB protocol analyzer, TUSB2046B doesn’t detect the port connection of Port #4.
It seems host controllers issue GET_STATUS 100ms after SET_FEATURE(PORT_POWER) is set.
DFP4 might not be able to wake up at that time but it is expectable since it takes around 100ms.
We think the problem is TUSB2046B doesn’t output Status Change Endpoint once DFP4 is awake.

- When the issue happened, we tried to force D+ to pull low manually then released to high. TUSB2046B outputs Status Change Endpoint and starts communication.
So we assume this issue is caused because TUSB2046B just doesn’t recognize DFP4

- The chance of the issue is not 100%. It seems to depend on USB host controllers, OS, and hardware variants of the touch controller MCU.

[Questions]
We expect the behavior of the DFP4 device affects TUSB2046B’s detection process somehow.
- Does a very shot high pulse like 4us of D+ disturb Connect/Disconnect detection of TUSB2046B?
- Is it a problem for TUSB2046B that D+ is low for more than 100ms VBUS goes high?
- Are there any reasons that TUSB2046 doesn’t detect downstream devices even though they pull up D+?

  • DFP4 VBUS & D+: Good Case
  • DFP4 VBUS & D+: Failure Case ... no transaction
  • Log between Host and Hub UFP: Good Case ... "Status Change Endpoint" is issued

  • Log between Host and Hub UFP: Failure Case ... TUSB2046B never issues Status change of Port #4

  • D+: (a) High pulse 4us
  • D+: (b) Low 9ms

TUSB2046B_Schematic.pdf

  • Hi,

    I am looking into this issue. Could you provide some additional detail as to the state of D- in the fail case? The initial pulse on D+ is not expected by TUSB2046B and may be causing issues here. To understand the issue better and answer your questions I would like to know D- state.

    Also does extending the reset signal of TUSB2046B help with this issue?  

  • Hi Malik,

    This pic shows the state of D-(Ch3). We were also wondering that the TUSB2046B regards it as a low-speed device. But D- keeps low.

    Extending the reset to 550ms didn't help. We think it's long enough though.

    We know TUSB2046B is widely used and the behavior is almost fixed. We just want to know how we should change the timing of the TPC for better detection of TUSB2046B. Thanks for your help!

  • Hi,

    Since D- is low the entire time, there is a issue of D+ being low for long with resect to Vbus. As you suspected, the maximum time between valid Vbus and valid D+ pull-up should be 100 ms. Perhaps TCP USB PHY can be woken up a bit earlier to take into account delay by initial pulse.

  • Hi Malik,

    We tried to turn off the VBUS to the DFP4 device from our internal MCU after the connection is established. The issue seems to be gone. Do you think if there are any differences between the first pulse and second pulse for the TUSB2046B USB PHY? 

    We are going to apply this mod as a solution for the customer issue. Please let me know if it's uncertain or might have other side effects.

  • Hi,

    I suspect that the timing between the second valid VBUS and the consistent D+ pull-up is shorter than the first and allow for a valid connection to take place.