integrated circuit Improving absolute precision of ADC to balance battery voltage

Not rated 10,710

Circuit Image

Utilize a high-performance microcontroller (Piccolo TMS320F28035, 12-bit resolution, +/- 4 LSB offset, +/- 60 LSB gain) to measure the voltage across stacked battery cells and control related analog electronics for charge equalization. The microcontroller will also save data in EEPROM memory (black box). The current plan involves reading up to 10 cell voltages. The challenge is the substantial common mode voltage (each cell can reach up to 3.5 V), which prevents the use of isolated amplifiers like INA124 or non-isolated high-precision INA117 due to their high cost. A software correction for the high voltage-divider ratio is planned. Calibration values will be stored in the EEPROM. One suggestion involves using one operational amplifier per cell to eliminate the common mode voltage and potentially amplify the actual differential voltage to optimize the ADC's input range. This amplification may enhance measurement accuracy. The operational amplifiers must have a very high Common Mode Rejection Ratio (CMRR) and a supply voltage that exceeds the maximum/minimum input voltage. It is possible to use voltage dividers to reduce the input voltage, followed by amplification. The battery pack's output could serve as the supply for the operational amplifiers. Rail-to-rail op-amps are recommended, which generally excludes bipolar devices. The design may need to consider whether charging batteries or supercapacitors is involved. This op-amp-based circuit allows for scaling the output value by adjusting resistor values. For example, scaling a maximum cell voltage of 3V (range 0V to 3V) to an output of 5V (range 0V to 5V) for a 5V ADC, or scaling down to measure a maximum of 4.2V LiPos with a 3.3V microcontroller/ADC. Furthermore, an additional op-amp per cell can eliminate a constant offset voltage, thereby increasing measurement resolution. For instance, if a single cell is measured between 2.5V and 3V, subtracting the 2.5V constant voltage with a second op-amp allows the resulting limited voltage range of 0V to 0.5V to be scaled up to 0V to 3.3V. With a 10-bit ADC, this configuration would yield a theoretical resolution of approximately 0.5mV per LSB.

The proposed circuit employs the Piccolo TMS320F28035 microcontroller, which features a 12-bit ADC capable of precise voltage measurements across multiple battery cells. Each cell's voltage will be conditioned using operational amplifiers configured to subtract the common mode voltage, thereby ensuring that the ADC operates within its optimal range.

The choice of operational amplifiers is critical; they must exhibit a high CMRR, typically above 80 dB, to effectively reject the common mode signals. Additionally, rail-to-rail output capability is essential to maximize the output swing, particularly when interfacing with a microcontroller operating at lower voltage levels. The design may incorporate voltage dividers to scale down the voltage from the battery cells before processing, thus allowing the amplifiers to work within their linear range.

The EEPROM memory will store calibration data, enabling the system to compensate for any offsets or gain inaccuracies inherent in the measurement process. This calibration data will be vital for ensuring the reliability and accuracy of the voltage readings, particularly in applications where precise battery management is required.

In terms of implementation, the circuit will feature a robust layout to minimize noise and interference, which could affect the sensitive analog measurements. Proper grounding techniques and decoupling capacitors will be employed to enhance stability. Overall, this design aims to achieve accurate voltage measurements and effective charge equalization across multiple battery cells, ensuring optimal performance and longevity of the battery system.Use a relatively high-end microcontroller ( Piccolo TMS320F28035, 12-bit resolution, +/- 4LSB offset, +/- 60 LSB gain ) to measure voltage across stacked battery cells and control associated analog electronics to equalize their charge. The microcontroller will also store data in an eeprom memory (blackbox). The current plan is to read up to 10 cell voltages. The problem is the large common mode voltage (each cell can go up to 3. 5 V) - I cannot use isolated amplifiers such as INA124 or non-isolated high-precision INA117 due to high cost. Correct for the "high voltage-divider ratio" in software. You mentioned you have an EEPROM, store some calibration values in it. jippie Mar 31 `13 at 21:07 Have you considered to use one op-amp per cell to subtract the `common mode` voltage and possibly amplify the actual dV to make the best use of your ADC`s input range in one step Through the amplification you may even increase the accuracy of the measurement.

Hanno Binder Apr 2 `13 at 21:40 @HannoBinder the dif opamps would have to have a very high MPRR ratio and voltage supply that exceeds the maximum / minimum input voltage, right SunnyBoyNY Apr 2 `13 at 21:47 Sorry, but what`s an "MPRR ratio" - Yes, the supply voltage must usually cover (at least) the absolute input voltage range. You can still use voltage deviders to reduce the input voltage (and then have it amplified by the amplifier again), or you maybe you can use the battery pack`s output itself as supply for the op-amps.

Hanno Binder Apr 4 `13 at 7:58 @HannoBinder Sorry, I meant CMRR, not MPRR. I actually do like your suggestion - opamps with good (80dB+ CMRR) are quite common and the idea with lowering the cell voltage by a little bit using voltage dividers should work out as well. SunnyBoyNY Apr 4 `13 at 13:26 I`m not sure if this works when "self-powered" from the battery pack as sketched.

You should definitely go for a rail-to-rail op-amp, which kind of excludes bi-polar devices. Are you actually charging batteries or rather "supercapacitors" - Maybe you can find some ideas for either case by searching for "supercap balancing", resulting for example in this paper on the topic. Maybe it`s worth mentioning that with this op-amp-based circuit you can of course scale the output value to your exact needs by varying the resistor values.

For example, one might want to scale some "3V max. " of the cells (= range from 0V to 3V) to an output of "5V max. " (range 0V to 5V) to feed into a 5V-ADC. Or one may scale the voltage down, for example to measure "4. 2V max. " LiPos with a 3. 3V µC/ADC. With one more op-amp per cell it`s also possible to remove some constant offset voltage and increase the resolution of the measurement. If, for example, a single cell needs only be measured between 2. 5V and 3V, the 2. 5V constant voltage can be subtracted by the 2nd op-amp, and the resulting, limited voltage range of only 0V - 0.

5V can then be scaled up to, e. g. , 0V - 3. 3V. With a 10-bit ADC this would yield a (theoretical) resolution of 0. 5V/1024 ~ 0. 5mV/LSB. 🔗 External reference