Apalis T30 WEC7 OS2.3 - USB host fails

We recently deployed WEC7 OS 2.3 to 100 units in the field. We have noticed that USB host fails sometimes on boot up.

We have WEC7 2.3. USB otg pin is tied as host. The registry is configured as both USB ports to be host, meaning we renamed the DLL with an underscore in front for the OTG device. We also have pin mxm.274 tied to output high in config block to enable the 5v regulator on the OTG port in eboot. We confirm after boot using gpiotool that config block is working, and USB regulator should be on as the enable pin is high.

After booting, sometimes you can switch ports by unplugging or switching USB ports, and it will then work.

Our hardware is the same as the reference design. We used good layout on the usb pair, and worked with PCB shop to get correct impedance. It almost looks like the driver loads too quick sometimes and fails. We have sequencing on power rail 5V and then 3.3V with a few hundred milliseconds between.

We will try to repeat on the eval board with debug logs enabled. This has happened with or without USB 2.0 hub device and on various devices including keyboard, mouse, several USB sticks. Seems to happen about 5% of time or less.

Any ideas?

Dear @kswain

One explanation would be that some current limiting devices for the USB voltage are triggered in the startup phase. We saw this in the past, when we added too much decoupling capacitance after the limiter device:

After powering on, there was a high inrush current to charge these capacitors, which triggered the overcurrent detection and in turn switched off the USB voltage.

Regards, Andy

Is there a workaround for this? Like some sort of retry strategy?

If this is happening, we should see the overcurrent pin driven using the Gpiotool? Also, we could measure with a scope to be sure.

Dear @kswain,

We don’t do anything in SW when USBH_OC is triggered, only power cycle the carrier board or toggle the power enable signal going to the USB Power IC chip would solve the issue.

Please let us know if you have any other queries.