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