Texas Instruments bq27441-G1 Use and care manual

bq27441-G1
Technical Reference
Literature Number: SLUUAC9A
December 2013–Revised May 2015

Contents
Preface ........................................................................................................................................ 4
1 General Description.............................................................................................................. 6
2 Functional Description.......................................................................................................... 8
2.1 Fuel Gauging................................................................................................................. 8
2.2 Temperature Measurement................................................................................................. 8
2.3 Current Measurement....................................................................................................... 8
2.4 Operating Modes............................................................................................................. 9
2.4.1 SHUTDOWN Mode................................................................................................. 9
2.4.2 POR and INITIALIZATION Modes................................................................................ 9
2.4.3 CONFIG UPDATE Mode .......................................................................................... 9
2.4.4 NORMAL Mode ..................................................................................................... 9
2.4.5 SLEEP Mode....................................................................................................... 10
2.4.6 HIBERNATE Mode................................................................................................ 10
2.5 Pin Descriptions ............................................................................................................ 12
2.5.1 GPOUT Pin ........................................................................................................ 12
2.5.2 Battery Detection (BIN)........................................................................................... 12
3 Application Examples ......................................................................................................... 14
3.1 Data Memory Parameter Update Example ............................................................................. 14
4 Standard Commands .......................................................................................................... 16
4.1 Control(): 0x00 and 0x01.................................................................................................. 17
4.1.1 CONTROL_STATUS: 0x0000 .................................................................................. 18
4.1.2 DEVICE_TYPE: 0x0001.......................................................................................... 18
4.1.3 FW_VERSION: 0x0002........................................................................................... 18
4.1.4 DM_CODE: 0x0004............................................................................................... 18
4.1.5 PREV_MACWRITE: 0x0007..................................................................................... 18
4.1.6 CHEM_ID: 0x0008 ................................................................................................ 19
4.1.7 BAT_INSERT: 0X000C........................................................................................... 19
4.1.8 BAT_REMOVE: 0X000D......................................................................................... 19
4.1.9 SET_HIBERNATE: 0x0011 ...................................................................................... 19
4.1.10 CLEAR_HIBERNATE: 0x0012 ................................................................................. 19
4.1.11 SET_CFGUPDATE: 0x0013.................................................................................... 19
4.1.12 SHUTDOWN_ENABLE: 0x001B............................................................................... 19
4.1.13 SHUTDOWN: 0x001C........................................................................................... 19
4.1.14 SEALED: 0x0020................................................................................................. 19
4.1.15 PULSE_SOC_INT: 0x0023 ..................................................................................... 20
4.1.16 RESET: 0x0041 .................................................................................................. 20
4.1.17 SOFT_RESET: 0x0042.......................................................................................... 20
4.1.18 EXIT_CFGUPDATE: 0x0043 ................................................................................... 20
4.1.19 EXIT_RESIM: 0x0044 ........................................................................................... 20
4.2 Temperature(): 0x02 and 0x03 ........................................................................................... 20
4.3 Voltage(): 0x04 and 0x05 ................................................................................................. 20
4.4 Flags(): 0x06 and 0x07 ................................................................................................... 21
4.5 NominalAvailableCapacity(): 0x08 and 0x09 ........................................................................... 21
4.6 FullAvailableCapacity(): 0x0A and 0x0B ................................................................................ 21
2Contents SLUUAC9A–December 2013–Revised May 2015
Submit Documentation Feedback
Copyright © 2013–2015, Texas Instruments Incorporated

www.ti.com
4.7 RemainingCapacity(): 0x0C and 0x0D .................................................................................. 21
4.8 FullChargeCapacity(): 0x0E and 0x0F .................................................................................. 22
4.9 AverageCurrent(): 0x10 and 0x11........................................................................................ 22
4.10 StandbyCurrent(): 0x12 and 0x13........................................................................................ 22
4.11 MaxLoadCurrent(): 0x14 and 0x15....................................................................................... 22
4.12 AveragePower(): 0x18 and 0x19......................................................................................... 22
4.13 StateOfCharge(): 0x1C and 0x1D........................................................................................ 22
4.14 InternalTemperature(): 0x1E and 0x1F.................................................................................. 22
4.15 StateOfHealth(): 0x20 and 0x21.......................................................................................... 23
4.16 RemainingCapacityUnfiltered(): 0x28 and 0x29........................................................................ 23
4.17 RemainingCapacityFiltered(): 0x2A and 0x2B.......................................................................... 23
4.18 FullChargeCapacityUnfiltered(): 0x2C and 0x2D ...................................................................... 23
4.19 FullChargeCapacityFiltered(): 0x2E and 0x2F ......................................................................... 23
4.20 StateOfChargeUnfiltered(): 0x30 and 0x31............................................................................. 23
5 Extended Data Commands .................................................................................................. 25
5.1 OpConfig(): 0x3A and 0x3B............................................................................................... 25
5.2 DesignCapacity(): 0x3C and 0x3D....................................................................................... 25
5.3 DataClass(): 0x3E.......................................................................................................... 25
5.4 DataBlock(): 0x3F .......................................................................................................... 25
5.5 BlockData(): 0x40 through 0x5F.......................................................................................... 26
5.6 BlockDataChecksum(): 0x60.............................................................................................. 26
5.7 BlockDataControl(): 0x61.................................................................................................. 26
5.8 Reserved – 0x62 through 0x7F .......................................................................................... 26
6 Data Memory...................................................................................................................... 28
6.1 Data Memory Interface .................................................................................................... 28
6.1.1 Accessing the Data Memory..................................................................................... 28
6.1.2 Access Modes ..................................................................................................... 28
6.1.3 SEALING and UNSEALING Data Memory Access........................................................... 29
6.2 Data Types Summary ..................................................................................................... 29
6.3 bq27441 Data Memory Summary Tables............................................................................... 29
6.4 bq27441 Data Memory Parameter Descriptions ....................................................................... 33
6.4.1 Configuration Class ............................................................................................... 33
6.4.2 Gas (Fuel) Gauging Class ....................................................................................... 37
6.4.3 Ra Table Class .................................................................................................... 48
6.4.4 Calibration Class .................................................................................................. 49
6.4.5 Security Class ..................................................................................................... 51
Revision History.......................................................................................................................... 53
3
SLUUAC9A–December 2013–Revised May 2015 Contents
Submit Documentation Feedback Copyright © 2013–2015, Texas Instruments Incorporated

