The Texas Instruments bq27220 battery fuel gauge is a single-cell gauge that requires minimal user-configuration and system microcontroller firmware development, leading to quick system bring-up. The bq27220 device uses the Compensated End-of-Discharge Voltage (CEDV) algorithm for fuel gauging, and provides information such as remaining battery capacity (mAh), state-of-charge (%), runtime-to-empty (min), battery voltage (mV), temperature (°C), and state-of-health (%).
The bq27220 battery fuel gauge has ultra-low power consumption in NORMAL (50 μA) and SLEEP (9 μA) modes, leading to longer battery runtime. Configurable interrupts help save system power and free up the host from continuous polling. Accurate temperature sensing is supported via an external thermistor.
Customers can use preloaded CEDV parameters in ROM or can generate custom chemistry parameters using TI's web-based tool, GAUGEPARCAL. Custom-generated parameters can be either programmed in the device RAM by the host on power up of the system or customers can program the parameters to an onboard One-Time Programmable (OTP) memory.
Battery fuel gauging with the bq27220 device requires connections only to PACK+ (P+) and PACK– (P–) for a removable battery pack or embedded battery circuit. The tiny, 9-ball, 1.62 mm × 1.58 mm, 0.5-mm pitch NanoFree™ chip scale package (DSBGA) is ideal for space-constrained applications.
PART NUMBER | PACKAGE | BODY SIZE (NOM) |
---|---|---|
bq27220 | YZF (9) | 1.62 mm × 1.58 mm |
DATE | REVISION | NOTES |
---|---|---|
April 2016 | A | PRODUCT PREVIEW to Production Data |
PIN | TYPE | DESCRIPTION | |
---|---|---|---|
NAME | NUMBER | ||
BAT | C3 | PI, AI(1) | LDO regulator input and battery voltage measurement input. Kelvin sense connect to the positive battery terminal (PACKP). Connect a capacitor (1 µF) between BAT and VSS. Place the capacitor close to the gauge. |
BIN | B1 | DI | Battery insertion detection input. If OpConfig [BI_PU_EN] = 1 (default), a logic low on the pin is detected as battery insertion. For a removable pack, the BIN pin can be connected to VSS through a pulldown resistor on the pack, typically the 10-kΩ thermistor; the system board should use a 1.8-MΩ pullup resistor to VDD to ensure the BIN pin is high when a battery is removed. If the battery is embedded in the system or in the pack, it is recommended to leave [BI_PU_EN] = 1 and use a 10-kΩ pulldown resistor from BIN to VSS. If [BI_PU_EN] = 0, then the host must inform the gauge of battery insertion and removal with the BAT_INSERT and BAT_REMOVE subcommands. A 10-kΩ pulldown resistor should be placed between BIN and VSS, even if this pin is unused. NOTE: The BIN pin must not be shorted directly to VCC or VSS and any pullup resistor on the BIN pin must be connected only to VDD and not an external voltage rail. If an external thermistor is used for temperature input, the thermistor should be connected between this pin and VSS. |
GPOUT | A1 | DO | This open-drain output can be configured to indicate BAT_LOW when the OpConfig [BATLOWEN] bit is set. By default [BATLOWEN] is cleared and this pin performs an interrupt function (SOC_INT) by pulsing for specific events, such as a change in state-of-charge. Signal polarity for these functions is controlled by the [GPIOPOL] configuration bit. This pin should not be left floating, even if unused; therefore, a 10-kΩ pullup resistor is recommended. If the device is in SHUTDOWN mode, toggling GPOUT makes the gauge exit SHUTDOWN. It is recommended to connect GPOUT to a GPIO of the host MCU so that in case of any inadvertent shutdown condition, the gauge can be commanded to come out of SHUTDOWN. |
SCL | A3 | DIO | Slave I2C serial bus for communication with system (Master). Open-drain pins. Use with external 10-kΩ pullup resistors (typical) for each pin. If the external pullup resistors will be disconnected from these pins during normal operation, recommend using external 1-MΩ pulldown resistors to VSS at each pin to avoid floating inputs. |
SDA | A2 | DIO | |
SRN | C2 | AI | Coulomb counter differential inputs expecting an external 10-mΩ, 1% sense resistor. For system-side configurations, Kelvin sense connect SRP to the positive battery terminal (PACKP) side of the external sense resistor. Kelvin sense connect SRN to the other side of the external sense resistor with the positive connection to the system (VSYS). For pack-side configurations with low-side sensing, connect SRP to PACK– and SRN to Cell–. See the Simplified Schematic. No calibration is required. The fuel gauge is pre-calibrated for a standard 10-mΩ, 1% sense resistor. |
SRP | C1 | AI | |
VDD | B3 | PO | 1.8-V regulator output. Decouple with a 2.2-μF ceramic capacitor to VSS. This pin is not intended to provide power for other devices in the system. |
VSS | B2 | PI | Ground pin |
MIN | MAX | UNIT | ||
---|---|---|---|---|
VBAT | BAT pin input voltage range | –0.3 | 6 | V |
VSR | SRP and SRN pins input voltage range | –0.3 | VBAT + 0.3 | V |
Differential voltage across SRP and SRN. ABS(SRP – SRN) | 2 | V | ||
VDD | VDD pin supply voltage range (LDO output) | –0.3 | 2 | V |
VIOD | Open-drain IO pins (SDA, SCL) | –0.3 | 6 | V |
VIOPP | Push-pull IO pins (BIN) | –0.3 | VDD + 0.3 | V |
TA | Operating free-air temperature range | –40 | 85 | °C |
Storage temperature, Tstg | –65 | 150 | °C |
VALUE | UNIT | |||
---|---|---|---|---|
V(ESD) | Electrostatic discharge | Human body model (HBM), per ANSI/ESDA/JEDEC JS-001(1) | ±1500 | V |
Charged-device model (CDM), per JEDEC specification JESD22-C101(2) | ±250 |
MIN | NOM | MAX | UNIT | |||
---|---|---|---|---|---|---|
CBAT(1) | External input capacitor for internal LDO between BAT and VSS | Nominal capacitor values specified. Recommend a 5% ceramic X5R-type capacitor located close to the device. | 0.1 | μF | ||
CLDO18(1) | External output capacitor for internal LDO between VDD and VSS | 2.2 | μF | |||
VPU(1) | External pullup voltage for open-drain pins (SDA, SCL, GPOUT) | 1.62 | 3.6 | V |
THERMAL METRIC(1) | bq27220 | UNIT | |
---|---|---|---|
YZF (DSBGA) | |||
9 PINS | |||
RθJA | Junction-to-ambient thermal resistance | 64.1 | °C/W |
RθJCtop | Junction-to-case (top) thermal resistance | 59.8 | °C/W |
RθJB | Junction-to-board thermal resistance | 52.7 | °C/W |
ψJT | Junction-to-top characterization parameter | 0.3 | °C/W |
ψJB | Junction-to-board characterization parameter | 28.3 | °C/W |
RθJCbot | Junction-to-case (bottom) thermal resistance | 2.4 | °C/W |
PARAMETER | TEST CONDITIONS | MIN | TYP | MAX | UNIT | |
---|---|---|---|---|---|---|
ICC(1) | NORMAL mode current | ILOAD > Sleep Current(2) | 50 | μA | ||
ISLP(1) | SLEEP mode current | ILOAD < Sleep Current(2) | 9 | μA | ||
ISD(1) | SHUTDOWN mode current | Fuel gauge in host commanded SHUTDOWN mode. (LDO regulator output disabled) |
0.6 | μA |
PARAMETER | TEST CONDITIONS | MIN | TYP | MAX | UNIT | |
---|---|---|---|---|---|---|
VIH(OD) | Input voltage, high(2) | External pullup resistor to VPU | VPU × 0.7 | V | ||
VIH(PP) | Input voltage, high (3) | 1.4 | V | |||
VIL | Input voltage, low(2) (3) | 0.6 | V | |||
VOL | Output voltage, low(2) | 0.6 | V | |||
IOH | Output source current, high(2) | 0.5 | mA | |||
IOL(OD) | Output sink current, low(2) | –3 | mA | |||
CIN(1) | Input capacitance(2)(3) | 5 | pF | |||
Ilkg | Input leakage current (SCL, SDA, BIN, GPOUT) |
1 | μA |
PARAMETER | TEST CONDITIONS | MIN | TYP | MAX | UNIT | |
---|---|---|---|---|---|---|
VBAT | BAT pin regulator input | 2.45 | 4.5 | V | ||
VDD | Regulator output voltage | 1.85 | V | |||
UVLOIT+ | VBAT undervoltage lock-out LDO wake-up rising threshold |
2 | V | |||
UVLOIT– | VBAT undervoltage lock-out LDO auto-shutdown falling threshold |
1.95 | V | |||
VWU+(1) | GPOUT (input) LDO Wake-up rising edge threshold(2) | LDO Wake-up from SHUTDOWN mode | 1.2 | V |
PARAMETER | TEST CONDITIONS | MIN | TYP | MAX | UNIT | |
---|---|---|---|---|---|---|
tSHDN(1) | SHUTDOWN entry time | Time delay from SHUTDOWN command to LDO output disable. | 250 | ms | ||
tSHUP(1) | SHUTDOWN GPOUT low time | Minimum low time of GPOUT (input) in SHUTDOWN before WAKEUP | 10 | μs | ||
tVDD(1) | Initial VDD output delay | 13 | ms | |||
tWUVDD(1) | Wake-up VDD output delay | Time delay from rising edge of GPOUT (input) to nominal VDD output. | 8 | ms | ||
tPUCD | Power-up communication delay | Time delay from rising edge of BAT to the Active state. Includes firmware initialization time. | 250 | ms |
PARAMETER | TEST CONDITIONS | MIN | TYP | MAX | UNIT | |
---|---|---|---|---|---|---|
VIN(BAT) | BAT pin voltage measurement range | Voltage divider enabled | 2.45 | 4.5 | V | |
tADC_CONV | Conversion time | 125 | ms | |||
Effective resolution | 15 | bits |
PARAMETER | TEST CONDITIONS | MIN | TYP | MAX | UNIT | |
---|---|---|---|---|---|---|
VSRCM | Input voltage range of SRN, SRP pins | VSS | VBAT | V | ||
VSRDM | Input differential voltage range of VSRP–VSRN | ± 80 | mV | |||
tSR_CONV | Conversion time | Single conversion | 1 | s | ||
Effective Resolution | Single conversion | 16 | bits |
MIN | NOM | MAX | UNIT | |||
---|---|---|---|---|---|---|
Standard Mode (100 kHz) | ||||||
td(STA) | Start to first falling edge of SCL | 4 | μs | |||
tw(L) | SCL pulse duration (low) | 4.7 | μs | |||
tw(H) | SCL pulse duration (high) | 4 | μs | |||
tsu(STA) | Setup for repeated start | 4.7 | μs | |||
tsu(DAT) | Data setup time | Host drives SDA | 250 | ns | ||
th(DAT) | Data hold time | Host drives SDA | 0 | ns | ||
tsu(STOP) | Setup time for stop | 4 | μs | |||
t(BUF) | Bus free time between stop and start | Includes Command Waiting Time | 66 | μs | ||
tf | SCL or SDA fall time(1) | 300 | ns | |||
tr | SCL or SDA rise time(1) | 300 | ns | |||
fSCL | Clock frequency(2) | 100 | kHz | |||
Fast Mode (400 kHz) | ||||||
td(STA) | Start to first falling edge of SCL | 600 | ns | |||
tw(L) | SCL pulse duration (low) | 1300 | ns | |||
tw(H) | SCL pulse duration (high) | 600 | ns | |||
tsu(STA) | Setup for repeated start | 600 | ns | |||
tsu(DAT) | Data setup time | Host drives SDA | 100 | ns | ||
th(DAT) | Data hold time | Host drives SDA | 0 | ns | ||
tsu(STOP) | Setup time for stop | 600 | ns | |||
t(BUF) | Bus free time between stop and start | Includes Command Waiting Time | 66 | μs | ||
tf | SCL or SDA fall time(1) | 300 | ns | |||
tr | SCL or SDA rise time(1) | 300 | ns | |||
fSCL | Clock frequency(2) | 400 | kHz |
The bq27220 fuel gauge accurately predicts the battery capacity and other operational characteristics of a single Li-based rechargeable cell. It can be interrogated by a system processor to provide cell information such as state-of-charge (SoC). The bq27220 monitors charge and discharge activity by sensing the voltage across a small value resistor (10 mΩ typical) between the SRP and SRN pins and in series with the battery. By integrating charge passing through the battery, the battery’s SOC is adjusted during battery charge or discharge.
The fuel gauging is derived from the Compensated End of Discharge Voltage (CEDV) method, which uses a mathematical model to correlate remaining state of charge (RSOC) and voltage near to the end of discharge state. This requires a full discharge cycle for a single point FCC update. The implementation models cell voltage (OCV) as a function of battery state of charge (SOC), temperature, and current. The impedance is also a function of SOC and temperature, all of which can be satisfied by using seven parameters: EMF, C0, R0, T0, R1, TC, C1.
NOTE
The following formatting conventions are used in this document:
Commands: italics with parentheses() and no breaking spaces, for example, Control().
Data Flash: italics, bold, and breaking spaces, for example, Design Capacity.
Register bits and flags: italics with brackets [ ], for example, [TDA]
Data flash bits: italics, bold, and brackets [ ], for example, [LED1]
Modes and states: ALL CAPITALS, for example, UNSEALED mode.
Information is accessed through a series of commands called Standard Commands. Further capabilities are provided by the additional Extended Commands set. Both sets of commands, indicated by the general format Command), are used to read and write information within the control and status registers, as well as its data locations. Commands are sent from the system to the gauge using the I2C serial communications engine, and can be executed during application development, system manufacture, or end-equipment operation.
The fuel gauge measures the charging and discharging of the battery by monitoring the voltage across a small-value sense resistor. When a cell is attached to the fuel gauge, cell impedance is computed based on cell current, cell open-circuit voltage (OCV), and cell voltage under loading conditions.
The fuel gauge uses an integrated temperature sensor for estimating cell temperature. Alternatively, the host processor can provide temperature data for the fuel gauge.
For more details, see the bq27220 Technical Reference Manual (SLUUBD4).
The external temperature sensing is optimized with the use of a high accuracy negative temperature coefficient (NTC) thermistor with R25 = 10.0 kΩ ±1%. B25/85 = 3435K ± 1% (such as Semitec NTC 103AT) on the BIN pin. Alternatively, the bq27220 can also be configured to use its internal temperature sensor or receive temperature data from the host processor. The bq27220 uses temperature to monitor the battery-pack environment, which is used for fuel gauging and cell protection functionality.
The fuel gauge supports the standard I2C read, incremental read, quick read, one-byte write, and incremental write functions. The 7-bit device address (ADDR) is the most significant 7 bits of the hex address and is fixed as 1010101. The first 8 bits of the I2C protocol are, therefore, 0xAA or 0xAB for write or read, respectively.
The quick read returns data at the address indicated by the address pointer. The address pointer, a register internal to the I2C communication engine, increments whenever data is acknowledged by the fuel gauge or the I2C master. “Quick writes” function in the same manner and are a convenient means of sending multiple bytes to consecutive command locations (such as two-byte commands that require two bytes of data).
The following command sequences are not supported:
The I2C engine releases both SDA and SCL if the I2C bus is held low for 2 seconds. If the fuel gauge is holding the lines, releasing them frees them for the master to drive the lines. If an external condition is holding either of the lines low, the I2C engine enters the low-power SLEEP mode.
To ensure proper operation at 400 kHz, a t(BUF) ≥ 66 μs bus-free waiting time must be inserted between all packets addressed to the fuel gauge. In addition, if the SCL clock frequency (fSCL) is > 100 kHz, use individual 1-byte write commands for proper data flow control. Figure 9 shows the standard waiting time required between issuing the control subcommand the reading the status result. For read-write standard commands, a minimum of 2 seconds is required to get the result updated. For read-only standard commands, there is no waiting time required, but the host must not issue any standard command more than two times per second. Otherwise, the gauge could result in a reset issue due to the expiration of the watchdog timer.
A clock stretch can occur during all modes of fuel gauge operation. In SLEEP mode, a short ≤ 100-µs clock stretch occurs on all I2C traffic as the device must wake-up to process the packet. In the other modes (INITIALIZATION, NORMAL), a ≤ 4-ms clock stretching period may occur within packets addressed for the fuel gauge as the I2C interface performs normal data flow control.
To minimize power consumption, the fuel gauge has several power modes: INITIALIZATION, NORMAL, and SLEEP. The fuel gauge passes automatically between these modes, depending upon the occurrence of specific events, though a system processor can initiate some of these modes directly. For more details, see the bq27220 Technical Reference Manual (SLUUBD4).
NOTE
Information in the following application section is not part of the TI component specification, and TI does not warrant its accuracy or completeness. TI’s customers are responsible for determining suitability of components for their purposes. Customers should validate and test their design implementation to confirm system functionality.
The bq27220 fuel gauge is a microcontroller peripheral that provides system-side or pack-side fuel gauging for single-cell Li-Ion batteries. The device requires minimal configuration and uses One-Time Programmable (OTP) Non-Volatile Memory (NVM). Battery fuel gauging with the fuel gauge requires connections only to PACK+ and PACK– for a removable battery pack or embedded battery circuit. To allow for optimal performance in the end application, special considerations must be taken to ensure minimization of measurement error through proper printed circuit board (PCB) board layout. Such requirements are detailed in Design Requirements.
As shipped from the Texas Instruments factory, many bq27220 parameters in OTP NVM are left in the unprogrammed state (zero). This partially programmed configuration facilitates customization for each end application. Upon device reset, the contents of OTP are copied to associated volatile RAM-based data memory blocks. For proper operation, all parameters in RAM-based data memory require initialization — either by updating data memory parameters in a lab/evaluation situation or by programming the OTP for customer production. The bq27220 Technical Reference Manual (SLUUBD4) shows the default value and a typically expected value appropriate for most of applications.
A ceramic capacitor at the input to the BAT pin is used to bypass AC voltage ripple to ground, greatly reducing its influence on battery voltage measurements. It proves most effective in applications with load profiles that exhibit high-frequency current pulses (that is, cell phones) but is recommended for use in all applications to reduce noise on this sensitive high-impedance measurement node.
The fuel gauge has an integrated LDO with an output on the VDD pin of approximately 1.8 V. A capacitor with a value of at least 2.2 μF should be connected between the VDD pin and VSS. The capacitor must be placed close to the gauge IC and have short traces to both the VDD pin and VSS. This regulator must not be used to provide power for other devices in the system.
Any variation encountered in the resistance present between the SRP and SRN pins of the fuel gauge will affect the resulting differential voltage, and derived current, that it senses. As such, it is recommended to select a sense resistor with minimal tolerance and temperature coefficient of resistance (TCR) characteristics. The standard recommendation based on the best compromise between performance and price is a 1% tolerance, 50-ppm drift sense resistor with a 1-W power rating.
The fuel gauge temperature sensing circuitry is designed to work with a negative temperature coefficient-type (NTC) thermistor with a characteristic 10-kΩ resistance at room temperature (25°C). The default curve-fitting coefficients configured in the fuel gauge specifically assume a Semitec 103AT type thermistor profile and so that is the default recommendation for thermistor selection purposes. Moving to a separate thermistor resistance profile (for example, JT-2 or others) requires an update to the default thermistor coefficients, which can be modified in RAM to ensure highest accuracy temperature measurement performance.