SLUSB23B October   2012  – June 2015

PRODUCTION DATA.  

  1. Features
  2. Applications
  3. Description
  4. Revision History
  5. Device Comparison Table
  6. Pin Configuration and Functions
  7. Specifications
    1. 7.1  Absolute Maximum Ratings
    2. 7.2  ESD Ratings
    3. 7.3  Recommended Operating Conditions
    4. 7.4  Thermal Information
    5. 7.5  Electrical Characteristics: Power-On Reset
    6. 7.6  2.5-V LDO Regulator
    7. 7.7  Integrating ADC (Coulomb Counter) Characteristics
    8. 7.8  Integrated Sense Resistor Characteristics
    9. 7.9  ADC (Temperature and Cell Measurement) Characteristics
    10. 7.10 EEPROM Memory Characteristics
    11. 7.11 Timing Requirements: I2C-Compatible Interface Communication
    12. 7.12 Typical Characteristics
  8. Detailed Description
    1. 8.1 Overview
    2. 8.2 Functional Block Diagram
    3. 8.3 Feature Description
      1. 8.3.1 Fuel Gauging
      2. 8.3.2 Fuel Gauging Configurations
        1. 8.3.2.1 SOC Smoothing Feature
      3. 8.3.3 GPOUT Pin
      4. 8.3.4 Battery Detection (BIN)
    4. 8.4 Device Functional Modes
      1. 8.4.1 Operating Modes
        1. 8.4.1.1 POR and INITIALIZATION Modes
        2. 8.4.1.2 CONFIG UPDATE Mode
        3. 8.4.1.3 NORMAL Mode
        4. 8.4.1.4 SLEEP Mode
        5. 8.4.1.5 HIBERNATE Mode
    5. 8.5 Programming
      1. 8.5.1 Standard Data Commands
        1. 8.5.1.1  Control(): 0x00 and 0x01
          1. 8.5.1.1.1  CONTROL_STATUS: 0x0000
          2. 8.5.1.1.2  DEVICE_TYPE: 0x0001
          3. 8.5.1.1.3  FW_VERSION: 0x0002
          4. 8.5.1.1.4  PREV_MACWRITE: 0x0007
          5. 8.5.1.1.5  CHEM_ID: 0x0008
          6. 8.5.1.1.6  BAT_INSERT: 0X000C
          7. 8.5.1.1.7  BAT_REMOVE: 0X000D
          8. 8.5.1.1.8  SET_HIBERNATE: 0x0011
          9. 8.5.1.1.9  CLEAR_HIBERNATE: 0x0012
          10. 8.5.1.1.10 SET_CFGUPDATE: 0x0013
          11. 8.5.1.1.11 SEALED: 0x0020
          12. 8.5.1.1.12 RESET: 0x0041
          13. 8.5.1.1.13 SOFT_RESET: 0x0042
        2. 8.5.1.2  Temperature( ): 0x02 and 0x03
        3. 8.5.1.3  Voltage( ): 0x04 and 0x05
        4. 8.5.1.4  Flags( ): 0x06 and 0x07
        5. 8.5.1.5  NominalAvailableCapacity( ): 0x08 and 0x09
        6. 8.5.1.6  FullAvailableCapacity( ): 0x0A and 0x0B
        7. 8.5.1.7  RemainingCapacity( ): 0x0C and 0x0D
        8. 8.5.1.8  FullChargeCapacity( ): 0x0E and 0x0F
        9. 8.5.1.9  AverageCurrent( ): 0x10 and 0x11
        10. 8.5.1.10 AveragePower( ): 0x18 and 0x19
        11. 8.5.1.11 StateOfCharge( ): 0x1C and 0x1D
        12. 8.5.1.12 IntTemperature( ): 0x1E and 0x1F
        13. 8.5.1.13 StateOfHealth( ): 0x20 and 0x21
        14. 8.5.1.14 OperationConfiguration( ): 0x3A and 0x3B
        15. 8.5.1.15 DesignCapacity( ): 0x3C and 0x3D
        16. 8.5.1.16 DebugX( ):
      2. 8.5.2 Extended Data Commands
        1. 8.5.2.1 OperationConfiguration( ): 0x3A and 0x3B
        2. 8.5.2.2 DesignCapacity( ): 0x3C and 0x3D
        3. 8.5.2.3 DataClass( ): 0x3E
        4. 8.5.2.4 DataBlock( ): 0x3F
        5. 8.5.2.5 BlockData( ): 0x40 through 0x5F
        6. 8.5.2.6 BlockDataChecksum( ): 0x60
        7. 8.5.2.7 BlockDataControl( ): 0x61
        8. 8.5.2.8 Reserved: 0x62 through 0x7F
      3. 8.5.3 Block Data Interface
        1. 8.5.3.1 Accessing Block Data
      4. 8.5.4 Access Modes
        1. 8.5.4.1 Sealing and Unsealing Data Blocks
      5. 8.5.5 Data Block Summary
      6. 8.5.6 Detecting Charge Termination
      7. 8.5.7 Communications
        1. 8.5.7.1 I2C Interface
        2. 8.5.7.2 I2C Time Out
        3. 8.5.7.3 I2C Command Waiting Time
        4. 8.5.7.4 I2C Clock Stretching
    6. 8.6 Register Maps
      1. 8.6.1 Operation Configuration (Op Config) Register
  9. Application and Implementation
    1. 9.1 Application Information
    2. 9.2 Typical Application
      1. 9.2.1 Design Requirements
      2. 9.2.2 Detailed Design Procedure
        1. 9.2.2.1 BAT/REGIN Voltage Sense Input
        2. 9.2.2.2 Integrated LDO Capacitor
      3. 9.2.3 Application Curves
  10. 10Power Supply Recommendations
    1. 10.1 Power Supply Decoupling
  11. 11Layout
    1. 11.1 Layout Guidelines
    2. 11.2 Layout Example
  12. 12Device and Documentation Support
    1. 12.1 Community Resources
    2. 12.2 Trademarks
    3. 12.3 Electrostatic Discharge Caution
    4. 12.4 Glossary
  13. 13Mechanical, Packaging, and Orderable Information
    1. 13.1 Packaging
      1. 13.1.1 Package Dimensions

