USB Host Power Initialization Issue

Hello -I have a problem with the USB power not initializing properly when something is plugged into the port on bootup.
The device I am trying to use is a simple GPS device (low power draw), and am running Ubuntu 3.8.13-bone21.

It works just fine to hot-plug, but will not work when it is plugged in on boot (coldplug?).
I tried it both with the BBB powered from the USB client, and then with a lab-grade external supply.
Unplugging the GPS and plugging back in does nothing. -Only a reboot of the BBB and a hotplug will work.

There is an additional line when running ‘dmesg’ for the case where the USB does not work:
dsps_interrupt 370: VBUS error workaround (delay coming)

I have not been able to find much about this error, or how to correct it.
In one case, the problem was seemingly hardware related (a backwards zener preventing a 5v sense): http://e2e.ti.com/support/arm/sitara_arm/f/791/t/233404.aspx.
I also am unsure if it is trying again after the delay, or what could be causing the error in the first place…

Any ideas? -I’m not sure what is going on. -Thanks!

What zener are you talking about?

Gerald

Because this error seems to be uncommon, the link I posted was one of the only ones I could find that referenced it. It was to the TI AM3x ARM forum where, although they are discussing hardware based on the same series of processors, they were likely not discussing the BBB -so the zener is probably not a factor here as the BBB uses power management ICs…

A small change to the hardware fixed the issue -there is no capacitor on the USB power bus (Rev. A5A), as recommended by the TPS2051 datasheet. Added a capacitor (smaller than recommended) and it works! See my scope images here: http://e2e.ti.com/support/arm/sitara_arm/f/791/t/277952.aspx

The capacitor is behind the switch. Otherwise when you turn on the switch via the SW, you short out the 5V with the discharged capacitor. I have used this for five years with no issues. Now, if you device pulls more than 100mA on power up and more than 500ma after enumeration, violating the specification, then yes, you may need more capacitance to fix that issue, Another option is to plug in in before power up.

Gerald

I understand about the 100uf being behind the switch -I think it would be good to have both -behind to protect against supply droop, and after to allow proper initialization. My device draws less than 90mA at any time. -and the whole issue here was about my USB device being plugged in before power up. One would think that would never be an issue, but it was. My laptop has no problem with this being plugged in before turning on -it still powers it OK. Have a look at my scope shots linked on my previous post. On startup, the switch is not simply being turned on, but pulsed at about 250khz -probably for a reason… (so no problem with a cap after the switch, in fact recommended -see image) I suspect the only reason certain other devices work on powerup is because they have a (even relatively small) capacitor on their input (I tested down to as low as 1uf, and still OK). My device has nothing -direct to a 3.3v regulator -hence the rapid discharge between pulses and the BBB shutdown of the bus…

I had the very same issue today (BBB A5B) while trying some hubs and other devices so I put a 100uF capacitor I had been hanging here between Vbus and gnd and it worked great!

Thanks for your finding!

Can you try adding 50uF across the cap that is already there and see what that does?

Gerald

I just pulled out a brand new beaglebone and tried that with an additional 100uf across C34, and that did not work. -This is expected, because it is the time in which the switch is OFF that is the issue… What I have been doing is modifying most of my beaglebones to add a small smt cap between the usb connector vbus pin near U8 as there is room there (see picture). These caps are 10uF because that is what I had handy…

10uF is not much capacitance. How low can you go and it still work?

Gerald