MAX17048 Battery Fuel Gauge

Created:  
Updated:   20Aug2024   22:59:18   UTC 2024-08-20T22:59:18Z
Rating:   (0 reviewsThis article has not been rated yet)

The MAX17048 ICIntegrated Circuit by Maxim Integrated (a subsidiary of Analog Devices) measures the voltage on a single cell LiPoLithium Polymer or Li-ionLithium-ion battery and accounts for the non-linear voltage behavior of the battery to get a charge percentage. This IC outputs the battery's voltage and percentage data over I2CInter-Integrated Circuit. Also referred to as IIC or I2C. and also has a separate alert output that tells you when the charge has dropped below a certain percentage.

This hardware overview of the MAX17048 Fuel Gauge covers the IC, Adafruit Module, and SparkFun Module, including specs, pinout, board layout, and operation.

The Adafruit and SparkFun have breakout boards have external circuitry, 2-pin JSTJapan Solderless Terminal battery connector, and QwiicQwiic connectors are SparkFun's name for 4-pin JST SH connectors with 1.0mm pitch. These connectors were implemented on SparkFun boards to make it easy to plug-n-play various sensors and devices without soldering and wiring. Qwiic is cross-compatible with Adafruit's STEMMA QT connectors./STEMMA QTSTEMMA QT ('cutie') connectors are Adafruit's name for 4-pin JST SH connectors with 1.0mm pitch. These connectors were implemented on Adafruit boards to make it easy to plug-n-play various sensors and devices without soldering and wiring. The STEMMA QT (JST SH) are a smaller connector than the STEMMA (JST PH) that do not fit on smaller boards. STEMMA QT is cross-compatible with SparkFun Qwiic connectors. connectors, that make it easier to interface to the MAX17048 IC.

The MAX17048 is similar to the MAX17043 but it can provide a few more readings from your LiPo battery (i.e., charge rate, disharge rate, 1% change in SOCState Of Charge, undervoltage, overvoltage, etc.). The MAX17048 has higher accuracy voltage measurements (±7.5mV vs ±12.5mV), lower power active and sleep modes, and will automatically detect when the battery enters a low-current state and enters hibernation while still providing accurate fuel gauging (the voltage sampling period is increased from 250ms to 45s).

MAX17048 IC

Overview

The MAX17048 is a Battery Fuel Gauge IC that measures the Relative State Of Charge (RSOCRelative State Of Charge) on a single-cell 3.7V Li-ion or LiPo battery (2.5V min to 5.0V max). The MAX17048 outputs the battery's cell voltage and charge percentage between 0% (empty) and 100% (full charge) through an I2C interface.

The MAX17048 IC has a non-linear voltage algorithm called ModelGaugeTM that provides an accurate RSOC even under unstable conditions (e.g., changes in the battery due to temperature, loading, aging, and self-discharge). The ModelGauge algorithm eliminates the need for battery relearn cycles and an external current-sense resistor.

The MAX17048 outputs the battery's voltage and percentage data over I2C and also has a separate alert output (active-low) that tells you when the charge has dropped below a certain percentage. The threshold for the alert is configurable over I2C.

The MAX17048 also features a sleep mode by holding both I2C lines, SDASerial Data Line and SCLSerial Clock (SCL) is the output clock signal line from the master device. Also referred to as SCK, SCLK, or CLK., to a logic-low level. In sleep mode, all IC operations are halted and power drain of the IC is greatly reduced (0.5μA typical, 2μA max). A rising edge on SDA or SCL wakes up the IC.

The MAX17048 has a low-power hibernate mode that can accurately fuel gauge the battery when the charge/discharge rate is low. By default, the device automatically enters and exits the hibernate mode according to the charge/discharge rate, which minimizes quiescent current (below 5µA) without compromising fuel gauge accuracy. In hibernate mode, the device reduces its ADC conversion period and SOC update to once per 45s. The IC can be forced into hibernate or active modes or by setting a register threshold.

Specs