Package Options

Mechanical Data (Package|Pins)
Thermal pad, mechanical data (Package|Pins)
Orderable Information

8 Detailed Description

8.1 Overview

The bq27425 device accurately predicts the battery capacity and other operational characteristics of a single Li-based rechargeable cell. The device can be interrogated by a system processor to provide cell information, such as state-of-charge (SOC).

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 system to 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 gas gauging prediction is Texas Instruments proprietary Impedance Track™ algorithm. This algorithm uses cell measurements, characteristics, and properties to create state-of-charge predictions that can achieve high accuracy across a wide variety of operating conditions and over the lifetime of the battery.

The bq27425 device measures charging and discharging of the battery by monitoring the voltage across a small-value integrated sense resistor (10 mΩ, typical) located between the system VSS and the battery’s PACK– terminal. 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 device uses an integrated temperature sensor for estimating cell temperature. Alternatively, the host processor can provide temperature data for the fuel gauge.

To minimize power consumption, the fuel gauge has several power modes: INITIALIZATION, NORMAL, SLEEP, and HIBERNATE. 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. See Operating Modes.

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

8.2 Functional Block Diagram

bq27425-G2 fbd_slusb23.gif

8.3 Feature Description

8.3.1 Fuel Gauging

The bq27425 is an easy-to-configure fuel gauge that measures the cell voltage, temperature, and current to determine battery state-of-charge (SOC). The fuel gauge monitors the charging and discharging of the battery by sensing the voltage across an integrated small-value resistor (10 mΩ, typical) between the SRX and VSS pins and in series with the cell. By integrating charge passing through the battery, the battery SOC is adjusted during battery charge or discharge.

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 present SOC with the measured voltage under load. Measurements of OCV and charge integration determine chemical SOC and chemical capacity (Qmax). The initial Qmax values are taken from the Design Capacity. The fuel gauge acquires and updates the battery-impedance profile during normal battery usage. It uses this profile, along with SOC and the Qmax value, 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.

8.3.2 Fuel Gauging Configurations

The fuel gauge features easy-to-configure data NVM to speed-up fuel gauging design. Users are required to configure Design Capacity, Termination Voltage, and Operation Configuration (see Operation Configuration (Op Config) Register for details) to achieve optimal performance. The Impedance Track™ algorithm uses these parameters along with built-in parameters to achieve accurate battery fuel gauging.

Several built-in parameters are used in the Impedance Track™ algorithm to identify different modes of battery:

  • Charging: Chg Current Threshold (default = DesignCapacity / 13.3)
  • Discharging: Dsg Current Threshold (default = DesignCapacity / 16.7)
  • Relax: Quit Current Threshold (default = DesignCapacity / 25.0)

To achieve accurate fuel gauging, the fuel gauge uses a Constant Power Model for fuel gauging. This model uses the average discharge power from the beginning of the discharge cycle until present time to compute load-compensated capacity such as RemainingCapacity( ) and FullChargeCapacity( ) in the Impedance Track™ algorithm.

8.3.2.1 SOC Smoothing Feature

Rapid changes in operating conditions, such as temperature or discharge current, can lead to sudden changes in the algorithm's immediate calculation of RemainingCapacity( ), FullChargeCapacity( ), and StateOfCharge( ). SOC Smoothing provides filtered data to the host resulting in more gradual changes to SOC-related data when conditions vary and can provide a better end-user experience. The feature is enabled through Op Config [SMOOTHEN].

8.3.3 GPOUT Pin

The GPOUT pin is a multiplexed pin and the polarity of the pin output can be selected through the [GPIO_POL] bit of the Operation Configuration. The function is defined by Op Config [BATLOWEN]. If set, the Battery Low Indicator (BAT_LOW) function for GPOUT pin is selected. If cleared, the SOC interrupt (SOC_INT) function is selected for GPOUT.

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] (State of Charge Initial) 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 Op Config [BATLOWEN] = 0.

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. 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 1.

Table 1. SOC_INT Function Definition

ENABLE CONDITION PULSE WIDTH DESCRIPTION
Change in SOC (SOCI Delta) ≠ 0 1 ms During charge, when the SOC is greater than (>) the points, 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 Removal [BIE] bit is set in Op Config 1 ms When battery removal is detected by the BIN pin.

8.3.4 Battery Detection (BIN)

The function of Op Config [BIE] bit is described in the Table 2. When battery insertion is detected and 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. Battery Detection