Read This First
SLUUAC9A–December 2013–Revised May 2015
Preface
This document is a detailed Technical Reference Manual (TRM) for using and configuring the bq27441-G1
battery fuel gauge. This TRM document is intended to complement but not supersede information in the
separate bq27441-G1 datasheet.
Formatting Conventions used in this Document:
Information Type Formatting Convention Example
Commands Italics with parentheses and no breaking spaces RemainingCapacity() command
Data Memory Italics,bold, and breaking spaces Design Capacity data
Register bits and flags Brackets and italics [SOC1] bit
Data Memory bits Brackets, italics, and bold [TEMPS] bit
Modes and states ALL CAPITALS UNSEALED mode
Related Documentation from Texas Instruments
To obtain a copy of any of the following TI documents, call the Texas Instruments Literature Response
Center at (800) 477-8924 or the Support Center at (512) 434-1560. When ordering, identify this document
by its title and literature number. Updated documents also can be obtained through the TI Web site at
www.ti.com.
1. bq27441-G1, System-Side Impedance Track™ Fuel Gauge Data Sheet (SLUSBH1)
2. Quickstart Guide for bq27441-G1 (SLUUAP7)
3. bq27441 EVM: System-Side Impedance Track™ Technology User's Guide (SLUUAP4)
Trademarks
Impedance Track is a trademark of Texas Instruments. All other trademarks are the property of their
respective owners.
4Preface SLUUAC9A–December 2013–Revised May 2015
Submit Documentation Feedback
Copyright © 2013–2015, Texas Instruments Incorporated

Chapter 1
SLUUAC9A–December 2013–Revised May 2015
General Description
The bq27441-G1 battery 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 device is orderable in two predefined
standard configurations:
• The bq27441-G1A fuel gauge is predefined for LiCoO2-based batteries for 4.2-V maximum charge
voltage.
• The bq27441-G1B fuel gauge is predefined for LiCoO2-based batteries for 4.3-V or 4.35-V maximum
charge voltage.
Unlike some other Impedance Track™ fuel gauges, the bq27441-G1 cannot be programmed with specific
battery chemistry profiles. For many battery types and applications, the predefined standard chemistry
profiles available in the bq27441-G1A or bq27441-G1B fuel gauge are sufficient matches from a gauging
perspective.
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 contained 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 key to the high-accuracy, fuel gauging prediction is Texas Instruments proprietary Impedance Track™
algorithm. This algorithm uses cell measurements, characteristics, and properties to create SOC
predictions that can achieve high accuracy across a wide variety of operating conditions and over the
lifetime of the battery.
The fuel gauge measures the charging and discharging of the battery by monitoring the voltage across a
small-value, external sense resistor. Cell impedance is computed based on current, open-circuit voltage
(OCV), and cell voltage under loading conditions.
The fuel gauge uses an integrated temperature sensor for estimating cell temperature. Alternatively, the
system processor can provide temperature data for the fuel gauge.
To minimize power consumption, the fuel gauge has several power modes: INITIALIZATION, NORMAL,
SLEEP, HIBERNATE, and SHUTDOWN. 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.
6General Description SLUUAC9A–December 2013–Revised May 2015
Submit Documentation Feedback
Copyright © 2013–2015, Texas Instruments Incorporated

Chapter 2
SLUUAC9A–December 2013–Revised May 2015
Functional Description
2.1 Fuel Gauging
The bq27441-G1 battery fuel gauge measures the cell voltage, temperature, and current to determine
battery SOC. The fuel gauge monitors the charging and discharging of the battery by sensing the voltage
across a small-value, external sense resistor (10 mΩ, typical) between the SRN and SRP pins. By
integrating the charge passing through the battery, the battery SOC is adjusted during the charging or
discharging of the battery.
The total battery capacity is found by comparing states of charge before and after applying the load with
the amount of charge passed. When an application load is applied, the impedance of the cell is measured
by comparing the OCV obtained from a predefined function for the present SOC with the measured
voltage under load. Measurements of OCV and charge integration determine chemical SOC and chemical
capacity (Qmax). The initial value for Qmax is defined by Design Capacity and should match the cell
manufacturers' data sheet. The fuel gauge acquires and updates the battery-impedance profile during
normal battery usage. The impedance profile, SOC, and the Qmax value are used to determine
FullChargeCapacity() and StateOfCharge(), specifically for the present load and temperature.
FullChargeCapacity() is reported as capacity available from a fully-charged battery under the present load
and temperature until Voltage() reaches the Terminate Voltage.NominalAvailableCapacity() and
FullAvailableCapacity() are the uncompensated (no or light load) versions of RemainingCapacity() and
FullChargeCapacity(), respectively.
The fuel gauge has two flags, [SOC1] and [SOCF], accessed by the Flags() command that warn when the
battery SOC has fallen to critical levels. When StateOfCharge() falls below the first capacity threshold, as
specified in SOC1 Set Threshold, the [SOC1] (state-of-charge initial) flag is set. The flag is cleared once
StateOfCharge() rises above SOC1 Set Threshold. All units are in mAh.
When StateOfCharge() falls below the second capacity threshold, SOCF Set Threshold, the [SOCF]
(state-of-charge final) flag is set, serving as a final discharge warning. If SOCF Set Threshold = –1, the
flag is inoperative during discharge. Similarly, when StateOfCharge() rises above SOCF Clear Threshold
and the [SOCF] flag has already been set, the [SOCF] flag is cleared. All units are in %.
2.2 Temperature Measurement
The fuel gauge measures temperature via its internal on-chip sensor. This internal temperature data will
be used by the Impedance Track™ algorithm if the OpConfig [TEMPS] bit is cleared. Alternatively, if the
OpConfig [TEMPS] bit is set, the system processor can set the temperature for the fuel gauging algorithm
by writing to the Temperature() register.
Regardless of which sensor is used for measurement, the system processor can request the current
battery temperature being used by the algorithm by calling the Temperature() function.
2.3 Current Measurement
The fuel gauge measures current by sensing the voltage across a small-value, external sense resistor (10
mΩ, typical) between the SRN and SRP pins. Internally, voltage passes through a gain stage before
conversion by the coulomb counter. The current measurement data is available via the AverageCurrent()
command.
8Functional Description SLUUAC9A–December 2013–Revised May 2015
Submit Documentation Feedback
Copyright © 2013–2015, Texas Instruments Incorporated

