Keywords: battery fuel gauge, battery monitors, integrated circuits, ICs, coulomb counter, Li-Ion battery monitor, Lithium-Ion, Li-Ion battery fuel gauge, fuel gauge software, monitors
Related Parts |

APPLICATION NOTE 131

Abstract: This application note describes to the user how to improve remaining capacity estimation for Li-ion battery packs beyond the accuracy level of using a coulomb counter alone. It outlines a methodology using Maxim battery monitor ICs along with fuel gauging software that comprehends the effects of battery cell age, as well as the charge discharge rates of the application, on the remaining capacity of a Li-ion battery pack. The result is a low-cost, but highly accurate battery fuel gauge. This battery fuel gauge methodology can be applied to any type of Li-Ion battery cell and any Dallas Semiconductor device containing a coulomb counter such as the DS2438 battery monitors.

The capacity of the cell at a given rate and temperature is the difference from the "Full" line and the corresponding "Empty" line. Because both the empty and full points change over temperature and rate, every point on the chart is relative to every other point. For example, if a cell was fully charged at a temperature of 80°C and then fully discharged at the low current rate at -20°C, the amount of charge able to be removed would be the difference between the full value at 80°C (1340mAH) and the low current empty value at -20°C (250mAH) or 1090mAH. If the cell was then fully recharged at -20°C, only the difference between the full and empty values at -20°C or 860mAH could be returned to the cell.

Only the immediate temperature and rate are needed to determine relative full and empty points. A cell that is discharged partially at temperature 1 and rate 1, then discharged completely at temperature 2 and rate 2 will be considered empty at a point based on temperature 2 and rate 2. Similarly, the cell above could be fully discharged at the high current rate yet is able to be further discharged at the low current rate by the number of milliamp-hours between the two "Empty" points that correspond to the present cell temperature. Because of this, it is only necessary to keep track of the present cell temperature and discharge rate when determining remaining capacity.

To collect the data, the cell pack is fully charged at each temperature and fully discharged at each rate at each temperature.

All collected data points are arranged in

0°C | 10°C | 20°C | 30°C | 40°C | |

Full (mAH) | 554 | 561 | 578 | 582 | 588 |

Standby Empty (mAH) | 65 | 42 | 19 | 11 | 0 |

Active Empty (mAH) | 124 | 90 | 65 | 50 | 44 |

The characterization data is then stored in two pages of the DS2438's EEPROM memory. Because values larger than 25510 require more than 1 byte of memory to store, the amount of data is reduced by storing only the first value and then recording the incremental differences between temperatures. A memory map of the DS2438 data store is shown in

Page 3 | Page 4 | |

0 | FULL at 0°C | Δ STANDBY EMPTY to 20°C |

1 | Δ STANDBY EMPTY to 30°C | |

2 | Δ FULL to 10°C | Δ ACTIVE EMPTY to 0°C |

3 | Δ FULL to 20°C | Δ ACTIVE EMPTY to 10°C |

4 | Δ FULL to 30°C | Δ ACTIVE EMPTY to 20°C |

5 | Δ FULL to 40°C | Δ ACTIVE EMPTY to 30°C |

6 | Δ STANDBY EMPTY to 0°C | ACTIVE EMPTY at 40°C |

7 | Δ STANDBY EMPTY to 10°C | Unused |

The first 6 bytes of page 3 contain the cell's measured FULL point at the different temperatures across the range. Bytes 0-1 are the capacity of the cell at 0°C; the next four bytes are values of the increase in capacity from the previous temperature. For example if a given cell's capacity was 554mAH at 0°C and 561mAH at 10°C then bytes 0-1 would contain 55410 (0x022Ah) and byte 2 would contain 710 (0x07h). The next nine bytes hold the STANDBY EMPTY and ACTIVE EMPTY information stored in the same manner as the FULL values. EMPTY values are incremented in the opposite direction starting at 40°C because it is the lowest value. STANDBY EMPTY at 40°C is not included since it is always 010.

