SLUSBZ9C August 2015 – September 2016 BQ25120 , BQ25121
PRODUCTION DATA.
The following sections describe in detail the functions provided by the BQ25120. These include linear charger, PWM output, configurable LS/LDO output, Push-button input, reset timer, functional modes, battery monitor, I2C configurability and functions, and safety features.
Ship Mode is the lowest quiescent current state for the device. Ship Mode latches off the device and BAT FET until VIN > VUVLO or the MR button is depressed for tWAKE1 and released. To enter Ship Mode, CD must be pulled high. If the EN_SHIPMODE is written to a 1 while the input is connected, it must first be removed to enter ship mode. This allows the end product with minimal load on the battery, and the end user can enable the device by plugging it into the adapter or by toggling the MR button. The battery voltage must be above the maximum programmable BUVLO threshold in order to exit Ship mode with a MR button press when VIN is not present.. The EN_SHIPMODE bit can be cleared using the I2C interface as well while the input is valid. The following list shows the events that are active during Ship Mode:
High Impedance mode is the lowest quiescent current state while operating from the battery. During Hi-Z mode the SYS output is powered by BAT, the MR input is active, and the LSCTRL input is active. All other circuits are in a low power or sleep state.The LS/LDO output can be enabled in Hi-Z mode with the LSCTRL input. If the LS/LDO output has been enabled through I2C prior to entering Hi-Z mode, it will stay enabled. The CD pin is used to put the device in a high-impedance mode when battery is present and VIN < VUVLO. Drive CD high to enable the device and enter active battery operation when VIN is not valid. When the HZ_MODE bit is written by the host, the I2C interface is disabled if only battery is present. To resume I2C, the CD pin must be toggled. The functionality is shown in Table 1.
CD, State | VIN < VUVLO | VIN > VUVLO |
---|---|---|
L | Hi-Z | Charge Enabled |
H | Active Battery | Charge Disabled |
When the battery above VBATUVLO is connected with no input source, the battery discharge FET is turned on. After the battery rises above VBATUVLO and the deglitch time is reached, the SYS output starts to rise. The current from PMID and SYS is not regulated, but is protected by a short circuit current limit. If the short circuit limit is reached for the deglitch time (tDGL_SC), the battery discharge FET is turned off for the recovery time (tREC_SC). After the recovery time, the battery FET is turned on to test if the short has been removed. If it has not, the FET turns off and the process repeats until the short is removed. This process protects the internal FET from over current. During this event PMID will likely droop and cause SYS to go out of regulation.
To provide designers the most flexibility in optimizing their system, an adjustable BATUVLO is provided. When the voltage drops below the VBATUVLO threshold, the battery discharge FET is turned off. Deeper discharge of the battery enables longer times between charging, but may shorten the battery life. The BATUVLO is adjustable with a fixed 100-mV hysteresis.
If a valid VIN is connected during active battery mode, VIN > VUVLO, the supplement and battery discharge FET is turned on when the battery voltage is above the minimum VBATUVLO.
Drive CD high or write the CE register to disable charge when VIN > VUVLO is present. CD is internally pulled down. When exiting this mode, charging resumes if VIN is present, CD is low and charging is enabled.
All HOST interfaces (CD, SDA/SCL, INT, RESET and LSCTRL) are active no later than 5 ms after SYS reaches the programmed level.
The device implements a simple voltage battery monitor which can be used to determine the depth of discharge. Prior to entering High-Z mode, the device will initiate a VBMON reading. The host can read the latched value for the no-load battery voltage, or initiate a reading using VBMON_READ to see the battery voltage under a known load. The register will be updated and can be read 2ms after a read is initiated. The VBMON voltage threshold is readable with 2% increments with ±1.5% accuracy between 60% and 100% of VBATREG using the VBMON_TH registers. Reading the value during charge is possible, but for the most accurate battery voltage indication, it is recommended to disable charge, initiate a read, and then re-enable charge.
A typical discharge profile for a Li-Ion battery is shown in Table 2. The specific battery to be used in the application should be fully characterized to determine the thresholds that will indicate the appropriate battery status to the user. Two typical examples are shown below, assuming the VBMON reading is taken with no load on the battery.
This function enables a simple 5-bar status indicator with the following typical performance with different VBATREG settings:
VBATREG | BATTERY FULL | 95% to 65% REMAINING CAPACITY |
65% to 35% REMAINING CAPACITY |
35% to 5% REMAINING CAPACITY |
BATTERY EMPTY |
---|---|---|---|---|---|
4.35 V | VBMON > 90% | VBMON = 88% | VBMON = 86% | VBMON = 84% | VBMON < 82% |
4.2 V | VBMON > 98% | VBMON = 94% or 96% | VBMON = 90% or 92% | VBMON = 86% or 88% | VBMON < 84% |
The device enters the low-power sleep mode if the voltage IN falls below the sleep-mode entry threshold and VIN is higher than the undervoltage lockout threshold. In sleep mode, the input is isolated from the battery. This feature prevents draining the battery during the absence of VIN. When VIN < V(BAT) + VSLP, the device turns the battery discharge FET on, sends a 128-µs pulse on the INT output, and the FAULT bits of the register are update over I2C. Once VIN > V(BAT) + VSLP, the device initiates a new charge cycle. The FAULT bits are not cleared until they are read over I2C and the sleep condition no longer exists.
During the normal charging process, if the input power source is not able to support the programmed or default charging current and System load, the supply voltage decreases. Once the supply drops to VIN(DPM), the input DPM current and voltage loops will reduce the input current through the blocking FETs, to prevent the further drop of the supply. The VIN(DPM) threshold is programmable through the I2C register from 4.2 V to 4.9 V in 100-mV steps. It can be disabled completely as well. When the device enters this mode, the charge current may be lower than the set value and the VINDPM_STAT bit is set. If the 2X timer is set, the safety timer is extended while VIN(DPM) is active. Additionally, termination is disabled.
The input overvoltage protection protects the device and downstream components connected to PMID, SYS, and BAT against damage from overvoltage on the input supply. When VIN > VOVP an OVP fault is determined to exist. During the OVP fault, the device turns the battery discharge FET on, sends a single 128-µs pulse on INT, and the FAULT bits are updated over I2C. Once the OVP fault is removed, after the deglitch time, tDGL_OVP, STAT and FAULT bits are cleared and the device returns to normal operation. The FAULT bits are not cleared until they are read in from I2C after the OVP condition no longer exists. The OVP threshold for the device is set to operate from standard USB sources.
The input under-voltage status indication is used to notify the host or other device when the input voltage falls below a desired threshold. When VIN < VUVLO, after the deglitch time tDGL_UVLO, a UVLO fault is determined to exist. During the VIN UVLO fault, the device sends a single 128-µs pulse on INT, and the STAT and FAULT bits are updated over I2C. The FAULT bits are not cleared until they are read in from I2C after the UVLO condition no longer exists.
When a valid input source is connected (VIN > VUVLO and V(BAT) + VSLP < VIN < VOVP), the CE bit in the control register determines whether a charge cycle is initiated. When the CE bit is 1 and a valid input source is connected, the battery discharge FET is turned off, and the output at SYS is regulated depending on the output configuration. A charge cycle is initiated when the CE bit is written to a 0. Alternatively, the CD input can be used to enable and disable charge.
The device supports multiple battery chemistries for single-cell applications. Charging is done through the internal battery MOSFET. There are several loops that influence the charge current: constant current loop (CC), constant voltage loop (CV), input current limit, VDPPM, and VIN(DPM). During the charging process, all loops are enabled and the one that is dominant takes control.
The charge current is regulated to ICHARGE until the voltage between BAT and GND reaches the regulation voltage. The voltage between BAT and GND is regulated to VBATREG (CV Mode) while the charge current naturally tapers down. When termination is enabled, the device monitors the charging current during the CV mode, and once the charge current tapers down to the termination threshold, ITERM, and the battery voltage is above the recharge threshold, the device terminates charge, and turns off the battery charging FET. Termination is disabled when any loop is active other than CV.
With a valid input source connected, the power-path management circuitry monitors the input voltage and current continuously. The current into IN is shared at PMID between charging the battery and powering the system load at PMID, SYS, and LS/LDO. If the sum of the charging and load currents exceeds the preset maximum input current, the input DPM loop reduces input current. If PMID drops below the DPPM voltage threshold, the charging current is reduced by the DPPM loop through the BATFET. If PMID continues to drop after BATFET charging current is reduced to zero, the part enters supplement mode when PMID falls below the supplement mode threshold. Battery termination is disabled while in DPPM mode.
While in DPPM mode, if the charging current falls to zero and the system load current increases beyond the programmed input current limit, the voltage at PMID reduces further. When the PMID voltage drops below the battery voltage by V(BSUP1), the battery supplements the system load. The battery stops supplementing the system load when the voltage on the PMID pin rises above the battery voltage by V(BSUP2). During supplement mode, the battery supplement current is not regulated, however, the short-circuit protection circuit is active. Battery termination is disabled while in supplement mode.
The default mode is used when there is no host, or I2C communication is not available. If the externally programmable pins, ILIM, ISET, and ITERM have resistors connected, that is considered the default mode. If they are tied to GND, the default register settings are used. The default mode can be entered by connecting a valid power source to VIN or the RESET bit is written. Default mode is exited by writing to the I2C interface.
The termination current threshold is user programmable through an external resistor or through registers over I2C. Set the termination current using the IPRETERM pin by connecting a resistor from IPRETERM to GND. The termination can be set between 5% and 20% of the programmed output current set by ISET, using Table 3 for guidance:
IPRE_CHARGE and ITERM | KKIPRETERM | RIPRETERM (STANDARD 1% VALUES) |
UNIT | ||||
---|---|---|---|---|---|---|---|
MIN | TYP (% of ISET) |
MAX | MIN | TYP | MAX | RECOMMENDED RIPRETERM | |
5 | 180 | 200 | 220 | 15000 | Ω | ||
10 | 180 | 200 | 220 | 4990 | Ω | ||
15 | 180 | 200 | 220 | 1650 | Ω | ||
20 | 180 | 200 | 220 | 549 | Ω |
Using the I2C register, the termination current can be programmed with a minimum of 500 µA and a maximum of 37 mA.
The pre-charge current is not independently programmable through the external resistor, and is set at the termination current. The pre-charge and termination currents are programmable using the IPRETERM registers. If no IPRETERM resistor is connected and the pin is tied to GND, the default values in the IPRETERM registers are used. The external value can be used in host mode by configuring the IPRETERM registers. If the external ICHG setting will be used after being in Host mode, the IPRETERM registers should be set to match the desired external threshold for the highest ICHG accuracy.
Termination is disabled when any loop other than CV is active.
The input current limit threshold is user programmable through an external resistor or through registers over I2C. Set the input current limit using the ILIM pin by connecting a resistor from ILIM to GND using Table 4 for guidance. If no ILIM resistor is connected and the pin is tied to GND, the default ILIM register value is used. The external value is not valid once the device enters host mode.
ILIM | KILIM | RILIM (STANDARD 1% VALUES) |
UNIT | ||||
---|---|---|---|---|---|---|---|
MIN | TYP | MAX | MIN | TYP | MAX | ||
0.048469388 | 0.051020408 | 0.053571429 | 190 | 200 | 210 | 3920 | Ω |
0.09047619 | 0.095238095 | 0.1 | 190 | 200 | 210 | 2100 | Ω |
0.146153846 | 0.153846154 | 0.161538462 | 190 | 200 | 210 | 1300 | Ω |
0.19 | 0.2 | 0.21 | 190 | 200 | 210 | 1000 | Ω |
0.285714286 | 0.30075188 | 0.315789474 | 190 | 200 | 210 | 665 | Ω |
0.380761523 | 0.400801603 | 0.420841683 | 190 | 200 | 210 | 499 | Ω |
The device has register programmable input current limits from 50 mA to 400 mA in 50-mA steps. The device is USB-IF compliant for inrush current testing, assuming that the input capacitance to the device is selected to be small enough to prevent a violation (<10 µF), as this current is not limited.
The fast charge current is user programmable through an external resistor or through registers over I2C. Set the fast charge current by connecting a resistor from ISET to GND. If no ISET resistor is connected and the pin is tied to GND, the default ISET register value is used. While charging, if the charge current is using the externally programmed value, the voltage at ISET reflects the actual charging current and can be used to monitor charge current. The current out of ISET is 1/100 (±10%) of the charge current. The charge current can be calculated by using Table 5 for guidance:
ISET | KISET | RISET (STANDARD 1% VALUES) |
UNIT | ||||
---|---|---|---|---|---|---|---|
MIN | TYP | MAX | MIN | TYP | MAX | ||
0.285714286 | 0.30075188 | 0.315789474 | 190 | 200 | 210 | 665 | Ω |
0.19 | 0.2 | 0.21 | 190 | 200 | 210 | 1000 | Ω |
0.126666667 | 0.133333333 | 0.14 | 190 | 200 | 210 | 1500 | Ω |
0.095 | 0.1 | 0.105 | 190 | 200 | 210 | 2000 | Ω |
0.06462585 | 0.068027211 | 0.071428571 | 190 | 200 | 210 | 2940 | Ω |
0.048469388 | 0.051020408 | 0.053571429 | 190 | 200 | 210 | 3920 | Ω |
0.038076152 | 0.04008016 | 0.042084168 | 190 | 200 | 210 | 4990 | Ω |
0.031456954 | 0.033112583 | 0.034768212 | 190 | 200 | 210 | 6040 | Ω |
0.025956284 | 0.027322404 | 0.028688525 | 190 | 200 | 210 | 7320 | Ω |
0.019 | 0.02 | 0.021 | 190 | 200 | 210 | 10000 | Ω |
0.012666667 | 0.013333333 | 0.014 | 190 | 200 | 210 | 15000 | Ω |
0.0095 | 0.01 | 0.0105 | 190 | 200 | 210 | 20000 | Ω |
0.006462585 | 0.006802721 | 0.007142857 | 190 | 200 | 210 | 29400 | Ω |
0.004846939 | 0.005102041 | 0.005357143 | 190 | 200 | 210 | 39200 | Ω |
At the beginning of the charge cycle, the device starts the safety timer. If charging has not terminated before the programmed safety time, tMAXCHG, expires, the device enters idle mode and charging is disabled. The pre-charge safety time, tPRECHG, is 10% of tMAXCHG. When a safety timer fault occurs, a single 128 µs pulse is sent on the INT pin and the STAT and FAULT bits of the status registers are updated over I2C. The CD pin or power must be toggled in order to clear the safety timer fault. The safety timer duration is programmable using the TMR bits. When the safety timer is active, changing the safety timer duration resets the safety timer. The device also contains a 2X_TIMER bit that enables the 2X timer function to prevent premature safety timer expiration when the charge current is reduced by a load on PMID, SYS, LS/LDO or a NTC condition. When t2X_TIMER function is enabled, the timer is allowed to run at half speed when any loop is active other than CC or CV.
In addition to the safety timer, the device contains a 50-second watchdog timer that monitors the host through the I2C interface. Once any I2C transaction is performed on the I2C interface, a watchdog timer is started. The watchdog timer is reset by any transaction by the host using the I2C interface. If the watchdog timer expires without a reset from the I2C interface, all registers except MRRESET_VIN and MRREC are reset to the default values.
The I2C interface allows the user to easily implement the JEITA standard for systems where the battery pack thermistor is monitored by the host. Additionally, the device provides a flexible voltage based TS input for monitoring the battery pack NTC thermistor. The voltage at TS is monitored to determine that the battery is at a safe temperature during charging.
To satisfy the JEITA requirements, four temperature thresholds are monitored: the cold battery threshold, the cool battery threshold, the warm battery threshold, and the hot battery threshold. These temperatures correspond to the V(COLD), V(COOL), V(WARM), and V(HOT) threshold in the Electrical Characteristics. Charging and timers are suspended when V(TS) < V(HOT) or > V(COLD). When V(COOL) < V(TS) < V(COLD), the charging current is reduced to half of the programmed charge current. When V(HOT) < V(TS) < V(WARM), the battery regulation voltage is reduced by 140 mV the programmed charge current.
The TS function is voltage based for maximum flexibility. Connect a resistor divider from VIN to GND with TS connected to the center tap to set the threshold. The connections are shown in Figure 16. The resistor values are calculated using Equation 1 and Equation 2. To disable the TS function, pull TS above TSOFF threshold.
Where
The warm and cool thresholds are not independently programmable. The cool and warm NTC resistances for a selected resistor devider are calculated using Equation 3 and Equation 4.
During the charging process, to prevent overheating in the device, the juntion temperature of the die, TJ, is monitored. When TJ reaches T(SHUTDOWN) the device stops charging, disables the PMID output, disables the SYS output, and disables the LS/LDO output. During the time that T(SHUTDOWN) is exceeded, the safety timer is reset and the watchdog timer continues to operate if in host mode. The charge cycle resumes when TJ falls below T(SHUTDOWN) by T(HYS).
To avoid reaching thremal shutdown, ensure that the system power dissipation is under the limits of the device. The power dissipated by the device can be calculated using Equation 5.
Where
The die junction temperature, TJ, can be estimated based on the expected board performance using Equation 6.
The θJA is largely driven by the board layout. For more information about traditional and new thermal metrics, see the IC Package Thermal Metrics application report SPRA953. Under typical conditions, the time spent in this state is short.
The device contains two open-drain outputs that signal its status and are valid only after the device has completed start-up into a valid state. If the part starts into a fault, interrupts will not be sent. The PG output signals when a valid input source is connected. PG pulls to GND when VIN is above VUVLO. PG is high-impedance when the input power is not within specified limits. Connect PG to the desired logic voltage rail using a 1-kΩ to 100-kΩ resistor, or use with an LED for visual indication.
The PG pin can be configured as a MR shifted (MRS) output when the PGB_MRS bit is set to 1. PG is high-impedance when the MR input is not low, and PG pulls to GND when the MR input is below VOL(TH_MRS). Connect PG to the desired logic voltage rail using a 1-kΩ to 100-kΩ resistor.
When enabled through OTP, the PG pin also functions as an OVP/UVP indicator. When the device is below VSLP or VIN(DPM) (if enabled), a single 128us pulse is sent on PG to notify the host, repeating once per minute. When the device has an input voltage greater than V(BAT) +1 V and VIN is less than VOVP, two consecutive 128us pulses are sent on PG, to notify the host, repeating once per minute. The PG pin does not function as an input power good indicator in this mode.
The INT pin is pulled low during charging when the EN_INT bit is set to 1 and interrupts are pulled high. When EN_INT is set to 0, charging status is not indicated on the INT pin. When charge is complete or disabled, INT is high impedance. The charge status is valid whether it is the first charge or recharge. When a fault occurs, a 128 µs pulse (interrupt) is sent on INT to notify the host.
The device contains a CD input that is used to disable the device and place it into a high impedance mode when only battery is present. In this case, when CD is low, PMID and SYS remain active, and the battery discharge FET is turned on. If the LS/LDO output has been enabled prior to pulling CD low, it will stay on. The LSCTRL pin can also enable/disable the LS/LDO output when the CD pin is pulled low. The CD pin has an internal pull-down.
If VIN is present and the CD input is pulled low, charge is enabled and all other functions remain active. If VIN is present and the CD input is pulled high, charge is disabled.
The device integrates a low quiscent current switching regulator with DCS control allowing high efficiency down to 10-µA load currents. DCS control combines the advantages of hysteretic and voltage mode control. The internally compensated regulation network achieves fast and stable operation with small external components and low ESR capacitors. During PWM mode, it operates in continuous conduction mode, with a frequency up to 2 MHz. If the load current decreases, the converter enters a power save mode to maintain high efficiency down to light loads. In this mode, the device generates a single switching pulse to ramp up the inductor current and recharge the output capacitor, followed by a sleep period where most of the internal circuits are shut down to achieve a low quiescent current. The duration of the sleep period depends on the load current and the inductor peak current.
The output voltage is programmable using the SYS_SEL and SYS_VOUT bits in the SYS VOUT control register.
The SW output is enabled using the EN_SYS_OUT bit in the register. This bit is for testing and debug only and not intended to be used in the final system. When the device is enabled, the internal reference is powered up and the device enters softstart, starts switching, and ramps up the output voltage. When SW is disabled, the output is in shutdown mode in a low quiescent state. The device provides automatic output voltage discharge so the output voltage will ramp up from zero once the device in enabled again. Once SYS has been disabled, either VIN needs to be connected or the MR button must be held low for the tRESET duration to re-enable SYS.
The output is optimized for operation with a 2.2-µH inductor and 10-µF output capacitor. Table 6 shows the recommended LC output filter combinations.
INDUCTOR VALUE (µH) | OUTPUT CAPACITOR VALUE (µF) | ||
---|---|---|---|
4.7 | 10 | 22 | |
2.2 | Possible | Recommended | Possible |
The inductor value affects the peak-to-peak ripple current, the PWM-to-PFM transition point where the part enters and exits Pulse Frequency Modulation to lower the power consumed at low loads, the output voltage ripple and the efficiency. The selected inductor must be selected for its DC resistance and saturation current. The inductor ripple current (ΔIL) can be estimated according to Equation 7.
Use Equation 8 to calculate the maximum inductor current under static load conditions. The saturation current of the inductor should be rated higher than the maximum inductor current. As the size of the inductor decreases, the saturation “knee” must be carefully considered to ensure that the inductance does not decrease during higher load condition or transient. This is recommended because during a heavy load transient the inductor current rises above the calculated value. A more conservative way is to select the inductor saturation current above the high-side MOSFET switch current.
Where
In DC/DC converter applications, the efficiency is affected by the inductor AC resistance and by the inductor DCR value.
Table 7 shows recommended inductor series from different suppliers.
INDUCTANCE (µH) | DCR (Ω) | DIMENSIONS (mm3) | INDUCTOR TYPE | SUPPLIER (1) | COMMENT |
---|---|---|---|---|---|
2.2 | 0.300 | 1.6 x 0.8 x 0.8 | MDT1608CH2R2N | TOKO | Smallest size, 75mA max |
2.2 | 0.170 | 1 .6 x 0.8 x 0.8 | GLFR1608T2R2M | TDK | Smallest size, 150mA max |
2.2 | 0.245 | 2.0 x 1.2 x 1.0 | MDT2012CH2R2N | TOKO | Small size, high efficiency |
2.2 | 0.23 | 2.0 x 1.2 x 1.0 | MIPSZ2012 2R2 | TDK | |
2.2 | 0.225 | 2.0 x 1.6 x 1.0 | 74438343022 | Wurth | |
2.2 | 0.12 | 2.5 x 2.0 x 1.2 | MIPSA2520 2R2 | TDK | |
2.2 | 0.145 | 3.3 x 3.3 x 1.4 | LPS3314 | Coicraft |
The PWM allows the use of small ceramic capacitors. Ceramic capacitors with low ESR values have the lowest output voltage ripple and are recommended. The output capacitor requires either an X7R or X5R dielectric. At light load currents, the converter operates in Power Save Mode and the output voltage ripple is dependent on the output capacitor value and the PFM peak inductor current. Because the PWM converter has a pulsating input current, a low ESR input capacitor is required on PMID for the best voltage filtering to ensure proper function of the device and to minimize input voltage spikes. For most applications a 10-µF capacitor value is sufficient. The PMID capacitor can be increased to 22 µF for better input voltage filtering.
Table 8 shows the recommended input/output capacitors.
CAPACITANCE (µF) | SIZE | CAPACITOR TYPE | SUPPLIER(1) | COMMENT |
---|---|---|---|---|
10 | 0603 | GRM188R60J106ME84 | Murata | Recommended |
10 | 0402 | CL05A106MP5NUNC | Samsung EMA | Smallest size |
The device integrates a low Iq load switch which can also be used as a regulated output. The LSCTRL pin can be used to turn the load on or off. Activating LSCTRL continuously holds the switch in the on state so long as there is not a fault. The signal is active HI and has a low threshold making it capable of interfacing with low voltage signals. To limit voltage drop or voltage transients, a small ceramic capacitor must be placed close to VINLS. Due to the body diode of the PMOS switch, it is recommended to have the capacitor on VINLS ten times larger than the output capacitor on LS/LDO.
The output voltage is programmable using the LS_LDO bits in the register. The LS/LDO voltage is calculated using Equation 9.
If a value greater than 3.3 V is written, the setting goes to pass-through mode where LS/LDO = VINLS - V(DROPOUT). Table 9 summarizes the control of the LS/LDO output based on the I2C or LSCTRL pin setting:
I2C LS_LDO_EN | PIN LSCTRL | I2C VLDO > 3.3 | LS/LDO Output |
---|---|---|---|
0 | 0 | 0 | Pulldown |
0 | 0 | 1 | Pulldown |
0 | 1 | 0 | VLDO |
0 | 1 | 1 | LSW |
1 | 0 | 0 | VLDO |
1 | 0 | 1 | LSW |
1 | 1 | 0 | VLDO |
1 | 1 | 1 | LSW |
If the output of the LDO is less than the programmed V(SYS) voltage, connect VINLS to SYS. If the output of the LDO is greater than the programmed VSYS voltage, connect VINLS to PMID.
The current capability of the LDO depends on the VINLS input voltage and the programmed output voltage. The full 100-mA output current for 0.8-V output voltage can be achieved when V(VINLS) > 3.25 V. The full 100-mA output current for 3.3-V output voltage can be achieved when V(VINLS) > 3.6 V.
When the LSLDO output is disabled with LSCTRL or through the register, an internal pull-down discharges the output.
The MR input has an internal pull-up to BAT, and MR is functional only when BAT is present or when VIN is valid, stable, and charge is enabled. If MR input is asserted during a transient condition while VIN ramps up the IC may incorrectly turn off the SYS buck output, therefore MR should not be asserted during this condition in order to avoid unwanted shutdown of SYS output rail. The input conditions can be adjusted by using MRWAKE bits for the wake conditions and MRRESET bits for the reset conditions. When a wake condition is met, a 128-µs pulse is sent on INT to notify the host, and the WAKE1 and/or WAKE2 bits are updated on I2C. The MR_WAKE bits and RESET FAULT bits are not cleared until the Push-button Control Register is read from I2C.
When a MR reset condition is met, a 128us pulse is sent on INT to notify the host and a RESET signal is asserted. A reset pulse occurs with duration of tRESET_D only one time after each valid MRRESET condition. The MR pin must be released (go high) and then driven low for the MRWAKE period before RESET asserts again. After RESET is asserted with battery only present, the device enters either Ship mode or Hi-Z mode depending on MRREC register settings. After RESET is asserted with a valid VIN present, the device resumes operation prior to the MR button press. If SYS was disabled prior to RESET, the SYS output is re-enabled if recovering into Hi-Z or Active Battery.
The MRRESET_VIN register can be configured to have RESET asserted by a button press only, or by a button press and VIN present (VUVLO + VSLP < VIN < VOVP).
The device uses an I2C compatible interface to program and read many parameters. I2C is a 2-wire serial interface developed by NXP. The bus consists of a data line (SDA) and a clock line (SCL) with pull-up structures. When the bus is idle, both SDA and SCL lines are pulled high. All the I2C compatible devices connect to the I2C bus through open drain I/O terminals, SDA and SCL. A master device, usually a microcontroller or digital signal processor, controls the bus. The master is responsible for generating the SCL signal and device addresses. The master also generates specific conditions that indicate the START and STOP of data transfer. A slave device receives and/or transmits data on the bus under control of the master device.
The device works as a slave and supports the following data transfer modes, as defined in the I2C BUS Specification: standard mode (100 kbps) and fast mode (400kbps). The interface adds flexibility to the battery management solution, enabling most functions to be programmed to new values depending on the instantaneous application requirements. The I2C circuitry is powered from the battery in active battery mode. The battery voltage must stay above V(BATUVLO) when no VIN is present to maintain proper operation.
The data transfer protocol for standard and fast modes is exactly the same; therefore, they are referred to as the F/S-mode in this document. The device only supports 7-bit addressing. The device 7-bit address is 6A (8-bit shifted address is D4).
To avoid I2C hang-ups, a timer (tI2CRESET) runs duringI2C transactions. If the SDA line is held low longer than tI2CRESET, any additional commands are ignored and the I2C engine is reset. The timeout is reset with START and repeated START conditions and stops when a valid STOP condition is sent.
The master initiates data transfer by generating a start condition. The start condition is when a high-to-low transition occurs on the SDA line while SCL is high, as shown in Figure 19. All I2C-compatible devices should recognize a start condition.
The master then generates the SCL pulses, and transmits the address and the read/write direction bit R/W on the SDA line. During all transmissions, the master ensures that data is valid. A valid data condition requires the SDA line to be stable during the entire high period of the clock pulse (see Figure 20). All devices recognize the address sent by the master and compare it to their internal fixed addresses. Only the slave device with a matching address generates and acknowledge (see Figure 21) by pulling the SDA line low during the entire high period of the ninth SCL cycle. Upon detecting the acknowledge, the master knows that communication link with a slave has been established.
The master generates further SCL cycles to either transmit data to the slave (R/W bit 0) or receive data from the slave (R/W bit 1). In either case, the receiver needs to acknowledge the data sent by the transmitter. An acknowledge signal can either be generated by the master or by the slave, depending on which on is the receiver. The 9-bit valid data sequences consisting of 8-bit data and 1-bit acknowledge can continue as long as necessary. To signal the end of the data transfer, the master generates a stop condition by pulling the SDA line from low to high while the SCL line is high (see Figure 22). This releases the bus and stops the communication link with the addressed slave. All I2C compatible devices must recognize the STOP condition. Upon the receipt of a STOP condition, all devices know that the bus is released, and wait for a START condition followed by a matching address. If a transaction is terminated prematurely, the master needs to send a STOP condition to prevent the slave I2C logic from remaining in an incorrect state. Attempting to read data from register addresses not listed in this section results in 0xFFh being read out.
Memory location 0x00h, Reset State: xx0x xxx1 (bq25120)
7 (MSB) | 6 | 5 | 4 | 3 | 2 | 1 | 0 (LSB) |
x | x | 0 | x | x | x | x | 1 |
R | R | Write Only | R | R | R | R | R |
LEGEND: R/W = Read/Write; R = Read only; -n = value after reset |
Memory location 0x01h, Reset State: xxxx 0000 (bq25120)
7 (MSB) | 6 | 5 | 4 | 3 | 2 | 1 | 0 (LSB) |
x | x | x | x | 0 | 0 | 0 | 0 |
R | R | R | R | R/W | R/W | R/W | R/W |
LEGEND: R/W = Read/Write; R = Read only; -n = value after reset |
Bit | Field | Type | Reset | Description |
---|---|---|---|---|
B7 (MSB) | VIN_OV | R | x | 1 - VIN overvoltage fault. VIN_OV continues to show fault after an I2C read as long as OV exists |
B6 | VIN_UV | R | x | 1 - VIN undervoltage fault. VIN_UV is set when the input falls below VSLP. VIN_UV fault shows only one time. Once read, VIN_UV clears until the the UVLO event occurs. |
B5 | BAT_UVLO | R | x | 1 – BAT_UVLO fault. BAT_UVLO continues to show fault after an I2C read as long as BAT_UVLO conditions exist. |
B4 | BAT_OCP | R | x | 1 – BAT_OCP fault. BAT_OCP is cleared after I2C read. |
B3 | VIN_OV_M | R/W | 0 | 1 – Mask VIN overvoltage fault |
B2 | VIN_UV_M | R/W | 0 | 1 – Mask VIN undervoltage fault |
B1 | BAT_UVLO_M | R/W | 0 | 1 – Mask BAT UVLO fault |
B0 (LSB) | BAT_OCP_M | R/W | 0 | 1 – Mask BAT_OCP fault |
Memory location 0x02h, Reset State: 1xxx 1000 (bq25120)
7 (MSB) | 6 | 5 | 4 | 3 | 2 | 1 | 0 (LSB) |
1 | x | x | x | 1 | 0 | 0 | 0 |
R/W | R | R | R | R/W | R/W | R/W | R/W |
LEGEND: R/W = Read/Write; R = Read only; -n = value after reset |
Memory location 0x03h, Reset State: 0001 0100 (bq25120)
7 (MSB) | 6 | 5 | 4 | 3 | 2 | 1 | 0 (LSB) |
0 | 0 | 0 | 1 | 0 | 1 | 0 | 0 |
R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W |
LEGEND: R/W = Read/Write; R = Read only; -n = value after reset |
Memory location 0x04h, Reset State: 0000 1110 (bq25120)
7 (MSB) | 6 | 5 | 4 | 3 | 2 | 1 | 0 (LSB) |
0 | 0 | 0 | 0 | 1 | 1 | 1 | 0 |
R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W |
LEGEND: R/W = Read/Write; R = Read only; -n = value after reset |
Bit | Field | Type | Reset | Description |
---|---|---|---|---|
B7 (MSB) | IPRETERM_RANGE | R/W | 0 | 0 – to select termination range from 500 µA to 5 mA, IPRETERM bits are 500-µA steps 1 – to select charge range from 6 mA to 37 mA, IPRETERM bits are 1-mA steps |
B6 | IPRETERM_4 | R/W | 0 | Termination current 8 mA or 16 mA |
B5 | IPRETERM_3 | R/W | 0 | Termination current 4 mA or 8 mA |
B4 | IPRETERM_2 | R/W | 0 | Termination current 2 mA or 4 mA |
B3 | IPRETERM_1 | R/W | 1 | Termination current 1 mA or 2 mA |
B2 | IPRETERM_0 | R/W | 1 | Termination current 500 µA or 1 mA |
B1 | TE | R/W | 1 | 0 – Disable charge current termination 1 – Enable charge current termination |
B0 (LSB) | R/W | 0 | ||
IPRETERM_RANGE and IPRETERM bits are used to set the termination and pre-charge current. The ITERM is calculated using the following equation: If IPRETERM_RANGE is 0, then ITERM = 500 µA + ITERMCODE x 500 µA. If IPRETERM_RANGE is 1, then ITERM = 6 mA + ITERMCODE x 1 mA. If a value greater than 5 mA (IPRETERM_RANGE = 0) is written, the setting goes to 5 mA. Termination is disabled if any loop other than CC or DV in control, such as VINDPM, and TS/Cool. The default is programmed by the external resistor on IPRETERM, or if not populated and tied to GND, by OTP. |
Memory location 0x05h, Reset State: 0111 1000 (bq25120)
7 (MSB) | 6 | 5 | 4 | 3 | 2 | 1 | 0 (LSB) |
0 | 1 | 1 | 1 | 1 | 0 | 0 | 0 |
R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W |
LEGEND: R/W = Read/Write; R = Read only; -n = value after reset |
Bit | Field | Type | Reset | Description |
---|---|---|---|---|
B7 (MSB) | VBREG_6 | R/W | 0 | Battery Regulation Voltage: 640 mV |
B6 | VBREG_5 | R/W | 1 | Battery Regulation Voltage: 320 mV |
B5 | VBREG_4 | R/W | 1 | Battery Regulation Voltage: 160 mV |
B4 | VBREG_3 | R/W | 1 | Battery Regulation Voltage: 80 mV |
B3 | VBREG_2 | R/W | 1 | Battery Regulation Voltage: 40 mV |
B2 | VBREG_1 | R/W | 0 | Battery Regulation Voltage: 20 mV |
B1 | VBREG_0 | R/W | 0 | Battery Regulation Voltage: 10 mV |
B0 (LSB) | R/W | 0 | ||
VBREG Bits: Use VBREG bits to set the battery regulation threshold. The VBATREG is calcuated using the following equation: VBATREG = 3.6 V + VBREGCODE x 10 mV. The charge voltage range is from 3.6 V to 4.65 V. If a value greater than 4.65 V is written, the setting goes to 4.65 V. Default is programmed by OTP. |
Memory location 0x06h, Reset State: 1010 1010 (bq25120)
7 (MSB) | 6 | 5 | 4 | 3 | 2 | 1 | 0 (LSB) |
1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 |
R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W |
LEGEND: R/W = Read/Write; R = Read only; -n = value after reset |
Bit | Field | Type | Reset | Description |
---|---|---|---|---|
B7 (MSB) | EN_SYS_OUT | R/W | 1 | 0 – Disable SW 1 – Enable SW (When disabled, output is pulled low) |
B6 | SYS_SEL1 | R/W | 0 | 00 – 1.1 V and 1.2 V selection 01 – 1.3 V through 2.8 V selection, 10 – Not Valid 11 – 1.8 V through 3.3 V selection |
B5 | SYS_SEL0 | R/W | 1 | |
B4 | SYS_VOUT_3 | R/W | 0 | OUT Voltage: 800 mV step if SYS_SEL is 01 or 11 |
B3 | SYS_VOUT_2 | R/W | 1 | OUT Voltage: 400 mV step if SYS_SEL is 01 or 11 |
B2 | SYS_VOUT_1 | R/W | 0 | OUT Voltage: 200 mV step if SYS_SEL is 01 or 11 |
B1 | SYS_VOUT_0 | R/W | 1 | OUT Voltage: 100 mV step if SYS_SEL is 01 or 11 |
B0 (LSB) | 0 | |||
SW_VOUT Bits: Use SYS_SEL and SYS_VOUT bits to set the output on SYS. The SYS voltage is calculated using the following equation: See table below for all VOUT values that can be programmed through SYS_SEL and SYS_VOUT. If SYS_SEL = 01, then SYS = 1.30 V + SYS_VOUTCODE x 100 mV. If SYS_SEL = 11, then SYS = 1.80 V + SYS_VOUTCODE x 100 mV. |
SYS_SEL | SYS_VOUT | TYP | UNIT |
---|---|---|---|
00 | 0000 | 1.1 | V |
00 | 0001 | 1.2 | V |
00 | 0010 | 1.25 | V |
00 | 0011 | 1.333 | V |
00 | 0100 | 1.417 | V |
00 | 0101 | 1.5 | V |
00 | 0110 | 1.583 | V |
00 | 0111 | 1.667 | V |
00 | 1000 | 1.75 | V |
00 | 1001 | 1.833 | V |
00 | 1010 | 1.917 | V |
00 | 1011 | 2 | V |
00 | 1100 | 2.083 | V |
00 | 1101 | 2.167 | V |
00 | 1110 | 2.25 | V |
00 | 1111 | 2.333 | V |
01 | 0000 | 1.3 | V |
01 | 0001 | 1.4 | V |
01 | 0010 | 1.5 | V |
01 | 0011 | 1.6 | V |
01 | 0100 | 1.7 | V |
01 | 0101 | 1.8 | V |
01 | 0110 | 1.9 | V |
01 | 0111 | 2 | V |
01 | 1000 | 2.1 | V |
01 | 1001 | 2.2 | V |
01 | 1010 | 2.3 | V |
01 | 1011 | 2.4 | V |
01 | 1100 | 2.5 | V |
01 | 1101 | 2.6 | V |
01 | 1110 | 2.7 | V |
01 | 1111 | 2.8 | V |
10 | 0000 | 1.5 | V |
10 | 0001 | 1.583 | V |
10 | 0010 | 1.667 | V |
10 | 0011 | 1.75 | V |
10 | 0100 | 1.833 | V |
10 | 0101 | 1.917 | V |
10 | 0110 | 2 | V |
10 | 0111 | 2.083 | V |
10 | 1000 | 2.167 | V |
10 | 1001 | 2.25 | V |
10 | 1010 | 2.333 | V |
10 | 1011 | 2.417 | V |
10 | 1100 | 2.5 | V |
10 | 1101 | 2.583 | V |
10 | 1110 | 2.667 | V |
10 | 1111 | 2.75 | V |
11 | 0000 | 1.8 | V |
11 | 0001 | 1.9 | V |
11 | 0010 | 2 | V |
11 | 0011 | 2.1 | V |
11 | 0100 | 2.2 | V |
11 | 0101 | 2.3 | V |
11 | 0110 | 2.4 | V |
11 | 0111 | 2.5 | V |
11 | 1000 | 2.6 | V |
11 | 1001 | 2.7 | V |
11 | 1010 | 2.8 | V |
11 | 1011 | 2.9 | V |
11 | 1100 | 3 | V |
11 | 1101 | 3.1 | V |
11 | 1110 | 3.2 | V |
11 | 1111 | 3.3 | V |
Memory location 0x07h, Reset State: 0111 110x (bq25120)
7 (MSB) | 6 | 5 | 4 | 3 | 2 | 1 | 0 (LSB) |
0 | 1 | 1 | 1 | 1 | 1 | 0 | x |
R/W | R/W | R/W | R/W | R/W | R/W | R | R |
LEGEND: R/W = Read/Write; R = Read only; -n = value after reset |
Bit | Field | Type | Reset | Description |
---|---|---|---|---|
B7 (MSB) | EN_LS_LDO | R/W | 0 | 0 – Disable LS/LDO 1 – Enable LS/LDO |
B6 | LS_LDO_4 | R/W | 1 | LS/LDO Voltage: 1600 mV |
B5 | LS_LDO_3 | R/W | 1 | LS/LDO Voltage: 800 mV |
B4 | LS_LDO_2 | R/W | 1 | LS/LDO Voltage: 400 mV |
B3 | LS_LDO_1 | R/W | 1 | LS/LDO Voltage: 200 mV |
B2 | LS_LDO_0 | R/W | 1 | LS/LDO Voltage: 100 mV |
B1 | 0 | |||
B0 (LSB) | MRRESET_VIN | R/W | x | 0 – Reset sent when MR Reset time is met 1 – Reset sent when MR Reset time is met and VUVLO + VSLP < VIN < VOVP |
LS_LDO Bits: Use LS_LDO bits to set the LS/LDO output. The LS/LDO voltage is calculated using the following equation: LS/LDO = 0.8 V + LS_LDOCODE x 100 mV. If a value greater than 3.3 V is written, the setting goes to pass-through mode where LS/LDO = VINLS - VDROPOUT. The LS_LDO output can only be changed when the EN_LS_LDO and LSCTRL pin has disabled the output. |
Memory location 0x08h, Reset State: 0110 10xx (bq25120)
7 (MSB) | 6 | 5 | 4 | 3 | 2 | 1 | 0 (LSB) |
0 | 1 | 1 | 0 | 1 | 0 | x | x |
R/W | R/W | R/W | R/W | R/W | R/W | R | R |
LEGEND: R/W = Read/Write; R = Read only; -n = value after reset |
Bit | Field | Type | Reset | Description |
---|---|---|---|---|
B7 (MSB) | MRWAKE1 | R/W | 0 | MR Timer adjustment for WAKE1: 0 – 50 ms < MR 1 – 500 ms < MR |
B6 | MRWAKE2 | R/W | 1 | MR Timer adjustment for WAKE2: 0 –1000 ms < MR 1 – 1500 ms < MR |
B5 | MRREC | R/W | 1 | 0 – After Reset, device enters Ship mode 1 – After Reset, device enters Hi-Z Mode |
B4 | MRRESET_1 | R/W | 0 | MR Timer adjustment for reset: 00 – 4 s ± 10% 01 - 8 s ± 10% 10 - 10 s ± 10% 11 - 14 s ± 10% |
B3 | MRRESET_0 | R/W | 1 | |
B2 | PGB_MR | R/W | 0 | 0 – Output functions as PG
1 – Output functions as voltage shifted push-button (MR) input |
B1 | WAKE1 | R | x | 1 – WAKE1 status. Indicates when the device meets the WAKE1 conditions, and is cleared after I2C read. |
B0 (LSB) | WAKE2 | R | x | 1 – WAKE2 status. Indicates when the device meets the WAKE2 conditions, and is cleared after I2C read. |
Memory location 0x09h, Reset State: 0000 1010 (bq25120)
7 (MSB) | 6 | 5 | 4 | 3 | 2 | 1 | 0 (LSB) |
0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 |
Write | R/W | R/W | R/W | R/W | R/W | R/W | R/W |
LEGEND: R/W = Read/Write; R = Read only; -n = value after reset |
Bit | Field | Type | Reset | Description |
---|---|---|---|---|
B7 (MSB) | RESET | Write only | 0 | Write: 1- Reset all registers to default values 0 – No effect Read: Always get 0 |
B6 | R/W | 0 | N/A | |
B5 | INLIM_2 | R/W | 0 | Input Current Limit: 200 mA |
B4 | INLIM_1 | R/W | 0 | Input Current Limit: 100 mA |
B3 | INLIM_0 | R/W | 1 | Input Current Limit: 50 mA |
B2 | BUVLO_2 | R/W | 0 | 000, 001, 010: BUVLO = 3 V 011: BUVLO = 2.8 V 100: BUVLO = 2.6 V 101: BULVO = 2.4 V 110: BUVLO = 2.2 V 111: BUVLO = Disabled |
B1 | BUVLO_1 | R/W | 1 | |
B0 (LSB) | BUVLO_0 | R/W | 0 | |
INLIM Bits: Use INLIM bits to set the input current limit. The I(INLIM) is calculated using the following equation: I(INLIM) = 50 mA + I(INLIM)CODE x 50 mA. The default is programmed by the external resistor on ILIM, or if not populated and tied to GND, by OTP. |
Memory location 0x0Ah, Reset State: 0xxx xxxx (bq25120)
7 (MSB) | 6 | 5 | 4 | 3 | 2 | 1 | 0 (LSB) |
0 | x | x | x | x | x | x | x |
R/W | R | R | R | R | R | R | R |
LEGEND: R/W = Read/Write; R = Read only; -n = value after reset |
Bit | Field | Type | Reset | Description |
---|---|---|---|---|
B7 (MSB) | VBMON_READ | R/W | 0 | Write 1 to initiate a new VBATREG reading. Read always 0. |
B6 | VBMON_RANGE_1 | R | x | 11 – 90% to 100% of VBATREG 10 – 80% to 90% of VBATREG 01 – 70% to 80% of VBATREG 00 – 60% to 70% of VBATREG |
B5 | VBMON_RANGE_0 | R | x | |
B4 | VBMON_TH_2 | R | x | 111 – Above 8% of VBMON_RANGE 110 – Above 6% of VBMON_RANGE 011 – Above 4% of VBMON_RANGE 010 – Above 2% of VBMON_RANGE 001 – Above 0% of VBMON_RANGE |
B3 | VBMON_TH_1 | R | x | |
B2 | VBMON_TH_0 | R | x | |
B1 | R | x | N/A | |
B0 (LSB) | R | x | N/A | |
The VBMON registers are used to determine the battery voltage. Before entering a low power state, the device will determine the voltage level by starting at VBMON_RANGE 11 (90% to 100%), and if VBMON_TH of 000 is read, then it will move to VBMON_RANGE 10 (80% to 90%) and continue until a non 000 value of VBMON_TH is found. If this does not happen, then VBMON_RANGE and VBMON_TH will be written with 00 000. The VBMON_READ bit can be used to initiate a new reading by writing a 1 to it. Example: A reading of 10 011 indicated a VBAT voltage of between 84% and 86% of the VBATREG setting. |
Memory location 0x0Bh, Reset State: 0100 1010 (bq25120)
7 (MSB) | 6 | 5 | 4 | 3 | 2 | 1 | 0 (LSB) |
0 | 1 | 0 | 0 | 1 | 0 | 1 | 0 |
R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W |
LEGEND: R/W = Read/Write; R = Read only; -n = value after reset |
Bit | Field | Type | Reset | Description |
---|---|---|---|---|
B7 (MSB) | VINDPM_ON | R/W | 0 | 0 - enable VINDPM 1 - disable VINDPM |
B6 | VINDPM_2 | R/W | 1 | Input V(IN_DPM) voltage: 400 mV |
B5 | VINDPM_1 | R/W | 0 | Input V(IN_DPM) voltage: 200 mV |
B4 | VINDPM_0 | R/W | 0 | Input V(IN_DPM) voltage: 100 mV |
B3 | 2XTMR_EN | R/W | 1 | 0 – Timer is not slowed at any time 1 – Timer is slowed by 2x when in any control other than CC or CV |
B2 | TMR_1 | R/W | 0 | Safety Timer Time Limit 00 – 30 minute fast charge 01 – 3 hour fast charge 10 – 9 hour fast charge 11 – Disable safety timers |
B1 | TMR_0 | R/W | 1 | |
B0 (LSB) | 0 | |||
The VINDPM threshold is set using the following equation: VINDPM = 4.2 + VINDPM_CODE x 100 mV |