Op Config [BIE] BATTERY INSERTION REQUIREMENT BATTERY REMOVAL REQUIREMENT
1 (1) Host drives BIN pin from logic high to low to signal battery insertion.
or
(2) A weak pullup resistor can be used (between BIN and VCC pins). When battery pack with a pulldown resistor is connected, it can generate a logic low to signal battery insertion.
(1) Host drives BIN pin from logic low to high to signal battery removal.
or
(2) When battery pack with a pulldown resistor is removed, the weak pullup resistor can generate a logic high to signal battery removal.
0 Host sends BAT_INSERT subcommand to signal battery insertion. Host sends BAT_REMOVE subcommand to signal battery removal.

8.4 Device Functional Modes

8.4.1 Operating Modes

The fuel gauge has different operating modes: POR, INITIALIZATION, NORMAL, CONFIG UPDATE, SLEEP, and HIBERNATE. Upon power 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 and NVM 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 or certain IO activity.

In SHUTDOWN mode, the LDO is disabled so internal power and all volatile data is lost. Because no gauging occurs in SHUTDOWN mode, additional gauging error can be introduced if the system has significant battery charge or discharge activity before re-INITIALIZATION.

bq27425-G2 pwr_mode2_lusab23.gif Figure 6. Power Mode Diagram

8.4.1.1 POR and INITIALIZATION Modes

Upon Power On Reset (POR), the fuel gauge copies ROM-based configuration defaults to RAM and begins INITIALIZATION mode where essential data is initialized and will remain in INITIALIZATION mode as halted-CPU state when an adapter, or other power source is present to power the bq27425 (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 CONTROL_STATUS [QMAX_UP] and [RES_UP] bits are cleared to allow fast learning of Qmax and impedance.

Some commands, issued by a system processor, can be processed while the bq27425 is halted in this mode. The gauge will wake up to process the command, and then return to the halted state awaiting battery insertion. The current consumption of INITIALIZATION mode is similar to NORMAL mode.

8.4.1.2 CONFIG UPDATE Mode

If the application requires different configuration data for the bq27425. The host can update both NVM and RAM based parameters using the Control( ) SET_CFGUPDATE subcommand to enter CONFIG UPDATE mode as 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_RESETsubcommand to exit CONFIG UPDATE mode and clear both Flags( ) [ITPOR] and [CFGUPMODE] bits. After a time-out of approximately 240 seconds (4 minutes), the gauge will automatically exit CONFIG UPDATE mode if it has not received a SOFT_RESET subcommand from the host.

8.4.1.3 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.

8.4.1.4 SLEEP Mode

SLEEP mode is entered automatically if the feature is enabled (Operation Configuration [SLEEP]) = 1) and AverageCurrent( ) is less than the programmable level Sleep Current (default = 10 mA). Once entry into SLEEP mode has been qualified, but before entering it, the bq27425 performs an ADC autocalibration to minimize offset.

During SLEEP mode, the bq27425 periodically takes data measurements and updates its data set. However, a majority of its time is spent in an idle condition.

The bq27425 exits SLEEP if any entry condition is broken, specifically when: AverageCurrent( ) rises above Sleep Current (default = 10 mA).

8.4.1.5 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 a system equipment is set to its own HIBERNATE, SHUTDOWN, or OFF modes.

Before the fuel gauge can enter HIBERNATE mode, the system must set the [HIBERNATE] bit of the CONTROL_STATUS register. The 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 gauge can also enter HIBERNATE mode if the cell voltage falls below Hibernate Voltage. The gauge will remain in HIBERNATE mode until the system issues a direct I2C command to the gauge. I2C communication that is not directed to the gauge will only briefly wake it up and the gauge immediately returns to HIBERNATE mode.

It is the system’s responsibility to wake the bq27425 after it has gone into HIBERNATE mode and to prevent a charger from charging the battery before the [OCVTAKEN] bit is set which signals an OCV reading is taken. After waking, the gauge can proceed with the initialization of the battery information.

8.5 Programming

8.5.1 Standard Data 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 3. 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. Additional options for transferring data, such as spooling, are described in I2C Interface. Standard commands are accessible in NORMAL operation. Read/Write permissions depend on the active access mode, SEALED or UNSEALED (for details on the SEALED and UNSEALED states, see Access Modes.)

NOTE

Data values read by the host may be invalid during initialization for a period of up to 3 seconds.

Table 3. Standard Commands

NAME COMMAND
CODE
UNIT SEALED ACCESS
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
Debug1( ) 0x16 and 0x17 num R
AveragePower( ) 0x18 and 0x19 mW R
StateOfCharge( ) SOC 0x1C and 0x1D % R
IntTemperature( ) 0x1E and 0x1F 0.1°K R
StateOfHealth( ) SOH 0x20 and 0x21 % R
Debug2( ) 0x2C and 0x2D num R
Debug3( ) 0x32 and 0x33 num R
OperationConfiguration( ) OpConfig 0x3A and 0x3B NA R
DesignCapacity( ) 0x3C and 0x3D mAh R

8.5.1.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 bq27425 during normal operation and additional features when the bq27425 is in different access modes, as described in Table 4.

Table 4. Control( ) Subcommands