www.ti.com
Operating Modes
2.4 Operating Modes
The fuel gauge has different operating modes: POR, INITIALIZATION, NORMAL, CONFIG UPDATE,
SLEEP, and HIBERNATE. Upon powering up from OFF or SHUTDOWN, a power-on reset (POR) occurs
and the fuel gauge begins INITIALIZATION. In NORMAL mode, the fuel gauge is fully powered and can
execute any allowable task. Configuration data in RAM can be updated by the host using the CONFIG
UPDATE mode. In SLEEP mode, the fuel gauge turns off the high-frequency oscillator clock to enter a
reduced-power state, periodically taking measurements and performing calculations. In HIBERNATE
mode, the fuel gauge is in a very-low-power state, but can be woken up by communication.
2.4.1 SHUTDOWN Mode
In SHUTDOWN mode, the LDO output is disabled so internal power and all RAM-based volatile data are
lost. The host can command the gauge to immediately enter SHUTDOWN mode by first enabling the
mode with a SHUTDOWN_ENABLE subcommand (Section 4.1.12) followed by the SHUTDOWN
subcommand (Section 4.1.13). To exit SHUTDOWN mode, the GPOUT pin must be raised from logic low
to logic high for at least 200 µs.
2.4.2 POR and INITIALIZATION Modes
Upon POR, the fuel gauge copies ROM-based configuration defaults to RAM and begins INITIALIZATION
mode where essential data is initialized. It will remain in INITIALIZATION mode as a halted-CPU state
when an adapter or other power source is present to power the fuel gauge (and system), yet no battery
has been detected. The occurrence of POR or a Control() RESET subcommand will set the Flags()
[ITPOR] status bit to indicate that RAM has returned to ROM default data.
When battery insertion is detected, a series of initialization activities begin including an OCV
measurement. In addition, the CONTROL_STATUS [QMAX_UP] and [RES_UP] bits are cleared to allow
unfiltered learning of Qmax and impedance. Completion of INITIALIZATION mode is indicated by the
CONTROL_STATUS [INITCOMP] bit.
2.4.3 CONFIG UPDATE Mode
If the application requires different configuration data for the fuel gauge, the system processor can update
RAM-based Data Memory parameters using the Control() SET_CFGUPDATE subcommand to enter the
CONFIG UPDATE mode. Operation in this mode is indicated by the Flags() [CFGUPMODE] status bit. In
this mode, fuel gauging is suspended while the host uses the extended data commands to modify the
configuration data blocks.
To resume fuel gauging, the host sends a Control() SOFT_RESET,EXIT_CFGUPMODE, or EXIT_RESIM
subcommand to exit the CONFIG UPDATE mode which clears both Flags() [ITPOR] and [CFGUPMODE]
bits. After a timeout of approximately 240 seconds (4 minutes), the gauge will automatically exit the
CONFIG UPDATE mode if it has not received a SOFT_RESET,EXIT_CFGUPMODE, or EXIT_RESIM
subcommand from the host.
2.4.4 NORMAL Mode
The fuel gauge is in NORMAL mode when not in any other power mode. During this mode,
AverageCurrent(),Voltage(), and Temperature() measurements are taken once per second, and the
interface data set is updated. Decisions to change states are also made. This mode is exited by activating
a different power mode.
Because the gauge consumes the most power in NORMAL mode, the Impedance Track™ algorithm
minimizes the time the fuel gauge remains in this mode.
9
SLUUAC9A–December 2013–Revised May 2015 Functional Description
Submit Documentation Feedback Copyright © 2013–2015, Texas Instruments Incorporated