MAX17048 IC Specs
Feature Description
IC Info Maxim Integrated MAX17048 1-Cell Lithium Ion Battery Fuel Gauge with Low-Battery Alert
Input The battery input voltage can be from 2.5V to 5.0V. Note that the nominal voltage of a single cell LiPo Battery is around 3.7V, but fully charged the voltage is at around 4.2V.
Output
  • Data output by two wire I2CInter-Integrated Circuit. Also referred to as IIC or I2C. through SCLSerial Clock (SCL) is the output clock signal line from the master device. Also referred to as SCK, SCLK, or CLK. and SDASerial Data Line lines (up to 400kHz supported)
  • ALRT pin interrupt output signal alerts for low RSOC and/or low voltage
Accuracy
  • ±7.5mV voltage measurement accuracy
  • (±1% typical, ±3.5% max) timer accuracy
  • ±3% accuracy of RSOCRelative State Of Charge
ADC Sample Period
  • Active Mode: 250ms
  • Hibernate Mode: 45s
Operating Voltage VDD pin between 2.5V to 4.5V DC
Power Consumption
  • Active Mode:
    23μA (typical), 40μA (max)
  • Sleep Mode:
    0.5μA (typical), 2μA (max)
  • Sleep Mode:
    0.5μA (typical), 2μA (max)
  • Hibernate Mode:
    3μA (typical), 2μA (max)
Package The IC is available in two packages:
  • TDFNThin Dual Flat No-lead (TDFN) package 8-Pin
  • WLPWafer-Level Package 8-Bump
IC Size
  • TDFN: 2mm x 2mm
  • WLP: 0.9mm x 1.7mm

Pin Functions

The MAX17048 comes in two different packages: TDFNThin Dual Flat No-lead (TDFN) package 8-Pin and WLPWafer-Level Package 8-Bump. The pin configuration for the TDFN package is given in the diagram below followed by a table defining each of the pins.

MAX17048 TDFN IC Pin Diagram
MAX17048 TDFN Package Pin Functions
Pin Name Function
1 CTG Connect To Ground during normal operation.
2 CELL Battery voltage input connected to the battery's positive (+) pin. The voltage of the battery is measured through this pin.
3 VDD Power-Supply Input with a range of 2.5V to 4.5V. Use a 0.1μF bypass capacitor to GND.
4 GND Ground. Connect to negative battery terminal.
5 ALRT Alert Output. Open-Drain Active-Low interrupt signaling low state of charge. Connect to interrupt input of a microcontroller.
6 QSTRT Quick-Start Input. Allows reset of the device through hardware. Connect to GND if not used.
7 SCL I2C Serial Clock pin. This pin has an internal pulldown (0.2µA typical) to sense disconnection.
8 SDA I2C Serial Data pin. Open-Drain. This pin has an internal pull-down (0.2µA typical) to sense disconnection. The host system provides the resistive pullup.

Operation

The MAX17048 IC is powered with pin VDD using a voltage in the range of 2.5V to 4.5V. The battery voltage is measured with a 12-bit ADCAnalog-to-Digital Converter (ADC, A/D, or A-to-D) and then uses a non-linear battery model to effectively simulate the internal dynamics of the battery to determine the RSOC. The model considers the time effects of a battery caused by the chemical reactions and impedance in the battery.

When the battery level drops below a predefined threshold (defined by an I2C register), the ALRT pin output drops to a logic LOW level and sets the ALRT bit in the configuration register to 1. It will remain in this alert state until the host software writes ALRT bit to 0 after the battery level rises above the threshold. The ALRT status can also be viewed through I2C.

The two wire I2C bus, consisting of SCL and SDA lines, support operations as a slave-only device in single or multislave, and single or multimaster. The I2C bus provides bidirectional communication at speeds up to 400kHz.

MAX17048 IC Functional Diagram

Adafruit MAX17048 Module

Overview

The Adafruit MAX17048 module (PID 5580) shown in the figure below is a Battery Fuel Gauge that breaks out the MAX17048 IC.