CNTL FUNCTION CNTL DATA SEALED ACCESS DESCRIPTION
CONTROL_STATUS 0x0000 Yes Reports the status of device.
DEVICE_TYPE 0x0001 Yes Reports the device type (0x0425).
FW_VERSION 0x0002 Yes Reports the firmware version of the device.
PREV_MACWRITE 0x0007 Yes Returns previous MAC command code.
CHEM_ID 0x0008 Yes Reports the chemical identifier of the Impedance Track™ configuration
BAT_INSERT 0x000c Yes Forces the Flags() [BAT_DET] bit set when the Op Config [BIE] bit is 0.
BAT_REMOVE 0x000d Yes Forces the Flags() [BAT_DET] bit clear when the Op Config [BIE] bit is 0.
SET_HIBERNATE 0x0011 Yes Forces CONTROL_STATUS [HIBERNATE] to 1.
CLEAR_HIBERNATE 0x0012 Yes Forces CONTROL_STATUS [HIBERNATE] to 0.
SET_CFGUPDATE 0x0013 No Forces Flags( ) [CFGUPMODE] to 1 and gauge enters CONFIG UPDATE mode.
SEALED 0x0020 No Places the bq27425 in SEALED access mode.
RESET 0x0041 No Performs a full device reset.
SOFT_RESET 0x0042 No Gauge exits CONFIG UPDATE mode.

8.5.1.1.1 CONTROL_STATUS: 0x0000

Instructs the fuel gauge to return status information to Control() addresses 0x00 and 0x01. The status word includes the following information.

Table 5. CONTROL_STATUS Bit Definitions

BIT 7 BIT 6 BIT 5 BIT 4 BIT 3 BIT 2 BIT 1 BIT 0
High Byte RSVD RSVD SS CALMODE CCA BCA QMAX_UP RES_UP
Low Byte RSVD HIBERNATE RSVD SLEEP LDMD RUP_DIS VOK RSVD
High Byte
RSVD = Reserved.
SS = Status bit indicating the bq27425 is in the SEALED state. Active when set.
CALMODE = Status bit indicating the bq27425 is in calibration mode. Active when set.
CCA = Status bit indicating the 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 = Status bit indicating the board calibration routine is active. Active when set.
QMAX_UP = Status bit indicating Qmax has Updated. True when set. This bit is cleared after power-on reset or when Flags() [BAT_DET] bit is set. When this bit is cleared, it enables fast learning of battery Qmax.
RES_UP = Status bit indicating that resistance has been updated. True when set. This bit is cleared after power on reset or when Flags() [BAT_DET] bit is set. Also this bit can only be set after Qmax is updated. ([QMAX_UP] is set). When this bit is cleared, it enables fast learning of battery impedance.
Low Byte
HIBERNATE = Status bit indicating a request for entry into HIBERNATE from SLEEP mode has been issued. True when set. Default is 0.
SLEEP = Status bit indicating the bq27425 is in SLEEP mode. True when set.
LDMD = Status bit indicating the algorithm is using constant-power model. True when set. Default is 1.
Note: The bq27425 always uses constant-power model.
RUP_DIS = Status bit indicating the bq27425 Ra table updates are disabled. Updates are disabled when set.
VOK = Status bit indicating cell voltages are OK for Qmax updates. True when set.

8.5.1.1.2 DEVICE_TYPE: 0x0001

Instructs the fuel gauge to return the device type to addresses 0x00 and 0x01. The value returned is 0x0425.

8.5.1.1.3 FW_VERSION: 0x0002

Instructs the fuel gauge to return the firmware version to addresses 0x00 and 0x01. See for the expected data value.

8.5.1.1.4 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.

8.5.1.1.5 CHEM_ID: 0x0008

Instructs the fuel gauge to return the chemical identifier for the Impedance Track™ configuration to addresses 0x00 and 0x01. See for the expected data value.

8.5.1.1.6 BAT_INSERT: 0X000C

