Coulomb Counting: Design Rules and Process Limits

A coulomb counting gauge measures the current into and out of a battery and integrates it over time. The principle is simple and the practical difficulty is that every small error accumulates without limit, so the offset of the measurement is the parameter that matters most.

The Principle and Its Weakness

Charge is the integral of current with respect to time, so the gauge measures the current continuously and adds the product of current and interval to a running total. The state of charge follows from that total and from the capacity of the cell.

The weakness is that no measurement is exact. A current that reads one milliamp high on a battery that is charged and discharged over ten hours accumulates an error of ten milliamp hours, which on a small cell is several percent.

The error grows without bound, and it is removed only by an occasional reset against a known reference. That is why a practical gauge combines counting with an open circuit voltage measurement.

Current Sensing and Its Resolution

The current is measured across a sense resistor, usually a few milliohms so that the power lost at full current is acceptable. A twenty amp current through five milliohms produces a hundred millivolts, which is a comfortable signal.

The measurement range has to cover the standby current, which may be microamps, as well as the charge and discharge currents of several amps. Covering that range with one converter needs eighteen or more bits, which is why a dedicated gauge part with an automatically switched range is common.

Bidirectional measurement is required, because the same resistor sees charge and discharge. The converter must therefore handle both signs and its offset must be small compared with the standby current.

Fuel gauge circuit measuring current through a sense resistor

offset error and Its Consequences

offset error is the reading with no current flowing, and it integrates directly into the count. An offset of a hundred microvolts across a five milliohm resistor corresponds to twenty milliamps, which is forty eight milliamp hours per day.

That is the number that decides whether the gauge is usable. A part with a hundred microvolts of offset needs the error correction that a dedicated gauge provides through periodic offset measurement and removal.

A chopper stabilised amplifier reduces the offset but its switching may inject charge into the sense path. The layout and the filtering of the sense connection decide whether that matters.

sense resistor Choice

A metal alloy resistor with a low temperature coefficient is the usual choice. Copper has a coefficient of about four thousand parts per million per degree, so a copper trace used as a sense element is unusable for anything but a rough indication.

Kelvin connections to the sense resistor remove the effect of the solder joint and the trace. At a full scale of a hundred millivolts the joint resistance is a small but measurable term, and at a lower full scale it becomes dominant.

The resistor has to dissipate the full load current continuously, and its power rating is set from that rather than from the peak. A sense resistor that heats by twenty degrees shifts the reading through its own coefficient.

Battery sense resistor and gauge IC layout on a battery board

accumulated error and Its Correction

The accumulated error is corrected in three ways. The first is to measure the offset with no current at intervals and subtract it, which removes the largest single term.

The second is to reset the gauge when the battery reaches a known state, either fully charged or fully empty. A full charge is the easier reference because the termination current is defined by the charger.

The third is to blend the counted value with an estimate from the open circuit voltage. The voltage is a poor indicator during charge and discharge, and it becomes accurate after a period of rest, which is when it is used.

state of charge and Capacity Fade

state of charge is the counted charge divided by the capacity, and the capacity itself changes with age. A cell that has lost fifteen percent of its capacity still accepts charge, so the gauge slowly becomes optimistic unless the capacity is updated.

Learning the capacity is done by recording the charge that passes between a full and an empty point. That requires the cell to be taken through a full cycle, which may take weeks in a product that is seldom fully discharged.

Until the capacity is learned, the gauge uses the initial value and the error grows. Reporting an uncertainty, or falling back to the voltage estimate, is more honest than reporting a precise number that is wrong.

Layout and Noise

The sense resistor and the gauge input form a differential pair, and they should be routed as one. A shared return with the load current puts the load current into the measurement, which is the error that a Kelvin connection is designed to remove.

The input filter has to be matched on both sides, because a mismatch converts the common mode of the load into a differential signal. The filter also has to be quiet, and a capacitor with a high leakage is unsuitable.

Protection at the input is needed for a battery that can be connected in reverse. A series resistor and a clamp diode protect the gauge input, and their leakage contributes to the offset if they are not chosen with care.

Gauge IC and System Integration

Many gauge circuits integrate the converter, the integrator and the learning algorithm in one part. The saving in firmware effort is large, and the accuracy still depends on the same sense resistor and the same layout as a discrete design.

The gauge reports its result over a serial bus, and the host reads it when the product needs to display or transmit it. The interval between readings is short compared with the rate at which the state of charge changes, so the bus load is small.

Temperature reporting from the gauge is a useful extra. It lets the system reduce the charge or discharge current when the cell is hot, which is a protection function as much as a comfort one.

Verification and Faults

Verify the gauge with a known current over a known period and compare the counted charge with the product. That test measures the gain and, by repeating it with no current, the offset.

Measure the offset with the load disconnected and the battery in place, and again at a different temperature. A change in the offset with temperature is the term that limits the accuracy of the gauge over the life of the product.

A gauge that reads too high at a low current usually has a resolution or an offset problem, and one that drifts over weeks has an accumulating offset. The release checks that keep such a board consistent are collected in our PCB design release checklist, the assembly points in judging PCB quality, and the layout measures for a low level input in our guide to mixed signal board design.

FAQ

Why is my fuel gauge drifting? An offset in the current measurement integrates into the count. Measure the offset with no current and correct it periodically.

How accurate can coulomb counting be? A few percent over a full cycle with a good sense resistor and a corrected offset. Without offset correction it is much worse.

Can the gauge work from voltage alone? Not during charge or discharge. The voltage method is used to correct the count after a period of rest.

Leave A Comment