Operating Modes
www.ti.com
2.4.5 SLEEP Mode
SLEEP mode is entered automatically if the feature is enabled (OpConfig [SLEEP] = 1) and
AverageCurrent() is below the programmable level Sleep Current (default = 10 mA). Once entry into
SLEEP mode has been qualified, but prior to entering it, the fuel gauge performs an ADC autocalibration
to minimize the offset.
During SLEEP mode, the fuel gauge remains in a very-low-power idle state and automatically wakes up
briefly every 20 seconds to take data measurements.
After taking the measurements on the 20-second interval, the fuel gauge will exit SLEEP mode when
AverageCurrent() rises above Sleep Current (default = 10 mA). Alternatively, an early wake-up before the
20-second internal is possible if the instantaneous current detected by an internal hardware comparator is
above an approximate threshold of ±30 mA.
2.4.6 HIBERNATE Mode
HIBERNATE mode could be used when the system equipment needs to enter a very-low-power state, and
minimal gauge power consumption is required. This mode is ideal when system equipment is set to its
own HIBERNATE, SHUTDOWN, or OFF mode.
Before the fuel gauge can enter HIBERNATE mode, the system must use the SET_HIBERNATE
subcommand to set the [HIBERNATE] bit of the CONTROL_STATUS register. The fuel gauge waits to
enter HIBERNATE mode until it has taken a valid OCV measurement and the magnitude of the average
cell current has fallen below Hibernate Current. The fuel gauge can also enter HIBERNATE mode if the
cell voltage falls below the Hibernate Voltage. The fuel gauge will remain in HIBERNATE mode until the
system issues a direct I2C command to the fuel gauge. I2C communication that is not directed to the fuel
gauge will only briefly wake it up and the fuel gauge immediately returns to HIBERNATE mode.
It is the responsibility of the system to wake the fuel gauge after it has gone into HIBERNATE mode and
to prevent a charger from charging the battery before the Flags() [OCVTAKEN] bit is set which signals an
initial OCV reading has been taken. For maximum initialization accuracy, any significant charge or
discharge current should be postponed until the CONTROL_STATUS [INITCOMP] bit is set. This could
take up to 10 seconds. After waking, the fuel gauge can proceed with the initialization of the battery
information. During HIBERNATE mode, RAM-based data values are maintained, but gauging status is
lost. Upon exit from HIBERNATE mode, the fuel gauge will immediately reacquire measurements and
reinitialize all gauging predictions.
10 Functional Description SLUUAC9A–December 2013–Revised May 2015
Submit Documentation Feedback
Copyright © 2013–2015, Texas Instruments Incorporated

Voltage( ) >Sleep Voltage
Fuel gauging and data
updated every 1s
NORMAL
ICC = Sleep
SLEEP
Disable all
subcircuits except GPIO
HIBERNATE
Wakeup From HIBERNATE
I C Traffic but packet address
2
is NOT for gauge
VCELL < POR threshold
Exit From WAIT
_HIBERNATE
Cell relaxed
AND
| AverageCurrent()| <Hibernate
Current
OR
Cell relaxed
AND
VCELL<Hibernate Voltage
System Shutdown
Exit from HIBERNATE
Fuel gauging and data
updated every
20 seconds.
ICC = Sleep
ICC = Hibernate
Initialize algorithm and data
Check for battery insertion
(No gauging in this mode)
ICC = Normal
INITIALIZATION
Copy configuration ROM
default to RAM data
Flags()[ITPOR] = 1
Power on Reset [POR]
REGIN pin > VREGIN min,
VCC pin = OFF
SHUTDOWN
REGIN pin = OFF,
VCC pin = OFF
OFF
Entry to POR
REGIN pin > VREGIN min
Via subcommandRESET
(from any mode)
Exit from SHUTDOWN
GPOUT pin raised HI for at least 200 µs
Exit from CONFIG UPDATE
Flags()[CFGUPMODE] [ITPOR]= 0 and = 0
(Via or a 240 second timeout)SOFT_RESET
Host can change RAM and
NVM based data blocks
(No gauging in this mode)
CONFIG UPDATE
Flags()[BAT_DET] = 0
Exit from Normal
FLAGS()[BAT_DET] = 0
Entry to Normal
FLAGS()[BAT_DET] = 1
Entry to Sleep
Entry to CONFIG UDPATE
Exit from SLEEP
Exit from WAIT_HIBERNATE
Exit to System Shutdown
Host sends and
then commands
(from any mode).
SHUTDOWN_EN
SHUTDOWN
ICC = Normal
Op Config [SLEEP]
Sleep Current
= 1
AND
<| AverageCurrent() |
Fuel gauging and
data update every
20 seconds
Host must set
= 0
V >
CONTROL_STATUS
[HIBERNATE]
AND
CELL Hibernate Voltage
Host has set
= 1
OR
V <
CONTROL_STATUS
[HIBERNATE]
CELL Hibernate Voltage
FLAGS ()[CFGUPMODE]
SET_CFGUDPATE
= 1
(Via
subcommand).
WAIT_HIBERNATE
Host sets = 0
OR
>
OR
Current is Detected above +/–30 mA
Op Config [SLEEP]
Sleep Current| AverageCurrent() |
I C packet addressed to Gauge
OR
Gauge clears
= 0
Recommand Host also set
= 0
2
CONTROL_STATUS
[HIBERNATE]
CONTROL
STATUS [HIBERNATE]
Exit from HIBERNATE
Note: Fast HIBERNATE
allows condition to be
true by default.
Note: Fast HIBERNATE
allows condition to be
true by default
AND
gauge sees cell relaxed
in ~3 seconds
www.ti.com
Operating Modes
Figure 2-1. Power Mode Diagram
11
SLUUAC9A–December 2013–Revised May 2015 Functional Description
Submit Documentation Feedback Copyright © 2013–2015, Texas Instruments Incorporated