This subcommand forces the Flags() [BAT_DET] bit to set when the battery insertion detection is disabled through Op Config [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.

8.5.1.1.7 BAT_REMOVE: 0X000D

This subcommand forces the Flags() [BAT_DET] bit to clear when the battery insertion detection is disabled through Op Config [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.

8.5.1.1.8 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.

8.5.1.1.9 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.

8.5.1.1.10 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

A SOFT_RESET subcommand is typically used to exit CONFIG UPDATE mode to resume normal gauging.

8.5.1.1.11 SEALED: 0x0020

Instructs the fuel gauge to transition from UNSEALED state to SEALED state. The fuel gauge should always be set to SEALED state for use in end equipment.

8.5.1.1.12 RESET: 0x0041

This command instructs the fuel gauge to perform a full device reset and reinitialize RAM data to the default values from ROM. The gauge sets the Flags() [ITPOR] bit and enters the INITIALIZE mode. See Figure 6. This command is only available when the fuel gauge is UNSEALED.

8.5.1.1.13 SOFT_RESET: 0x0042

This command instructs the fuel gauge to perform a partial (soft) reset from any mode with an OCV measurement. The Flags() [ITPOR, CFGUPMODE] bits are cleared and a resimulation occurs to update StateOfCharge( ). See Figure 6. This command is only available when the fuel gauge is UNSEALED.

8.5.1.2 Temperature( ): 0x02 and 0x03

This read-/write-word function returns an unsigned integer value of the temperature in units of 0.1°K measured by the fuel gauge. If Op Config [TEMPS] bit = 0 (default), a read command will return the internal temperature sensor value and write command will be ignored. If Op Config [TEMPS] bit = 1, a write command sets the temperature to be used for gauging calculations while a read command returns to temperature previously written.

8.5.1.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.

8.5.1.4 Flags( ): 0x06 and 0x07

This read-word function returns the contents of the gas gauge status register, depicting the current operating status.

Table 6. Flags Bit Definitions

BIT 7 BIT 6 BIT 5 BIT 4 BIT 3 BIT 2 BIT 1 BIT 0
High Byte OT UT RSVD RSVD RSVD EEFAIL FC CHG
Low Byte OCVTAKEN RSVD ITPOR CFGUPMODE BAT_DET SOC1 SOCF DSG
High Byte
OT = Over-Temperature condition is detected. [OT] is set when Temperature( )Over Temp (default = 55°C). [OT] is cleared when Temperature( ) < Over TempTemp Hys.
UT = Under-Temperature condition is detected. [UT] is set when Temperature( )Under Temp (default = 0°C). [UT] is cleared when Temperature( ) > Under Temp + Temp Hys.
RSVD = Bits 5:3 are reserved.
EEFAIL = EEPROM Write Fail. True when set. This bit is set after a single EEPROM write failure. All subsequent EEPROM writes are disabled. A power-on reset or RESET subcommand is required to clear the bit to re-enable EEPROM writes.
FC = Full-charge is detected. If the FC Set% (default =100%) is a positive threshold , [FC] is set when SOC ≥ FC Set % and is cleared when SOC ≤ FC Clear % (default = 98%). Alternatively, if FC Set% = –1, [FC] is set when the fuel gauge has detected charge termination.
CHG = Fast charging allowed. If the TCA Set% (Terminate Charge Alarm Set %) is a positive threshold (default = 99%), [CHG] is cleared when SOC ≥ TCA Set % and is set when SOC ≤ TCA Clear % (default = 95%). Alternatively, if TCA Set% = –1, the TCA thresholds are disabled and the [CHG] bit is cleared when the fuel gauge has detected a taper condition.
Low Byte
OCVTAKEN = Cleared on entry to relax mode and set to 1 when OCV measurement is performed in relax
RSVD = Reserved.
ITPOR = Indicates a power-on reset or RESET subcommand has occurred. True when set. This bit is cleared after the SOFT_RESET subcommand is received.
CFGUPMODE = Fuel gauge is in CONFIG UPDATE mode. True when set. Default is 0. See CONFIG UPDATE Mode for details.
BAT_DET = Battery insertion detected. True when set. When Op Config [BIE] is set, [BAT_DET] is set by detecting a logic-high-to-low transition at BIN pin. When Op Config [BIE] is low, [BAT_DET] is set when host issues BAT_INSERT subcommand and is clear when host issues BAT_REMOVE subcommand.
SOC1 = If set, StateOfCharge()SOC1 Set Threshold. The [SOC1] bit will remain set until StateOfCharge()SOC1 Clear Threshold.
SOCF = If set, StateOfCharge()SOCF Set Threshold. The [SOCF] bit will remain set until StateOfCharge()SOCF Clear Threshold.
DSG = Discharging detected. True when set.

8.5.1.5 NominalAvailableCapacity( ): 0x08 and 0x09

This read-only command pair returns the uncompensated (less than C/20 load) battery capacity remaining. Units are mAh.

8.5.1.6 FullAvailableCapacity( ): 0x0A and 0x0B

This read-only command pair returns the uncompensated (less than C/20 load) capacity of the battery when fully charged. Units are mAh. FullAvailableCapacity( ) is updated at regular intervals, as specified by the IT algorithm.

8.5.1.7 RemainingCapacity( ): 0x0C and 0x0D

This read-only command pair returns the compensated battery capacity remaining. Units are mAh.

8.5.1.8 FullChargeCapacity( ): 0x0E and 0x0F

This read-only command pair returns the compensated capacity of the battery when fully charged. Units are mAh. FullChargeCapacity( ) is updated at regular intervals, as specified by the IT algorithm.

8.5.1.9 AverageCurrent( ): 0x10 and 0x11

This read-only command pair returns a signed integer value that is the average current flow through the sense resistor. In NORMAL mode, it is updated once per second and is calculated by dividing the 1-second change in coulomb counter data by 1 second. Large current spikes of short duration will be averaged out in this measurement. Units are mA.

8.5.1.10 AveragePower( ): 0x18 and 0x19

This read-only function returns an signed integer value of the average power during battery charging and discharging. It is negative during discharge and positive during charge. A value of 0 indicates that the battery is not being discharged. The value is reported in units of mW.

8.5.1.11 StateOfCharge( ): 0x1C and 0x1D

This read-only function returns an unsigned integer value of the predicted remaining battery capacity expressed as a percentage of FullChargeCapacity( ), with a range of 0 to 100%.

8.5.1.12 IntTemperature( ): 0x1E and 0x1F

This read-only function returns an unsigned integer value of the internal temperature sensor in units of 0.1°K measured by the fuel gauge. If Op Config [TEMPS] = 0, this command will return the same value as Temperature( ).

8.5.1.13 StateOfHealth( ): 0x20 and 0x21

0x20 SOH percentage: this read-only function returns an unsigned integer value, expressed as a percentage of the ratio of predicted FCC(25°C, SOH LoadI) over the DesignCapacity(). The FCC(25°C, SOH LoadI) is the calculated full charge capacity at 25°C and the SOH LoadI which is programmed in factory (default = –400 mA). The range of the returned SOH percentage is 0x00 to 0x64, indicating 0 to 100% correspondingly.

0x21 SOH Status: this read-only function returns an unsigned integer value, indicating the status of the SOH percentage:

  • 0x00: SOH not valid (initialization)
  • 0x01: Instant SOH value ready
  • 0x02: Initial SOH value ready
    • Calculation based on default Qmax
    • May not reflect SOH for currently inserted pack
  • 0x03: SOH value ready
    • Calculation based on learned Qmax
    • Most accurate SOH for currently inserted pack following a Qmax update
  • 0x04 through 0xFF: Reserved

8.5.1.14 OperationConfiguration( ): 0x3A and 0x3B

This read-only function returns the contents of the NVM Operation Configuration (Op Config) register and is most useful for system level debug to quickly determine device configuration.

8.5.1.15 DesignCapacity( ): 0x3C and 0x3D

This read-only function returns the value stored in Design Capacity and is expressed in mAh. This is intended to be the theoretical or nominal capacity of a new pack and is used as an input for the algorithm to scale the normalized resistance tables and for the calculation of StateOfHealth().

8.5.1.16 DebugX( ):

Several read-only functions such as Debug1( ), Debug2( ), Debug3( ) provide information useful for debug purposes. For factory use only.

8.5.2 Extended Data Commands

Extended commands offer additional functionality beyond the standard set of commands. They are used in the same manner; however, unlike standard commands, extended commands are not limited to 2-byte words. The number of command bytes for a given extended command ranges in size from single to multiple bytes, as specified in Table 7.

Table 7. Extended Commands

NAME COMMAND CODE UNIT SEALED
ACCESS(1) (2)
UNSEALED
ACCESS(1) (2)
DataClass( ) (2) 0x3E NA NA RW
DataBlock( ) (2) 0x3F NA RW RW
BlockData( ) 0x40 through 0x5F NA R RW
BlockDataCheckSum( ) 0x60 NA RW RW
BlockDataControl( ) 0x61 NA NA RW
Reserved 0x62 through 0x7F NA R R
(1) SEALED and UNSEALED states are entered through commands to Control( ) 0x00 and 0x01.
(2) In SEALED mode, data cannot be accessed through commands 0x3E and 0x3F.

8.5.2.1 OperationConfiguration( ): 0x3A and 0x3B

SEALED and UNSEALED Access: This command returns the Operation Configuration register setting.

8.5.2.2 DesignCapacity( ): 0x3C and 0x3D

SEALED and UNSEALED Access: This command returns the value is stored in Design Capacity and is expressed in mAh. This is intended to be the theoretical or nominal capacity of a new pack and is used as an input for the algorithm to scale the normalized resistance tables.

8.5.2.3 DataClass( ): 0x3E

UNSEALED Access: This command sets the data class to be accessed. The class to be accessed should be entered in hexadecimal.

SEALED Access: This command is not available in SEALED mode.

8.5.2.4 DataBlock( ): 0x3F

UNSEALED Access: This command sets the data block to be accessed. When 0x00 is written to BlockDataControl( ), DataBlock( ) holds the block number of the data to be read or written. Example: writing a 0x00 to DataBlock( ) specifies access to the first 32-byte block and a 0x01 specifies access to the second 32-byte block, and so on.

SEALED Access: Issuing a 0x01 instructs the BlockData( ) command to transfer the Manufacturer Info block.

8.5.2.5 BlockData( ): 0x40 through 0x5F

UNSEALED Access: This data block is the remainder of the 32-byte data block when accessing general block data.

SEALED Access: This data block is used to access the Manufacturer Info block. No other NVM or RAM data blocks are accessible in SEALED mode.

8.5.2.6 BlockDataChecksum( ): 0x60

UNSEALED Access: This byte contains the checksum on the 32 bytes of block data read or written. The least-significant byte of the sum of the data bytes written must be complemented ( [255 – x], for x being the least-significant byte) before being written to 0x60. For a block write, the correct complemented checksum must be written before the BlockData( ) will be transferred to NVM or RAM.

SEALED Access: This byte contains the checksum for the 8 bytes of the Manufacturer Info block.

8.5.2.7 BlockDataControl( ): 0x61

UNSEALED Access: This command is controls the data access mode. Writing 0x00 to this command enables BlockData( ) to access NVM and RAM.

SEALED Access: This command is not available in SEALED mode.

8.5.2.8 Reserved: 0x62 through 0x7F

8.5.3 Block Data Interface

8.5.3.1 Accessing Block Data

The fuel gauge contains both re-writable EEPROM non-volatile memory (NVM) and ROM-based data blocks. Upon device RESET, the ROM-based data blocks are copied to associated volatile RAM space to initialize default configuration and data constants to be used by the fuel gauging algorithm. Re-writable NVM-based data blocks contain information expected to change such as: calibration, customer data, and Impedance Track fuel gauging data tables. If the application requires a change to the NVM or RAM configuration data, the host can update the data blocks in CONFIG UPDATE mode. RAM-based data changes are temporary and must be applied by the host using CONFIG UPDATE mode after each device RESET; while changes to the NVM data blocks are permanent. The data blocks can be accessed in several different ways, depending on the access mode and what data is being accessed.

Commonly accessed data block locations, frequently read by a system, are conveniently accessed through specific instructions, already described in Extended Data Commands. These commands are available when the fuel gauge is either in UNSEALED or SEALED mode.

Most data block locations, however, are only accessible in UNSEALED mode by use of the evaluation software or by data block transfers. These locations should be optimized and/or fixed during the development and manufacture processes. Once established, the values generally remain unchanged during end-equipment operation.

To access data locations individually, the block containing the desired data NVM locations must be transferred to the command register locations, where they can be read to the system or changed directly. This is accomplished by sending the set-up command BlockDataControl( ) (0x61) with data 0x00. Up to 32 bytes of data can be read directly from the BlockData( ) (0x40 through 0x5F), externally altered, then rewritten to the BlockData( ) command space. Alternatively, specific locations can be read, altered, and rewritten if their corresponding offsets are used to index into the BlockData( ) command space. Finally, the data residing in the command space is transferred to the associated data block, once the correct checksum for the whole block is written to BlockDataChecksum( ) (0x60).

Occasionally, a data CLASS will be larger than the 32-byte block size. In this case, the DataBlock( ) command designates in which 32-byte block the desired locations reside. The correct command address is then given by 0x40 + offset modulo 32. For example, to access Sleep Current in the Gas Gauging class, the DataClass( ) is issued 82 (0x52) to set the class. Because the offset is 34, it resides in the second 32-byte block. Hence, DataBlock( ) is issued 0x01 to set the block offset, and the offset used to index into the BlockData( ) memory area is 0x40 + 34 modulo 32 = 0x40 + 2 = 0x40 + 2 = 0x42.

Reading and writing subclass data are block operations up to 32 bytes in length. If, during a write, the data length exceeds the maximum block size, then the data is ignored.

None of the data written to memory are bounded by the fuel gauge, the values are not rejected by the fuel gauge. Writing an incorrect value may result in hardware failure due to firmware program interpretation of the invalid data. The data written to NVM blocks is not persistent, so a power-on reset does resolve the fault.

8.5.4 Access Modes

The fuel gauge supports SEALED and UNSEALED access modes to control data NVM access permissions according to Table 8.

Table 8. Data NVM Access

SECURITY MODE DATA NVM MANUFACTURER INFO
UNSEALED RW RW
SEALED None R

8.5.4.1 Sealing and Unsealing Data Blocks

The fuel gauge implements a key-access security scheme to transition from a SEALED state to the UNSEALED state. Devices are shipped from the factory in the UNSEALED state and should be SEALED before use in end-equipment. The Sealed to Unseal key can only be updated in the UNSEALED state.

To SEAL from UNSEALED: The host sends the SEALED subcommand 0x0020 to the Control( ) register. After receiving the SEALED subcommand, the CONTROL_STATUS [SS] bit is set within 2 seconds.

To UNSEAL from SEALED: Host sends the keys to the Control( ) register. The keys must be sent consecutively, with no other data written to Control( ).

NOTE

To avoid conflict with normal subcommands, the keys must be different from the codes presented in the CNTL DATA column of the Table 4 table.

The first word is Key 0 and the second word is Key 1. The order of the keys sent are Key 1 followed by Key 0. The order of the bytes for each key entered through the Control( ) command is the reverse of what is read from the part. For example, if the 4-byte Sealed to Unseal key is 0x56781234, key 1 is 0x1234 and key 0 is 0x5678. So, the host should write 0x3412 followed by 0x7856 to unseal the part. After receiving the correct key sequence the CONTROL_STATUS [SS] bit is cleared.

8.5.5 Data Block Summary

Table 9. Data Block Summary

CLASS SUBCLASS ID SUBCLASS OFFSET NAME DATA TYPE VALUE UNIT
(EVSW Unit)*
MIN MAX DEFAULT
(-G2B)
Configuration [RAM] 2 Safety [RAM] 0 Overtemperature I2 –1200 1200 550 0.1°C
(°C)
2 Undertemperature I2 –1200 1200 0 0.1°C
(°C)
4 Temperature Hysteresis U1 0 255 50 0.1°C
(°C)
36 Charge Termination [RAM] 3 TCA Set % I1 –1% 100% 99%
4 TCA Clear % I1 –1% 100% 95%
5 FC Set % I1 –1% 100% 100%
6 FC Clear % I1 –1% 100% 98%
49 Discharge [RAM] 0 SOC1 Set Threshold U1 0% 255% 10%
1 SOC1 Clear Threshold U1 0% 255% 15%
2 SOCF Set Threshold U1 0% 255% 2%
3 SOCF Clear Threshold U1 0% 255% 5%
68 Power [RAM] 9 Hibernate I I2 0 700 3 mA
11 Hibernate V I2 2400 3000 2550 mV
System Data
[NVM]
58 Manufacturer Info [NVM] 0 through 7 Block A 0 through 7 H1 0x00 0xFF 0x00
Gas Gauging
[NVM/RAM]
80 IT Cfg [RAM] 55 Max Delta Voltage I2 –32000 32000 200 mV
57 TermV Valid t U1 0 255 2 s
81 Current Thresholds [RAM] 0 Dsg Current Threshold I2 0 2000 167 0.1 h
2 Chg Current Threshold I2 0 2000 133 0.1 h
4 Quit Current I2 0 1000 250 0.1 h
82 State [NVM] 2 Update Status H1 0x00 0xFF 0x04
(0x34)
3 Reserve Cap-mAh I2 0 9000 0 mAh
5 Op Config H2 0x0000 0xFFFF 0x89F8
12 Design Capacity I2 0 32767 1340
(1000)
mAh
14 Design Energy I2 0 32767 4960
(3800)
mWh
18 Terminate Voltage I2 2800 3700 3200 mV
22 SOHLoadI I2 –32767 0 50 mA
29 SOCI Delta U1 0% 100% 1%
30 Taper Current I2 0 1000 75 mA
32 Taper Voltage I2 0 5000 4100
(4200)
mV
34 Sleep Current I2 0 100 10 mA
36 V at Charge Termination I2 0 5000 4190
(4290)
mV
38 Transient Factor Charge U1 0 255 179 num
39 Transient Factor Discharge U1 0 255 179 num
40 RDL Tempco F4 1.0E–20 4.0E+1 0.000393 num
Ra Tables
[NVM/RAM]
88 R_a NVM
[NVM]
0 through 28 Cell0 R_a 0 through 14 I2 183 183 [Table] 2–10Ω
(num)
89 R_a RAM
[RAM]
0 through 28 Cell0 R_a 0 through 14 I2 183 183 [Table] 2–10Ω
(num)
Calibration [NVM] 104 Data [NVM] 0 CC Offset I2 –32768 32767 –1312 mV
2 Board Offset I1 –128 127 0 uV
3 Int Temp Offset I1 –128 127 0 °0.1°C
(°C)
4 Pack V Offset I1 –128 127 0 mV
105 CC Cal [NVM] 0 CC Gain F4 1.0E–1 4.0E+1 0.47095 num
(2–10Ω)
4 CC Cal Temp I2 0 32767 2982 0.1K
107 Current [RAM] 19 CC Delta F4 2.9826E+4 1.193046E+6 559538.8 num
(2–10Ω)
Security 112 Codes [RAM] 0 Sealed to Unsealed H4 0x0000 0000 0xFFFF FFFF 0x3672 0414

8.5.6 Detecting Charge Termination

The fuel gauge detects charge termination when:

  • AverageCurrent( ) < Taper Current (default = 75 mA) for 80 seconds
  • During the same 80 seconds, the accumulated change in capacity > 0.25 mAh / 40 seconds
  • Voltage( ) > (Charging Voltage – 100 mV)

When this occurs, the Flags( )[CHG] bit is cleared. Also, if the [RMFCC] bit of Operation Configuration is set, then RemainingCapacity( ) is set equal to FullChargeCapacity( ).

8.5.7 Communications

8.5.7.1 I2C Interface

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.

bq27425-G2 i2c_packet_format.gif Figure 7. I2C Interface Read/Write

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:

Attempt to write a read-only address (NACK after data sent by master):

bq27425-G2 i2c_invalid_write.gif Figure 8. Attempt to Write a Read-Only Address

Attempt to read an address above 0x6B (NACK command):

bq27425-G2 i2c_invalid_read.gif Figure 9. Attempt to Read an Address Above 0x6B

8.5.7.2 I2C Time Out

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.

8.5.7.3 I2C Command Waiting Time

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. The following diagram shows the standard waiting time required between issuing the control subcommand the reading the status result. For read-write standard command, 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.

bq27425-G2 i2c_comm_wait.gif Figure 10. I2C Command Waiting Time

8.5.7.4 I2C Clock Stretching

A clock stretch can occur during all modes of fuel gauge operation. In SLEEP and HIBERNATE modes, a short clock stretch occurs on all I2C traffic as the device must wake up to process the packet. In the other modes (INITIALIZATION, NORMAL) clock stretching only occurs for packets addressed for the fuel gauge. The majority of clock stretch periods are small as the I2C interface performs normal data flow control. However, less frequent yet more significant clock stretch periods may occur as blocks of NVM are updated. The following table summarizes the approximate clock stretch duration for various fuel gauge operating conditions.

Table 10. I2C Clock Stretching

GAUGING MODE OPERATING CONDITION / COMMENT APPROXIMATE
DURATION
SLEEP
HIBERNATE
Clock stretch occurs at the beginning of all traffic as the device wakes up. ≤ 4 ms
INITIALIZATION
NORMAL
Clock stretch occurs within the packet for flow control (after a start bit, ACK or first data bit). ≤ 4 ms
Normal Ra table NVM updates. 24 ms
NVM block writes. 72 ms
Restored NVM block write after loss of power. 116 ms
End of discharge Ra table NVM update. 144 ms

8.6 Register Maps

8.6.1 Operation Configuration (Op Config) Register

Gauge operation is configured through the Operation Configuration (Op Config) data NVM register, as indicated in Table 11. This register is programmed and read through the methods described in Fuel Gauging Configurations.

Table 11. Op Config Register Definition

BIT 7 BIT 6 BIT 5 BIT 4 BIT 3 BIT 2 BIT 1 BIT 0
High Byte SMOOTHEN RSVD0 BIE BI_PU_EN RSVD1 RSVD0 RSVD0 RSVD1
Default = 1 0 0 0 1 0 0 1
0x89
Low Byte RSVD1 RSVD1 SLEEP RMFCC RSVD1 BATLOWEN GPIOPOL TEMPS
Default = 1 1 1 1 1 0 0 0
0xF8
SMOOTHEN = Enables the SOC smoothing feature. (See SOC Smoothing Feature.) True when set.
BIE = Battery Insertion Enable. If set, the battery insertion is detection through BIN pin input. If cleared, the detection relies on the host to issue BAT_INSERT subcommand to indicate battery presence in the system.
BI_PU_EN = Enables internal weak pullup on BIN pin. True when set. If false, an external pullup resistor is expected.
SLEEP = The fuel gauge can enter sleep, if operating conditions allow. True when set.
RMFCC = RM is updated with the value from FCC on valid charge termination. True when set.
BATLOWEN = If set, the BAT_LOW function for GPOUT pin is selected. If cleared, the SOC_INT function is selected for GPOUT.
GPIO_POL = GPOUT pin is active-HIGH if set or active-LOW if cleared.
TEMPS = Selects the temperature source. Enables the host to write Temperature( ) if set. If cleared, the internal temperature sensor is used for Temperature( ).
RSVD0 = Reserved. Default is 0. (Set to 0 for proper operation)
RSVD1 = Reserved. Default is 1. (Set to 1 for proper operation)