MAX17048 Battery Fuel Gauge
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
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 |
|
Accuracy |
|
ADC Sample Period |
|
Operating Voltage | VDD pin between 2.5V to 4.5V DC |
Power Consumption |
|
Package |
The IC is available in two packages:
|
IC Size |
|
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.
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.
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.
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
Feature | Description |
---|---|
Main IC | MAX17048 by Maxim Integrated (a subsidiary of Analog Devices) |
Interface |
|
Operating Voltage |
|
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.
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.
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.
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.
Specs
Feature | Description |
---|---|
Main IC | MAX17048 by Maxim Integrated (a subsidiary of Analog Devices) |
Interface |
|
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.
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.
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.
(0) Comments
Sign in to leave a comment
Sign In