Battery Charging with USB
Specification Summary
The most up-to-date release of the USB "Battery Charging Specification" is available on the USB-IF website.
The USB "Battery Charging Specification" was introduced as an extension of the USB specifications to enable battery charging over USB charging applications.
- Version 1.0 was released in 2007.
- Version 1.1 was released in 2009. It included major updates to all sections and added data contact, detect protocol, and accessory charger adapter.
- Version 1.2 was released in 2010. It included updates to many electrical parameters, timers, and functional requirements to improve stability, and interoperability.
Charging Ports
BC1.2 provides definitions for three types of downstream ports:
- Standard Downstream Port (SDP): Standard data port. Provides VBUS at the voltage and current level of the implemented USB specification. A device shall draw a maximum of 100 mA upon initial connection, and may only draw up to the standard 500 mA or 900 mA for USB2.0 and USB3.x, respectively, if the host deems that the system power is available and the host allows it. For example, suppose a PD is plugged into an intermediate USB hub that is powered by its upstream port's VBUS connection alone (in USB terms, "bus powered"). In that case, the USB host will be capable of detecting this and will limit the PD to the initial 100 mA limit.
- Dedicated Charging Ports (DCP): DCP can deliver power only up to 1.5A, with no data.
- Charging Downstream Port (CDP): CDPs can deliver data and power up to 1.5A, regardless of the power limits imposed by the USB host during USB device enumeration.
USB Cables and Battery Charging
All BC1.2 defined battery charging mechanisms require the presence of D+ and D- within the USB cable in order to operate. If a cable that does not include the USB D+ and D- data lines are used to make a connection between a charging port and the PD, the PD is always limited to 100 mA maximum current draw.
Standard Downstream Port
SDPs do not respond to the test voltage. Without a response to the test voltage, a PD connected to an SDP will only have the standard USB-specified current available to charge its battery. The PD may still charge the battery if connected to an SDP, but it must be able to limit the peak current it draws on VBUS so as not to exceed specifications.
Dedicated Charging Port
A DCP simply shorts D+ to D- with a 200Ω maximum impedance (RDCP_DAT). No minimum impedance is defined; a direct 0Ω short is permissible. The PD detects this short when it asserts the test voltage checks on D+ and D-. A PD that detects that it is connected to a DCP may or may not attempt to establish a data connection. Devices that do not support BC1.2 operation will still assert D+ to signal it is ready to make a data connection when VBUS of the charging port is detected, but a DCP will not respond.
Charging Downstream Port
CDPs cannot short D+ and D- as these signals are needed for data communications. CDPs monitor the voltage on D+. A CDP constantly monitors D+ for the test voltage sourced from an attached PD. When a voltage is detected on D+, the CDP connects a voltage source to the D- line. A CDP will not react to any test voltages applies to D-.
What a PD Does
Step 1: Connection Detection
Upon making a connection and sensing VBUS, A PD is permitted to draw 100 mA (IUNIT) until it is able to complete the BC1.2 Primary Detection and Secondary Detection handshake. If the device is in a dead battery state, it may charge at 100 mA until it can achieve a power state which is sufficient to perform the BC1.2 handshake.
Step 2: Primary Detection
A PD will perform Primary Detection by applying a 0.5V - 0.7V voltage source (VDP_SRC) to D+.
If connected to a SDP port, D- will remain below 0.4V (VDAT_REF). If an SDP is detected, a PD may elect to skip Secondary Detection and proceed directly to the enumeration stage.
If connected to a DCP or CDP port, a voltage greater than 0.4V (VDAT_REF) will be sensed on D-.
Step 3: Secondary Detection
If A PD supports data and charging, it will next perform a Secondary Detection by applying a 0.5V - 0.7V voltage source (VDM_SRC) to D-.
If connected to a CDP port, D+ will remain below 0.4V (VDAT_REF).
If connected to a DCP port, a voltage greater than 0.4V (VDAT_REF) will be sensed on D+.
Step 4: Load Adjustment and Enumeration
If a PD detects that it is connected to a DCP, it may adjust its load and draw up to 1.5A.
If a PD detects that it is connected to a CDP, it may adjust its load and draw up to 1.5A.
A PD that has sufficient power to operate at the time of connection must enumerate when connected to an SDP or CDP within one second (TSVLD_CON_PWD).
A PD that is in a dead battery state must be able to power on and enumerate when connected to an SDP or CDP within 45 seconds (TSVLD_CON_WKB). If a PD is connected to an SDP and cannot enumerate within 45 seconds, it must reduce its charging current to 2.5 mA (ISUSP) for the duration of the connection until it can power on and connect as a USB device.
BC1.2 Handshake Diagrams
It is simple to observe and interpret the results of the BC1.2 handshaking between a PD and a port using an oscilloscope.
If a PD that supports BC1.2 with data and charging connects to an SDP, the waveform on D+ and D- will appear on an oscilloscope.
If a PD that supports BC1.2 with data and charging connects to a DCP, the waveform on D+ and D- will appear on an oscilloscope.
If a PD that supports BC1.2 with data and charging connects to a CDP, the waveform on D+ and D- will appear on an oscilloscope.
Additional Notes About BC1.2 and PD Charging
In combination with the implemented USB specification, BC1.2 provides a PD the ability to determine how much current it can draw from VBUS. It is the responsibility of the PD to monitor and maintain the charging profile of its battery and not exceed the specified current. Following the completion of the battery charging handshake, a PD may draw current at any level up to the detected maximum level for as long as the connection is maintained. If connected to an SDP, the PD must respect the current draw limits based on the host's configuration of the PD, the data rate of the connection, and the suspend state.
Summary of Rules
A PD that connects to a CDP or DCP is limited to 1.5A (ICDP).
A PD that connects to an SDP at USB3.x speeds is limited to 150 mA (IUNIT) current draw while connected but not yet configured by the host.
A PD that connects to an SDP at USB3.x speeds may be permitted to draw up to 900 mA (ICFG_MAX) by the host after enumeration and configuration is complete.
A PD that connects to an SDP at USB 2.0 speeds is limited to 100 mA (IUNIT) current draw while connected but not configured.
A PD that connects to an SDP at USB 2.0 speeds may be permitted to draw up to 500 mA (ICFG_MAX) by the host after enumeration and configuration is complete.
A PD that connects to an SDP must limit current draw to 2.5 mA (ISUSP) while the bus is in the suspended state.
Dynamically Enabling/Disabling BC1.2
A charging port may only switch modes of operation (i.e., switch from CDP mode to SDP mode or vice versa) by turning off and discharging VBUS, switching modes, and re-enabling VBUS. This will simulate a physical disconnection (from the PD's perspective). This will cause an interruption of the data connection. There is no mechanism for switching modes while maintaining an active data connection.
When switching modes, once VBUS has been switched off and VBUS voltage discharged below 0.7V (VBUS_LKG), a port must leave VBUS turned off for a minimum of 100 ms (TVBUS_REAPP).
Over-current Protection
A charging port is not required to attempt to enforce or enter a Constant Current mode to limit a PD exceeding the negotiated limit. A charging port is required to implement detection and protection against over-current events, but a current limit is not specified by any USB specification. A charging port is minimally required to protect its own system hardware from damage against a hard VBUS short to ground.
A DCP may attempt to automatically re-enable power to the port following a fault without a power cycle or external stimulus, but it is not required to do so.
A CDP charging port must be able to recover and re-enable VBUS within two seconds (TSHTDWN_REC) after a fault event.
VBUS Voltage Requirements
A charger is required to maintain VBUS within the range of 4.75V - 5.25V (VCHG) is measured at the charging port's USB connector receptacle as long as a PD remains within the maximum current draw limit and load application/removal slew limits.
BC1.2 and USB Type-C® Ports
BC1.2 is not only permissible but it is highly recommended for USB Type-C® ports to ensure backward compatibility with Type-C adapter cables (such as Type-C to Micro-B or Type-C to Lightning cables). No special handling or adaptation is required. BC1.2 operation may effectively operate in parallel to any Type-C or USB Power Delivery functions. Note that Type-C connector specification has expanded the permissible 5V range to 4.5V - 5.5V (referred to as vSafe5V in Type-C specification).