0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | |

Page 3 | 0x02h | 0x2Ah | 0x07h | 0x11h | 0x04h | 0x06h | 0x17h | 0x17h |

FULL | STANDBY EMPTY | |||||||

Page 4 | 0x08h | 0x0Bh | 0x22h | 0x19h | 0x0Fh | 0x06h | 0x2Ch | X |

STANDBY EMPTY | ACTIVE EMPTY |

Full Value (28°C) = (FULL 20°C) + ((28-20)/10) × (FULL 30°C - FULL 20°C)

The empty point is calculated in exactly the same method, except a determination must be made to use the ACTIVE or STANDBY characterization data based on the current activation state of the system. Capacity can then be calculated by determining the location of the ICA between empty and full points as a percentage. The formulas are summarized below:

Full Value = FULL[Temperature]

Empty Value = STANDBY EMPTY[Temperature] or ACTIVE EMPTY[Temperature]

Capacity = ((ICA - Empty Value)/(Full Value - Empty Value)) × 100%

No estimation of remaining capacity is perfect. To prevent a long-term accumulation of error the ICA register should be reset to the corresponding EMPTY value each time the cell is fully drained. Likewise, each time the cell is fully charged, the corresponding FULL value should be changed to match the ICA. By permanently adjusting the full point based on actual operation, the pack is able to adjust for cells that are different from the "typical" characterization data and adjusts as the cell ages and deteriorates.

At End of Discharge: ICA = Empty Value

At End of Full Charge: FULL[Temperature] = ICA

Energy (J) = Volts × Current × time

Which can be rewritten in terms of remaining energy:

Remaining Energy (J) = 3.6 × Remaining mAH × RAV

Where:

Remaining mAH are the remaining milliamp-hours calculated by the above equations.

3.6 is the conversion factor from milliamp-hours to amp-seconds.

RAV is the remaining average voltage of the cell explained below.

The upper plot on

RAV = (Voltage + 2.5)/2

The remaining energy calculation can now be summarized as:

Remaining Energy (J) = 3.6 × Remaining mAH × (Voltage + 2.5)/2

Where:

Remaining mAH are the remaining milliamp-hours calculated by the fuel gauging equations.

Voltage is present cell voltage measured by the DS2438.

3.6 is the conversion factor from milliamp-hours to amp-seconds.

The second plot on Figure 6 shows the accuracy for this cell when predicting remaining energy with this method. The more linear a cell's discharge curve is, the more accurate this method will be. The less linear the cell, the less accurate the calculation. In either case, the calculation becomes more accurate where it is most important: as the cell voltage approaches the empty point.

0°C | 10°C | 20°C | 30°C | 40°C | |

FULL (mAH) | 554 | 561 | 578 | 582 | 588 |

STANDBY EMPTY (mAH) | 65 | 42 | 19 | 11 | 0 |

ACTIVE EMPTY (mAH) | 124 | 90 | 65 | 50 | 44 |

0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | |

Page 3 | 0x02h | 0x2Ah | 0x07h | 0x11h | 0x04h | 0x06h | 0x17h | 0x17h |

FULL | S. EMPTY | |||||||

Page 4 | 0x08h | 0x0Bh | 0x22h | 0x19h | 0x0Fh | 0x06h | 0x2Ch | X |

S. EMPTY | ACTIVE EMPTY |

The cell was subjected to twenty partial charge-discharge cycles over a variety of temperatures from 0°C to 40°C. This test was designed to prove the accuracy of the fuel gauging equations under conditions which are far more extreme than would generally be encountered in a standard commercial application.

The software then calculates the remaining capacity as a percentage of the difference between the empty and full points.

Considering cell behavior over temperature and discharge rate when calculating remaining cell capacity provides superior accuracy to coulomb counting alone. Maxim's fuel gauging equations can be applied to any Lithium-Ion cell type and any Maxim coulomb counting device while using a minimum of host processor cycles. They also adjust for cell to cell differences and cell aging, becoming more accurate over time.