Pin Descriptions
www.ti.com
2.5 Pin Descriptions
2.5.1 GPOUT Pin
The GPOUT pin is a multiplexed pin and the polarity of the pin output can be selected via the OpConfig
[GPIOPOL] bit. The function is defined by OpConfig [BATLOWEN] bit. If the bit is set, the Battery Low
Indicator (BAT_LOW) function is selected for the GPOUT pin. If cleared, the SOC interrupt (SOC_INT)
function is selected for the GPOUT pin.
When the BAT_LOW function is activated, the signaling on the multiplexed pin follows the status of the
[SOC1] bit in the Flags() register. The fuel gauge has two flags accessed by the Flags() function that warn
when the battery SOC has fallen to critical levels. When StateOfCharge() falls below the first capacity
threshold, specified in SOC1 Set Threshold, the [SOC1] flag is set. The flag is cleared once
StateOfCharge() rises above SOC1 Set Threshold. The GPOUT pin automatically reflects the status of
the [SOC1] flag when [BATLOWEN] = 1 and [GPIOPOL] = 0. The polarity can be flipped by setting
[GPIOPOL] = 1.
When StateOfCharge() falls below the second capacity threshold, SOCF Set Threshold, the [SOCF] flag
is set, serving as a final discharge warning. Similarly, when StateOfCharge() rises above SOCF Clear
Threshold and the [SOCF] flag has already been set, the [SOCF] flag is cleared.
When the SOC_INT function is activated, the GPOUT pin generates 1-ms pulse width under various
conditions as described in Table 2-1.
Table 2-1. SOC_INT Function Definition
Enable Condition Pulse Width Description
Change in (SOCI Delta)≠0 1 ms During charge, when the SOC is greater than (>) the points:
SOC 100% – n × (SOCI Delta) and 100%;
During discharge, when the SOC reaches (≤) the points:
100% – n × (SOCI Delta) and 0%;
where n is an integer starting from 0 to the number generating SOC no less
than 0%.
Examples:
For SOCI Delta = 1% (default), the SOC_INT intervals are 0%, 1%, 2%, …,
99%, and 100%.
For SOCI Delta = 10%, the SOC_INT intervals are 0%, 10%, 20%, …, 90%,
and 100%.
State Change (SOCI Delta)≠0 1 ms Upon detection of entry to a charge or a discharge state. Relaxation is not
included.
Battery OpConfig [BIE] bit 1 ms When battery removal is detected by the BIN pin.
Removal is set.
Initialization Always 1 ms After initial gauge predictions are updated upon exit from POR or
Complete HIBERNATE, the CONTROL_STATUS [INITCOMP] bit is set.
2.5.2 Battery Detection (BIN)
The function of the OpConfig [BIE] bit is described in Table 2-2. When battery insertion is detected and
the INITIALIZATION mode is completed, the fuel gauge transitions to NORMAL mode to start Impedance
Track™ fuel gauging. When battery insertion is not detected, the fuel gauge remains in INITIALIZATION
mode.
Table 2-2. Battery Detection
OpConfig [BIE] Battery Insertion Requirement Battery Removal Requirement
1 (1) Host drives BIN pin from logic high to low to (1) Host drives the BIN pin from logic low to high
signal battery insertion. to signal battery removal.
or or
(2) A weak pullup resistor can be used (between (2) When a battery pack with a pulldown resistor
the BIN and VCC pins). When a battery pack with is removed, the weak pullup resistor can
a pulldown resistor is connected, it can generate generate a logic high to signal battery removal.
a logic low to signal battery insertion.
0 Host sends BAT_INSERT subcommand to Host sends BAT_REMOVE subcommand to
signal battery insertion. signal battery removal.
12 Functional Description SLUUAC9A–December 2013–Revised May 2015
Submit Documentation Feedback
Copyright © 2013–2015, Texas Instruments Incorporated

Chapter 3
SLUUAC9A–December 2013–Revised May 2015
Application Examples
3.1 Data Memory Parameter Update Example
This following example shows the command sequence needed to modify a Data Memory parameter. For
this example, the default Design Capacity is updated from 1000 mAh to 1200 mAh. All device writes (wr)
and reads (rd) are implied to the I2C 8-bit addresses 0xAA and 0xAB, respectively.
Step Step Description Pseudo Code
1 If the device has been previously SEALED, UNSEAL it by sending the //Two-byte incremental Method
appropriate keys to Control() (0x00 and 0x01). Write the first 2 bytes of the wr 0x00 0x00 0x80;
UNSEAL key using the Control(0x8000) command. Without writing any other wr 0x00 0x00 0x80;
bytes to the device, write the second (identical) 2 bytes of the UNSEAL key //Alternative single byte
using the Control(0x8000) command. method
Note: The remaining steps in this table use this single-packet method when wr 0x00 0x00;
writing multiple bytes. wr 0x01 0x80;
wr 0x00 0x00;
wr 0x01 0x80;
2 Send SET_CFGUPDATE subcommand, Control(0x0013) wr 0x00 0x13 0x00;
3 Confirm CFGUPDATE mode by polling Flags() register until bit 4 is set. May rd 0x06 Flags_register;
take up to 1 second.
4 Write 0x00 using BlockDataControl() command (0x61) to enable block data wr 0x61 0x00;
memory control.
5 Write 0x52 using the DataBlockClass() command (0x3E) to access the State wr 0x3E 0x52;
subclass (82 decimal, 0x52 hex) containing the Design Capacity parameter.
6 Write the block offset location using DataBlock() command (0x3F). wr 0x3F 0x00;
Note: To access data located at offset 0 to 31, use offset = 0x00. To access
data located at offset 32 to 41, use offset = 0x01.
7 Read the 1-byte checksum using the BlockDataChecksum() command (0x60). rd 0x60 OLD_Csum;
Expect 0xE8 for -G1B checksum.
8 Read both Design Capacity bytes starting at 0x4A (offset = 10). Block data rd 0x4A OLD_DesCap_MSB;
starts at 0x40, so to read the data of a specific offset, use address 0x40 + rd 0x4B OLD_DesCap_LSB;
mod(offset, 32). Expect 0x03 0xE8 for -G1B for a 1000-mAh default value.
Note: LSB byte is coincidentally the same value as the checksum.
9 Write both Design Capacity bytes starting at 0x4A (offset = 10). For this wr 0x4A 0x04;
example, the new value is 1200 mAh. (0x04B0 hex) wr 0x4B 0xB0;
10 Compute the new block checksum. The checksum is (255 – x) where x is the temp = mod(255 - OLD_Csum
8-bit summation of the BlockData() (0x40 to 0x5F) on a byte-by-byte basis. A - OLD_DesCap_MSB
quick way to calculate the new checksum uses a data replacement method - OLD_DesCap_LSB, 256);
with the old and new data summation bytes. Refer to the code for the indicated NEW_Csum = 255 - mod(temp +
method. + 0x04 + 0xB0, 256);
11 Write new checksum. The data is actually transferred to the Data Memory wr 0x60 New_Csum;
when the correct checksum for the whole block (0x40 to 0x5F) is written to //Example: wr 0x60 0x1F
BlockDataChecksum() (0x60). For this example New_Csum is 0x1F.
12 Exit CFGUPDATE mode by sending SOFT_RESET subcommand, wr 0x00 0x42 0x00;
Control(0x0042)
13 Confirm CFGUPDATE has been exited by polling Flags() register until bit 4 is rd 0x06 Flags_register;
cleared. May take up to 1 second.
14 If the device was previously SEALED, return to SEALED mode by sending the wr 0x00 0x20 0x00;
Control(0x0020) subcommand.
14 Application Examples SLUUAC9A–December 2013–Revised May 2015
Submit Documentation Feedback
Copyright © 2013–2015, Texas Instruments Incorporated

