Friday, 23 January 2015

How do USB charging and "smart" charging ports (e.g. Anker's PowerIQ) work?


Software engineer with a hobbyist understanding of EE here.


I've noticed lately lots of claims from producers of USB battery packs that their ports are "smart" and "identify the device" to "deliver the maximum current for the device." A cursory look into the matter seems to imply that this isn't completely marketing language, and there is actually something more complicated going on.



Not understanding the subtle chemistry of lithium-ion batteries or the nature of charge controllers, I would guess that to charge a battery as quickly as possible, you would draw as much current as possible, limiting it only to the battery specs. This must not be the case, since it is documented that devices limit their charging to 1A in some cases, when surely they could draw more. Why is this?


If the current draw is so controlled, what's going on with these smart ports to enable the device to draw more current? From a product page for an Anker battery, they claim their ports identify the device and "speak its unique charging language" (that phrasing makes me nauseous). Maybe I shouldn't react so harshly to that phrasing though - are the USB data lines actually used to negotiate some charging pattern?


Thanks!



Answer



There are two additions to the USB specification that allow for more than 500mA current.


usb battery charging specification 1.1. Allows for up to 1.3A.


usb battery charging specification 1.2 (and this). Allows for up to 5A.


Summary:



  • USB 2.0 - BCS 1.1: 1.3A current, no data transmission.


  • USB 2.0 - BCS 1.2: 5A current with data.

  • USB 3.0 - BCS 1.2: 5A current handling but current limited to 1.5A, no data.


More can be found here


Edit: Sometimes the manufacturer doesn't follow the standard and uses something proprietary. Sometimes the "something proprietary" would be to just let the data pins hanging in the air or at a certain voltage and then provide an arbitrary amount of current...


No comments:

Post a Comment

arduino - Can I use TI's cc2541 BLE as micro controller to perform operations/ processing instead of ATmega328P AU to save cost?

I am using arduino pro mini (which contains Atmega328p AU ) along with cc2541(HM-10) to process and transfer data over BLE to smartphone. I...