How to detect 500mA vs 100mA available power over USB (LPC11U68)?

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

How to detect 500mA vs 100mA available power over USB (LPC11U68)?

714 Views
dfenger
Contributor I

We are trying to use a LPC11U68 as a controller for a battery-powered device, and the battery will be charged via USB.  We would like to be standards-compliant, requesting 500mA via the USB configuration and waiting until the port (PC/hub/whatever) confirms that it can supply 500mA.  We have a charger controller that we can set to draw 100mA or 500mA, but I cannot see how to figure out whether or not the PC or hub is OK with providing 500mA vs the default 100mA.

To complicate matters, I'd like to be able to charge at 500mA from a dumb charger as well, so I'd like to be able to distinguish the three cases: connected to a host that allows 500mA, connected to a host that doesn't, and connected to a device that provides power but no data.  (We're early enough in the design cycle that 'you need a detector circuit for a charger' is still a useful answer.)

Labels (2)
0 Kudos
2 Replies

559 Views
Hui_Ma
NXP TechSupport
NXP TechSupport

Hi,

Please refer the  <Freedom expansion boards FRDM-BC3770-EVB and FRDM-BC3770-EVM user guide> document, at page 50 with the VBUS current sense amplifier circuit for your reference.

Wish it helps.


Have a great day,
Mike

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos

559 Views
dfenger
Contributor I

I'm looking for a software solution to determine how much the host will allow me to draw, not a hardware solution to detect how much I am drawing.  We have a fairly good handle on the latter, as the draw of the battery charger circuit can be controlled.

It looks like disconnecting and retrying with different bMaxPower values may do what I want, but I'm having some other compiler troubles that are making it hard to test.  (Will address that in a separate thread.)

0 Kudos