Chapter 4
SLUUAC9A–December 2013–Revised May 2015
Standard Commands
The fuel gauge uses a series of 2-byte standard commands to enable system reading and writing of
battery information. Each standard command has an associated command-code pair as indicated in
Table 4-1. Because each command consists of two bytes of data, two consecutive I2C transmissions must
be executed both to initiate the command function and to read or write the corresponding two bytes of
data.
Table 4-1. Standard Commands
Name Command Unit SEALED Access
Code
Control() CNTL 0x00 and 0x01 NA RW
Temperature() TEMP 0x02 and 0x03 0.1°K RW
Voltage() VOLT 0x04 and 0x05 mV R
Flags() FLAGS 0x06 and 0x07 NA R
NominalAvailableCapacity() 0x08 and 0x09 mAh R
FullAvailableCapacity() 0x0A and 0x0B mAh R
RemainingCapacity() RM 0x0C and 0x0D mAh R
FullChargeCapacity() FCC 0x0E and 0x0F mAh R
AverageCurrent() 0x10 and 0x11 mA R
StandbyCurrent() 0x12 and 0x13 mA R
MaxLoadCurrent() 0x14 and 0x15 mA R
AveragePower() 0x18 and 0x19 mW R
StateOfCharge() SOC 0x1C and 0x1D % R
InternalTemperature() 0x1E and 0x1F 0.1°K R
StateOfHealth() SOH 0x20 and 0x21 num / % R
RemainingCapacityUnfiltered() 0x28 and 0x29 mAh R
RemainingCapacityFiltered() 0x2A and 0x2B mAh R
FullChargeCapacityUnfiltered() 0x2C and 0x2D mAh R
FullChargeCapacityFlitered() 0x2E and 0x2F mAh R
StateOfChargeUnfiltered() 0x30 and 0x31 mAh R
16 Standard Commands SLUUAC9A–December 2013–Revised May 2015
Submit Documentation Feedback
Copyright © 2013–2015, Texas Instruments Incorporated

www.ti.com
Control(): 0x00 and 0x01
4.1 Control(): 0x00 and 0x01
Issuing a Control() command requires a subsequent 2-byte subcommand. These additional bytes specify
the particular control function desired. The Control() command allows the system to control specific
features of the fuel gauge during normal operation and additional features when the device is in different
access modes as described in Table 4-2.
Table 4-2. Control() Subcommands
Control Function Control Data SEALED Access Description
CONTROL_STATUS 0x0000 Yes Reports the status of device.
DEVICE_TYPE 0x0001 Yes Reports the device type (0x0421).
FW_VERSION 0x0002 Yes Reports the firmware version of the device.
DM_CODE 0x0004 Yes Reports the Data Memory Code number stored in NVM.
PREV_MACWRITE 0x0007 Yes Returns previous MAC command code.
CHEM_ID 0x0008 Yes Reports the chemical identifier of the battery profile used by the fuel
gauge.
BAT_INSERT 0x000C Yes Forces the Flags() [BAT_DET] bit set when the OpConfig [BIE] bit
is 0.
BAT_REMOVE 0x000D Yes Forces the Flags() [BAT_DET] bit clear when the OpConfig [BIE] bit
is 0.
SET_HIBERNATE 0x0011 Yes Forces CONTROL_STATUS [HIBERNATE] bit to 1.
CLEAR_HIBERNATE 0x0012 Yes Forces CONTROL_STATUS [HIBERNATE] bit to 0.
SET_CFGUPDATE 0x0013 No Forces Flags() [CFGUPMODE] bit to 1 and gauge enters CONFIG
UPDATE mode.
SHUTDOWN_ENABLE 0x001B No Enables device SHUTDOWN mode.
SHUTDOWN 0x001C No Commands the device to enter SHUTDOWN mode.
SEALED 0x0020 No Places the device in SEALED access mode.
TOGGLE_GPOUT 0x0023 Yes Commands the device to toggle the GPOUT pin for 1 ms.
RESET 0x0041 No Performs a full device reset.
SOFT_RESET 0x0042 No Gauge exits CONFIG UPDATE mode.
EXIT_CFGUPDATE 0x0043 No Exits CONFIG UPDATE mode without an OCV measurement and
without resimulating to update StateOfCharge().
EXIT_RESIM 0x0044 No Exits CONFIG UPDATE mode without an OCV measurement and
resimulates with the updated configuration data to update
StateOfCharge().
17
SLUUAC9A–December 2013–Revised May 2015 Standard Commands
Submit Documentation Feedback Copyright © 2013–2015, Texas Instruments Incorporated

