Electronic – Measure battery pack cell voltages with analog multiplexer and instrumentational amplifier

batterieslithiummultiplexeroperational-amplifier

I'd like to measure the voltages of individual lithium based cells (LiPo, LiIon, LiFePO4) in a battery pack (up to 4 cells in series), using an ADC. I was thinking about the following approach, using an analog multiplexer and an amplifier:
enter image description here

  • The multiplexer is powered by the battery to prevent the cell voltages to be above the multiplexer's supply voltage.
  • The multiplexer routes each cell's positive and negative terminal to the amp's inputs.
  • The amplifier is also powered by the battery pack.
  • The amplifier has a gain of 1 and turns the selected cell's voltage into a single ended signal that is then divided down to ADC range.

I'm looking for an accuracy of 10 mV.

My questions:

  • Is this a reasonable approach?
  • What should I look out for in the amplifier? So far it would have to support rail-to-rail inputs, unity gain and high CMRR. Any recommended types for this application?
  • Channel select and inhibit inputs could simply be driven with an N-channel FET and a pull-up to +BATT. Should I consider other approaches?
  • What kind of filtering should I have at the amplifier's inputs?
  • Are there any caveats when the pack has less than 4 cells (in the schematic: BT3 and BT4 shorted for a pack with 2 cells)

Best Answer

The approach is reasonable. Things I'd consider adding: -

  • Resistors in series with each battery feed to the multiplexer to prevent circuit board track burning when you get it wrong and short the battery out.
  • Use an InAmp with a small negative rail so that you can avoid having to get rail-to-rail devices (more options are created)
  • If you implement the series resistors I mentioned then a 10 nF across the InAmp input terminals and 10nF from each input to ground gives you sufficient filtering.
  • Ensure that the maximum battery voltage does not get close to the peak voltage supply for the CD4052. Max value is 20 volts from the data sheet.
  • Logic line levels do need to follow the battery supply so use MOSFETs and pull-ups as you mention.
  • I'd consider using the AD620 as the InAmp but don't forget the small negative rail (circa -3 volts)
  • For the ADC, the potential divider needs to be calculated correctly and the inherent resistance it provides might be enough of a protection on its own. However, it doesn't hurt to have diodes to both rails in case of over or under voltage.