I was considering multiple options for monitoring large stack of batteries/cells for an off-grid solar application. Recently i came across a very interesting approach described in the AN112 from Linear Technology by Jim Williams and Mark Thoren entitled “A Simple Solution to a Not So Simple Problem”. I will simply cite some parts directly from it:

... These stacks of individual cells may contain many units,
reaching potentials of hundreds of volts. In such systems it
is often desirable to accurately determine each individual
cell’s voltage. Obtaining this information in the presence
of the high "common mode" voltage generated by the battery
stack is more difficult than might be supposed...

... This "common mode" voltage may reach hundreds of
volts in a large series connected battery stack such as
is used in an automobile. Such high voltage operation is
beyond the voltage breakdown capabilities of most prac-
tical semiconductor components, particularly if accurate
measurement is required. The switches present similar
problems. Attempts at implementing semiconductor based
switches encounter diffi culty due to voltage breakdown
and leakage limitations. What is really needed is a practical
method that accurately extracts individual cell voltages
while rejecting common mode voltages. This method cannot
draw any battery current and should be simple and
economically implemented.

They are proposing a “transformer based sampling voltmeter” and also a method of extending this voltmeter to many cells using only few additional components.

Modified solution for higher voltages

The proposed solution works as expected, except it has one large drawback. The voltage of generated pulses on the primary side needs to be higher than the maximum expected cell voltage (if the transformer turns ratio is 1:1). This is manageable for cells with very low voltages (like Ni-MH, Ni-Cd, Li-Ion/Li-Pol) but might be a problem if we want to monitor multicell batteries (like multiple serially connected 12V lead-acid batteries in a solar system) and not each cell individually.

One possible solution is to use a different turns ratio transformer. But let's assume we have a plenty of cheap 1:1 pulse transformers available…

Another possibility is to modify the secondary part of the transformer, however we will lose the feature of zero idle current draw. It works as a simple PNP shunt voltage regulator and it crops all transformer voltages greater than the voltage on the C1 capacitor which is determined by the R1/R2 voltage divider. The capacitor allows us to use large resistance voltage divider to waste only a low amount of current. For a 12V lead acid battery it draws about 14.5V / (1Mohm + 47Kohm) = 14uA.

This may be a good compromise if…

Let's abuse an ethernet transformer

After many hours spent searching for a suitable and cheap transformer which would allow me to build a voltage monitors for my batteries I realized that the solution exists directly in front of me in an ethernet switch. I used a F4discovery board to test it.

f4disco_1.jpg f4disco_2.jpg

I set it up to generate 5 microsecond pulses at 40Hz. The next picture shows the generated pulse (channel 1) and the voltage on the transformer primary side (channel 2). There is a comparison of the primary and secondary side voltages on the second picture (channel 1 - primary, channel 2 - secondary). It is clear that chopping the voltage on the secondary side causes the primary side to be chopped too as described in the application note.

The next set of pictures shows the same circuit with 0V, 1.5V, 5V and 12V voltage applied. Channel 1 is the secondary side waveform and channel 2 is the voltage on the C1 capacitor (the battery voltage divided by R1/R2 divider). It can be seen that the difference between both measured voltages is always 0.76V which equals to the drop of Q1 transistor.

This way we can measure the battery voltage by measuring the chopped voltage on the secondary side.

  • multi-cell-isolated-battery-voltage-monitoring/index.txt
  • Last modified: 2018/02/24 09:53
  • by qyx