Skip to main content

BQ27441 – How it works

BQ27441 is an microcontroller pheripheral that provides system-side fuel gauging for single-cell Li-Ion batteries by Texas Instruments. When using our board, you are essentially communicationg with the onboard BQ27441 directly via I2C communication.

BQ27441 sensor on board
BQ27441 sensor on the board

Datasheet

For an in-depth look at technical specifications, refer to the official BMP180 Datasheet:

BQ27441 Datasheet

Detailed technical documentation for the BQ27441 sensor


How the sensor works

The BQ27441 battery fuel gauge uses the patented Impedance Track algorithm for fuel gauging, and provides information such as remaining battery capacity [mah], state of charge [%] and battery voltage [mV].

Impedance Track Algorithm

The algorithm uses three types of information to calculate remainig capacity (SBS.RemainingCapacity()) and full charge capacity (SBS.FullChargeCapacity()):

  • Chemical: Depth of discharge (DOD) and Total chemical capacity Qmax
  • Electrical: Internal battery resistance dependence on DOD
  • External: Load, Temperature

SBS.FullChargeCapacity() is defined as the amount of charge passed from a fully charged state until the voltage defined in DF:Terminate Voltage flash constant is reached at a given rate of discharge, after subtarcting the reserve capacity (DF:Reserve Capacity)

ℹ️
Note that it depends on the rate of discharge and is lower at higher rates and low temperatures because the cell i x R causes the Terminate Voltage threshold to be reached earlier.

Modes of Algorithm Operation

The algorithm differentiates between charge, discharge, and relaxation modes of operation. During charge mode, the SBS.OperationStatus( ) DSG bit is cleared, and during discharge and relaxation mode, it is set. Entry and exit of each mode is controlled by Data Flash (DF) parameters in the subclass Gas Gauging. Relaxation mode is entered when SBS.Current( ) goes below DF:Quit Current and after a DF:Chg Relax Time period. Discharge mode is entered when SBS.Current( ) goes below DF:Dsg Current Threshold. Discharge mode is exited, relaxation mode is entered when SBS.Current( ) goes above —DF:Quit Current threshold and after a DF:Dsg Relax Time period. Charge mode is entered when SBS.Current( ) goes above DF:Chg Current Threshold.

Example of the Algorithm Operation Mode Changes With Varying SBS.Current( )
Example of the Algorithm Operation Mode Changes With Varying SBS.Current( )
ℹ️
For more in-depth at Impedance Track Algorithm, refer to the official Datasheet

I2C communication - Qwiic

This board uses the onboard BQ27441 to implement I2C communication. The board operates on a default I2C address of 0x55, but it can be changed using onboard switches. To check in detail how the BQ27441 is preprogrammed, check the firmware GitHub page.