Control(): 0x00 and 0x01
www.ti.com
4.1.1 CONTROL_STATUS: 0x0000
Instructs the fuel gauge to return status information to Control() addresses 0x00 and 0x01. The read-only
status word contains status bits that are set or cleared either automatically as conditions warrant or
through using specified subcommands.
Table 4-3. CONTROL_STATUS Bit Definitions
bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
High Byte SHUTDOWNEN WDRESET SS CALMODE CCA BCA QMAX_UP RES_UP
Low Byte INITCOMP HIBERNATE RSVD SLEEP LDMD RUP_DIS VOK RSVD
High Byte
SHUTDOWNEN = Indicates the fuel gauge has received the SHUTDOWN_ENABLE subcommand and is enabled for
SHUTDOWN. Active when set.
WDRESET = Indicates the fuel gauge has performed a Watchdog Reset. Active when set.
SS = Indicates the fuel gauge is in the SEALED state. Active when set.
CALMODE = Indicates the fuel gauge is in calibration mode. Active when set.
CCA = Indicates the fuel gauge Coulomb Counter Auto-Calibration routine is active. The CCA routine will take place
approximately 3 minutes and 45 seconds after the initialization as well as periodically as conditions permit.
Active when set.
BCA = Indicates the fuel gauge board calibration routine is active. Active when set.
QMAX_UP = Indicates Qmax has updated. True when set. This bit is cleared after a POR or when the Flags() [BAT_DET]
bit is set. When this bit is cleared, it enables fast learning of battery Qmax.
RES_UP = Indicates that resistance has been updated. True when set. This bit is cleared after a POR or when the
Flags() [BAT_DET] bit is set. Also, this bit can only be set after Qmax is updated ([QMAX_UP] bit is set).
When this bit is cleared, it enables fast learning of battery impedance.
Low Byte
INITCOMP = Initialization completion bit indicating the initialization is complete. True when set.
HIBERNATE = Indicates a request for entry into HIBERNATE from SLEEP mode has been issued. True when set.
RSVD = Reserved
SLEEP = Indicates the fuel gauge is in SLEEP mode. True when set.
LDMD = Indicates the algorithm is using constant-power model. True when set. Default is 1.
RUP_DIS = Indicates the fuel gauge Ra table updates are disabled. Updates are disabled when set.
VOK = Indicates cell voltages are ok for Qmax updates. True when set.
RSVD = Reserved
4.1.2 DEVICE_TYPE: 0x0001
Instructs the fuel gauge to return the device type to addresses 0x00 and 0x01. The value returned is
0x0421. (Note: Value returned is 0x0421 even if the product is bq27441-G1 so the distinguishing
identification requires both DEVICE_TYPE and DM_CODE)
4.1.3 FW_VERSION: 0x0002
Instructs the fuel gauge to return the firmware version to addresses 0x00 and 0x01.
4.1.4 DM_CODE: 0x0004
Instructs the fuel gauge to return the 8-bit DM Code as the least significant byte of the 16-bit return value
at addresses 0x00 and 0x01. The DM_CODE subcommand provides a simple method to determine the
configuration code stored in Data Memory.
4.1.5 PREV_MACWRITE: 0x0007
Instructs the fuel gauge to return the previous command written to addresses 0x00 and 0x01. The value
returned is limited to less than 0x0015.
18 Standard Commands SLUUAC9A–December 2013–Revised May 2015
Submit Documentation Feedback
Copyright © 2013–2015, Texas Instruments Incorporated

www.ti.com
Control(): 0x00 and 0x01
4.1.6 CHEM_ID: 0x0008
Instructs the fuel gauge to return the chemical identifier for the Impedance Track™ configuration to
addresses 0x00 and 0x01. The expected value for bq27441-G1A is 0x0128 and for bq27441-G1B it is
0x0312.
4.1.7 BAT_INSERT: 0X000C
Forces the Flags() [BAT_DET] bit to set when the battery insertion detection is disabled via OpConfig
[BIE] = 0. In this case, the gauge does not detect battery insertion from the BIN pin logic state, but relies
on the BAT_INSERT host subcommand to indicate battery presence in the system. This subcommand
also starts Impedance Track™ gauging.
4.1.8 BAT_REMOVE: 0X000D
Forces the Flags() [BAT_DET] bit to clear when the battery insertion detection is disabled via OpConfig
[BIE] = 0. In this case, the gauge does not detect battery removal from the BIN pin logic state, but relies
on the BAT_REMOVE host subcommand to indicate battery removal from the system.
4.1.9 SET_HIBERNATE: 0x0011
Instructs the fuel gauge to force the CONTROL_STATUS [HIBERNATE] bit to 1. If the necessary
conditions are met, this enables the gauge to enter the HIBERNATE power mode after the transition to
SLEEP power state is detected. The [HIBERNATE] bit is automatically cleared upon exiting from
HIBERNATE mode.
4.1.10 CLEAR_HIBERNATE: 0x0012
Instructs the fuel gauge to force the CONTROL_STATUS [HIBERNATE] bit to 0. This prevents the gauge
from entering the HIBERNATE power mode after the transition to SLEEP power state is detected. It can
also be used to force the gauge out of HIBERNATE mode.
4.1.11 SET_CFGUPDATE: 0x0013
Instructs the fuel gauge to set the Flags() [CFGUPMODE] bit to 1 and enter CONFIG UPDATE mode. This
command is only available when the fuel gauge is UNSEALED.
NOTE: ASOFT_RESET subcommand is typically used to exit CONFIG UPDATE mode to resume
normal gauging.
4.1.12 SHUTDOWN_ENABLE: 0x001B
Instructs the fuel gauge to enable SHUTDOWN mode and set the CONTROL_STATUS [SHUTDOWNEN]
status bit.
4.1.13 SHUTDOWN: 0x001C
Instructs the fuel gauge to immediately enter SHUTDOWN mode after receiving this subcommand. The
SHUTDOWN mode is effectively a power-down mode with only a small circuit biased by the BAT pin
which is used for wake-up detection. To enter SHUTDOWN mode, the SHUTDOWN_ENABLE
subcommand must have been previously received. To exit SHUTDOWN mode, the GPOUT pin must be
raised from logic low to logic high for at least 200 µs.
4.1.14 SEALED: 0x0020
Instructs the fuel gauge to transition from UNSEALED state to SEALED state and will set bit 7 (0x80) in
the Update Status register to 1. The fuel gauge should always be set to the SEALED state for use in end
equipment. The SEALED state blocks accidental writes of specific subcommands (see Table 4-2) and
most Standard and Extended Commands (see Table 4-1 and Table 5-1, respectively).
19
SLUUAC9A–December 2013–Revised May 2015 Standard Commands
Submit Documentation Feedback Copyright © 2013–2015, Texas Instruments Incorporated

