Hi,
we have a hardware design using both USBs of the AM3352 as hosts (i.e. both have a type A receptable). The VBUS is powered with a TPS2052C power distribution switch to let the Sitara turn the VBUS voltage on and off. In an error, our hardware designers did not inlcude the 120 uF low-ESR capacitance near to the USB receptable mentioned in USB spec -- only the "IN" pin of the TPS2052C is buffered with 100 uF, the outputs of the TPs2052C are only stabilized with a 100 nF ceramic cap each.
Because USB memory sticks work flawlessly, this error hasn't been detected up to now and we already have some devices without the 120 uF caps "in the wild". With some Bluetooth USB dongles connected to the device at boot time, we now encounter the issue that the VBUS voltage is only turned on for around 2 ms and the turned off again. This "2ms glitch" is repeated three more times before the VBUS stays turned off until reboot (yellow is the VBUSDRV signal from Sitara, cyan is the VBUS voltage measured close to Sitaras input):
You see the connected Bluetooth USB dongle causes the VBUS voltage to drop a bit after a first peak(because of missing capacitor)
I have spent some time analyzing the issue. From what I read from the USB registers, it looks that the Sitara thinks it is a "B" device and turns off VBUS, because in the case of failure, the MSB in the Mentor DEVCTL register is set.
I already tried to force host mode of the USB core, e.g. by altering the IDDIG and IDDIG_MUX bits in USBxMODE register, but without success. I always end up in the described situation.
Is there some other way to force the USB core to host mode and prevent the VBUS turn off? We do not need the OTG functionality and it would be very helpful if we could provide a SW fix for the devices that miss the capacitor.