we are experiencing issues that appear to be due to the TUSB2046B.
We have an embedded processor running a USB stack connected to a TUSB2046B, all one a single board. When first running the processor, the USB stack runs and initializes, enumerating the TUSB2046B. However, it fails to enumerate a mouse and a keyboard connected to it (even if we connect and disconnect them).
Without restarting the board, I restart the debugger and rerun the whole software and USB stack. This reinitializes the USB stack and now both the TUSB2046B hub as well as the mouse and keyboard enumerate. Just like the gentleman in the following post (2nd from the top), it seems the TUSB2046B seems to toggle the PWRON line for 100ms:
http://e2e.ti.com/support/interface/digital_interface/f/130/t/117140.aspx
The fact that PWRON is triggered on the second run (with the same software) and not on the first is indicative that something else is going on, since the keyboard and mouse only enumerate on the run when this happens. However, I have already removed the TPS2014B switches and hardwired 5V to the two ports, bypassing the TPS2041B switches that were in place. This didn’t seem to help.
Just to confirm:
1) Power Sequence is followed as you and other have explained. I have verified it. In fact, the delay in the pulse was 2ms, I lowered it to 300us to 400us just in case it was causing the issue by taking too long.
2) Crystals and everything else seems to be good (we can enumerate and run after the second run).
3) Although not shown in schematic, we have added 15k pulldowns on both DM and DP, as well as 1.5k pullup on DP. (These changes allow the hub to function properly).
The question is whether the PWRON is related, what is causing it to happen, and how would it affect enumeration of the two devices connected to it.
Schematic should have been provided to you.
Further information:
Using a USB protocol analyzer in between the TUSB2046B and a mouse I've been able to observe the following:
1) On the first run, the TUSB2046B seems to suspend the mouse, so nothing enumerates and nothing happens. Pin 32 of TUSB2046B is LOW, indicating TUSB2046B is not actually suspended itself.
2) On the second run of the processor (without removing board power), the host connects, then suspends (event 8), but then restarts the device, keeps alive, enumerates and works.
Regards,
Gustavo