Control(): 0x00 and 0x01
www.ti.com
4.1.15 PULSE_SOC_INT: 0x0023
This subcommand can be useful for system level debug or test purposes. It instructs the fuel gauge to
pulse the GPOUT pin for approximately 1 ms within 1 second of receiving the command.
NOTE: The GPOUT pin must be configured for the SOC_INT output function with the OpConfig
[BATLOWEN] bit cleared.
4.1.16 RESET: 0x0041
This command instructs the fuel gauge to perform a full device reset and reinitialize RAM data to the
default values from ROM and is therefore not typically used in field operation. The gauge sets the Flags()
[ITPOR] bit and enters the INITIALIZE mode. See Figure 2-1. This command is only available when the
fuel gauge is UNSEALED.
4.1.17 SOFT_RESET: 0x0042
This subcommand instructs the fuel gauge to perform a partial (soft) reset from any mode with an OCV
measurement. The Flags() [ITPOR] and [CFGUPMODE] bits are cleared and a resimulation occurs to
update both StateOfCharge() and StateOfChargeUnfiltered(). See Figure 2-1. Upon exit from CONFIG
UPDATE mode, the fuel gauge will check bit 7 (0x80) in the Update Status register. If bit 7 (0x80) in the
Update Status register is set, the fuel gauge will be placed into the SEALED state. This subcommand is
only available when the fuel gauge is UNSEALED.
4.1.18 EXIT_CFGUPDATE: 0x0043
This subcommand exits CONFIG UPDATE mode without an OCV measurement and without resimulating
to update StateOfChargeUnfiltered() or StateOfCharge(). The Flags() [ITPOR] and [CFGUPMODE] bits
are cleared. Upon exit from CONFIG UPDATE mode, the fuel gauge will check bit 7 (0x80) in the Update
Status register. If bit 7 (0x80) in the Update Status register is set the fuel gauge will be placed into the
SEALED state.
If a new OCV measurement or resimulation is desired, either the SOFT_RESET or EXIT_RESIM
subcommand should be used to exit CONFIG UPDATE mode. If EXIT_CFGUPDATE subcommand has
been used to exit CONFIG UPDATE mode, the SOFT_RESET or EXIT_RESIM subcommand will not
provide a new OCV measurement and/or resimulation. To get the new OCV measurement and/or
resimulation the fuel gauge must first be placed into CONFIG UPDATE mode (SET_CFGUPDATE
subcommand) and then the SOFT_RESET or EXIT_RESIM subcommand should be used to exit the
CONFIG UPDATE mode. This subcommand is only available when the fuel gauge is UNSEALED.
4.1.19 EXIT_RESIM: 0x0044
This subcommand exits CONFIG UPDATE mode without an OCV measurement. The Flags() [ITPOR] and
[CFGUPMODE] bits are cleared and a resimulation occurs to update StateOfChargeUnfiltered(). Upon exit
from CONFIG UPDATE mode, the fuel gauge will check bit 7 (0x80) in the Update Status register. If bit 7
(0x80) in the Update Status register is set, the fuel gauge will be placed into the SEALED state. This
subcommand is only available when the fuel gauge is UNSEALED.
4.2 Temperature(): 0x02 and 0x03
This read- and write-word function returns an unsigned integer value of the temperature in units of 0.1°K
measured by the fuel gauge. If OpConfig [TEMPS] bit = 0 (default), a read command will return the
internal temperature sensor value and a write command will be ignored. If OpConfig [TEMPS] bit = 1, a
write command sets the temperature to be used for gauging calculations while a read command returns to
the temperature previously written.
4.3 Voltage(): 0x04 and 0x05
This read-only function returns an unsigned integer value of the measured cell-pack voltage in mV with a
range of 0 to 6000 mV.
20 Standard Commands SLUUAC9A–December 2013–Revised May 2015
Submit Documentation Feedback
Copyright © 2013–2015, Texas Instruments Incorporated
Table of contents
Other Texas Instruments Measuring Instrument manuals

Texas Instruments
Texas Instruments TLV320AIC12 User manual

Texas Instruments
Texas Instruments PHP2700 User manual

Texas Instruments
Texas Instruments BQ7961-Q1 Series User manual

Texas Instruments
Texas Instruments MSP-EXPCC430RFx User manual

Texas Instruments
Texas Instruments TIDA-010037 User manual

Texas Instruments
Texas Instruments GTLP User manual

Texas Instruments
Texas Instruments TPS3703 User manual

Texas Instruments
Texas Instruments TI-34 - MultiView Scientific Calculator User manual

Texas Instruments
Texas Instruments MSP-SA430-SUB1GHZ User manual

Texas Instruments
Texas Instruments TMP116METER-EVM User manual