Adafruit MAX17048 Battery Fuel Gauge

The breakout board has the following features:

  • Dual 2-Pin JST 2.0PH connectors for the battery/load/charger with an input voltage range between 2.5V to 5.0V. You can connect the battery to one and a load/charger to the other.
  • Battery pins broken out into pin through holes labeled as Bat and GND on the back of the board
  • Dual 4-Pin STEMMA QTSTEMMA QT ('cutie') connectors are Adafruit's name for 4-pin JST SH connectors with 1.0mm pitch. These connectors were implemented on Adafruit boards to make it easy to plug-n-play various sensors and devices without soldering and wiring. The STEMMA QT (JST SH) are a smaller connector than the STEMMA (JST PH) that do not fit on smaller boards. STEMMA QT is cross-compatible with SparkFun Qwiic connectors. connectors for I2C (SDA, SCL), VCC, and GND
  • 6x pin through holes for I/O and power with 0.1" (2.54mm) spacing. The I2C pins each have an internal 10kΩ pull-up resistor.
  • Power LED: a green LED on the front of the board that indicates when power is connected. A jumper is on the back of the board if you want to disable this LED.
  • 3-Pad jumper on the back of the board that can be modified so that the Vin pin is powering the MAX17048 IC (VDD) rather than the battery

This module outputs the battery's voltage and percentage data over I2C and operates with 3.3V or 5.0V for both power and communication, so it should work with any microcontroller or SBCSingle Board Computer with an I2C interface.

Adafruit has a Guide on this module and software libraries available on GitHub for Arduino and CircuitPython/Python to read the battery voltage and percentage, as well as setting alerts and low power mode.

Specs


Adafruit MAX17048 Module Specs
Feature Description
Main IC MAX17048 by Maxim Integrated (a subsidiary of Analog Devices)
Interface
  • The battery input voltage range is between 2.5V to 5V. Note that the nominal voltage of a single cell LiPo Battery is around 3.7V, but fully charged the voltage is at around 4.2V. This input also powers the IC and should be connected to your system's power input as well.
  • Data output by I2C (up to 400 kHz supported) with 2x STEMMA QTSTEMMA QT ('cutie') connectors are Adafruit's name for 4-pin JST SH connectors with 1.0mm pitch. These connectors were implemented on Adafruit boards to make it easy to plug-n-play various sensors and devices without soldering and wiring. The STEMMA QT (JST SH) are a smaller connector than the STEMMA (JST PH) that do not fit on smaller boards. STEMMA QT is cross-compatible with SparkFun Qwiic connectors. connectors
  • INT pin interrupt signal output alerts for low RSOC and/or low voltage
  • QStart pin for quick-start input that allows users to reset the device through hardware
Operating Voltage
  • Power to the board is supplied by the battery by default with a range is between 2.5V to 5V.
  • The jumper on the back of the board can be modified to allow powering the board by the Vin pin between 3V to 5V DC.
Board Size 25.7mm x 20.3mm x 7.2mm (1.0in x 0.8in x 0.3in)

Board Layout

The Adafruit MAX17048 board layout is given below. There are two JST 2.0PH ports connected together at the top of the board, so you can connect the battery to one and a load/charger to the other (it doesn't matter which one).

The power and I2C data lines can be connected to the STEMMA QTSTEMMA QT ('cutie') connectors are Adafruit's name for 4-pin JST SH connectors with 1.0mm pitch. These connectors were implemented on Adafruit boards to make it easy to plug-n-play various sensors and devices without soldering and wiring. The STEMMA QT (JST SH) are a smaller connector than the STEMMA (JST PH) that do not fit on smaller boards. STEMMA QT is cross-compatible with SparkFun Qwiic connectors. connectors on each side of the board (either one) or to the pins on the bottom of the board. There is an LED on the left side of the board to indicate when the board is powered.

Adafruit MAX17048 Board Layout (Top View)

The MAX17048 IC (VDD) is powered from the battery by default. There is a 3-Pad jumper (labeled Vin, VDD, and Bat) on the back of the board that can be modified so that the Vin pin is powering the MAX17048 IC (VDD) rather than the battery.

There is another two pads (labeled LED) on back of the board that are connected by a trace. If you want to conserve power when running only on battery, you can cut this trace to disable the LED on the board.

Adafruit MAX17048 Board Layout (Bottom View)
Adafruit MAX17048 Module Pin Functions
Pin Function
VIN Power supply pin for the board between 3V and 5V DC. The MAX17048 is powered by the connected battery, not by VIN. The MAX17048 will not respond to I2C scans or commands if the battery is not plugged in or too low.
GND Common ground for power and logic.
SCL This is the I2C clock pin SCL, connect to your microcontroller's I2C clock line. There's a 10kΩ pull-up on this pin.
SDA This is the I2C data pin SDA, connect to your microcontroller's I2C data line. There's a 10kΩ pull-up on this pin.
STEMMA QT
Ports
These connectors allow you to connect to dev boards with STEMMA QT connectors. There are two of these ports on the sides of the board so you can connect your device (microcontroller, SBC, etc.) to either one of them.
JST Ports 2x JST PH 2.0 connectors for the battery. There are two JST ports connected together so you can connect the battery to one and a load/charger to the other.

Be careful with the battery polarity. There is no protection diode on the board, so a reversed battery will damage it. There are + and - symbols on the PCB to indicate polarity.
Bat/GND Pins Battery pin through holes labeled as Bat and GND on the back of the board. These pins are connected directly to the 2-Pin JST connectors.
INT Interrupt signal out, you can set this up to pull low when the voltage or percentage drops below a threshold. Pulled up to VIN with a 10kΩ resistor.
QStart The QStart pin is for quick-start input. The datasheet labels this pin as QSTRT but Adafruit decided to label it as QStart. This allows users to reset the device through hardware. By default, the pin is connected to ground through a built-in 10kΩ resistor. A rising edge on this pin will initiate a hardware reset. One possible application is connecting this pin to a microcontrollers reset pin should users decide to initiate a hardware reset. A reset can also be initiated through software as well.
LED Jumper
(Backside)
There are two pads connected by a trace on the back of the board, labeled LED. If you want to conserve power when running only on battery, you can cut this trace to disable the LED on the breakout.
Vin/VDD/Bat
Jumper
(Backside)
The MAX17048 IC (VDD) is powered from the battery by default, but the 3-Pad jumper (labeled Vin, VDD, and Bat) on the back of the board that can be modified so that the Vin pin is powering the MAX17048 IC (VDD) rather than the battery.

Adafruit has provided a schematic of the board on their website (Source). This same schematic is shown below, but with dark themed colors.

Adafruit MAX17048 Board Schematic

SparkFun MAX17048 Module

Overview

The SparkFun MAX17048 Fuel Gauge Sensor Module (SPX-17715) shown in the figure below is similar to the Adafruit module with the same connectors and I/O. The SparkFun board also has an Arduino library on GitHub to read the battery voltage and percentage.

SparkFun MAX17048 Battery Fuel Gauge

Specs

SparkFun MAX17048 Module Specs
Feature Description
Main IC MAX17048 by Maxim Integrated (a subsidiary of Analog Devices)
Interface
  • The battery input voltage range is between 2.5V to 5V. Note that the nominal voltage of a single cell LiPo Battery is around 3.7V, but fully charged the voltage is at around 4.2V. This input also powers the IC and should be connected to your system's power input as well.
  • Data output by I2C (up to 400 kHz supported) with 2x QwiicQwiic connectors are SparkFun's name for 4-pin JST SH connectors with 1.0mm pitch. These connectors were implemented on SparkFun boards to make it easy to plug-n-play various sensors and devices without soldering and wiring. Qwiic is cross-compatible with Adafruit's STEMMA QT connectors. connectors or SDA and SCL pins through holes
  • ALERT pin interrupt signal output alerts for low RSOC and/or low voltage
Operating Voltage Power to the board is supplied by the battery by default with a range is between 2.5V to 5V.
Board Size 31.8mm x 31.8mm (1.25in x 1.25in)

Board Layout

The SparkFun MAX17048 board layout is given below. There are two JST 2.0PH ports connected together at the bottom of the board, so you can connect the battery to one and a load/charger to the other (it doesn't matter which one).

The power and I2C data lines can be connected to the QwiicQwiic connectors are SparkFun's name for 4-pin JST SH connectors with 1.0mm pitch. These connectors were implemented on SparkFun boards to make it easy to plug-n-play various sensors and devices without soldering and wiring. Qwiic is cross-compatible with Adafruit's STEMMA QT connectors. connectors on each side of the board (either one) or to the pins on the bottom of the board. There is an LED on the left side of the board (labeled PWR) to indicate when the board is powered.

SparkFun MAX17048 Board Layout (Top View)

There is a 3-Pad jumper (labeled I2C) on the back of the board that can be modified to change the I2C address.

The Alert jumper by default has the alert pin pulled up to 3.3V with a 10kΩ pull-up resistor. This can be disabled by cutting the trace between the pads.

There is another jumper (labeled LED) for the power LED that is connected by a trace by default. If you want to conserve power, you can cut this trace to disable the LED on the board.

SparkFun MAX17048 Board Layout (Bottom View)
SparkFun MAX17048 Module Pin Functions
Pin Function
3.3V Input 3.3V used for pulling up the I2C SCL and SDA lines and the ALERT pin. Also used to supply power to the power LED.
GND Common ground for power and logic.
SCL This is the I2C clock pin SCL, connect to your microcontroller's I2C clock line. There's a 2.2kΩ pull-up on this pin. Uses 3.3V logic.
SDA This is the I2C data pin SDA, connect to your microcontroller's I2C data line. There's a 2.2kΩ pull-up on this pin. Uses 3.3V logic.
Qwiic
Ports
These connectors allow you to connect to dev boards with Qwiic connectors. There are two of these ports on the sides of the board so you can connect your device (microcontroller, SBC, etc.) to either one of them.
JST Ports 2x JST PH 2.0 connectors for the battery. There are two JST ports connected together so you can connect the battery to one and a load/charger to the other.

Be careful with the battery polarity. There is no protection diode on the board, so a reversed battery will damage it. There are + and - symbols on the PCB to indicate polarity.
VBATT/GND Pins Battery pin through holes labeled as VBATT and GND on the front and back of the board. These pins are connected directly to the 2-Pin JST connectors. VBATT is also used to power the MAX17048 IC.
ALERT Interrupt signal out, you can set this up to pull low when the voltage or percentage drops below a threshold. Pulled up to 3.3V with a 10kΩ resistor.
I2C Jumper
(Backside)
There is a 3-Pad jumper on the back of the board that can be modified to change the I2C address.
ALERT Jumper
(Backside)
The Alert jumper on the back of the board. By default it has the alert pin pulled up to 3.3V with a 10kΩ pull-up resistor. This can be disabled by cutting the trace between the pads.
LED Jumper
(Backside)
There is an LED jumper on the back of the board that is connected by a trace by default. If you want to conserve power, you can cut this trace to disable the power LED on the breakout.

SparkFun has provided a schematic of the board on their website (Source PDF). This same schematic is shown below, but with dark themed colors.

SparkFun MAX17048 Board Schematic

Related Content

Products

MAX17048 Battery Fuel Gauge Products

Created:   10Dec2023   01:23:09   UTC 2023-12-10T01:23:09Z
Updated:   08May2024   00:44:34   UTC 2024-05-08T00:44:34Z

  • Measures single cell Li-ion or LiPo battery percentage
  • I2C Interface
  • Supply Voltage: 3.3V to 5V

Article Rating

Sign in to rate this article

Sign In


(0) Comments

Sign in to leave a comment

Sign In