Using matched pair PNP BJTs and analog MUX to measure cells in battery pack

My previous post was for an analog MUX using discrete MOSFETs and a flying capacitor for voltage measurement of the cells in a battery pack. That seems to be a workable design and I am going to get some prototype PCBs made to prove the concept. But I also considered a design using a DG409 (for 4 cells) or two DG408s (for 8 cells). To do that properly involves an instrumentation amplifier or differential amplifier that can handle inputs at the supply rails. The closest I found was INA326 which handles 100 mV above and 20 mV below, but supply is limited to 2.7-5.5 V. There are some "over the top" OP-amps such as the LT1636/7 which can handle 44V supply and inputs above the rails.

However, I made a simulation of a cell monitor circuit that uses a matched pair of PNP BJTs (BCM857) and it looks like it can read the top 3 of a 4 cell pack within about 5 mV. There is some common mode voltage effect, of about 0.1% (3mV for each 3V cell), but this could be compensated for by the microcontroller (PIC) that will do the ADC readings. The measurement draws only about 50 uA when sampling, and essentially zero when the MUX is disabled. There will probably be some error from the degree of matching (should be 2 mV max), and temperature, but since the devices are in the same package there should not be too much effect, and it may be possible to sense temperature and compensate for that as well.

I may be overlooking something, but this seems like a good way to accomplish this sort of measurement. let me know if you see any "gotchas"!

formatting link

formatting link

Thanks,

Paul

Reply to
P E Schoen
Loading thread data ...

Why not use a diffamp with a high common-mode range? INA146, something like that.

--
John Larkin         Highland Technology, Inc 

lunatic fringe electronics
 Click to see the full signature
Reply to
John Larkin

Looks pretty good to me.

The switch adds about 0.1% resistance, which could be compensated by putting a dummy (always on) switch at the bottom (in series with Q2), I suppose.

hFE will make an even smaller error, of course.

Early effect will make a small error (heavy emitter degeneration helps a lot here), and thermals as well (not that 15V * 50uA is all that much power). Both could be compensated by cascoding Q1, holding its Vce at a Vbe (same as Q2). I guess you'd need to stack two diode drops below Q1's emitter, to get the right base voltage, then another BC857 for the cascode (emitter to Q1 collector, base to diode-stack). Hardly seems worth it. There should be a simpler wiring (think how the Wilson current mirror works?) but I don't feel like thinking on it...

It might be worthwhile making R2 smaller, because of saturation, on the lowest taps. Then again, you can measure the lowest taps directly, or with a low ratio divider, so that can be solved other ways.

Tim

--
Seven Transistor Labs, LLC 
Electrical Engineering Consultation and Contract Design 
 Click to see the full signature
Reply to
Tim Williams

That seems like a good device for this purpose, except for the cost (about $5).

formatting link

Also, it seems the 100k input resistors will draw as much as 120 mA each from the top cell of a pack with four cells at 3V each. This might also be used on packs of 8 Li-Ion cells at up to 4 volts each and the current would be significant. I might also make the design capable of working on a pack of four nominal 12V SLA batteries, so the rail could be as high as 14 x 4 = 56 volts.

Nevertheless, I might add the INA146 to the prototype design as an option.

Thanks for the idea. I didn't include difference amps in my search.

Paul

Reply to
P E Schoen

I was able to get somewhat better accuracy by making R2 50.2k, but there is still an error related to the common mode voltage.

I have found a problem. Measuring the second lowest cell, the reading is adversely affected if the lowest cell is significantly lower in voltage. Here is what I found (*** indicates significant error):

V3=4.0 V4=3.0 Vout=3.558 *** V3=4.0 V4=4.0 Vout=3.994 V3=3.5 V4=3.0 Vout=3.476 *** V3=3.5 V4=3.5 Vout=3.495 V3=3.2 V4=2.5 Vout=3.031 *** V3=3.2 V4=3.0 Vout=3.197 V3=3.2 V4=3.2 Vout=3.197 V3=3.2 V4=3.5 Vout=3.197 V3=3.0 V4=3.0 Vout=2.998 V3=2.5 V4=3.0 Vout=2.499 V1=3.5 V4=3.0 Vout=3.503 V1=3.0 V4=3.0 Vout=3.001 V1=2.5 V4=3.0 Vout=2.504

Image:

formatting link
LTSpice:
formatting link

I thought it might be better to use a lower value resistor for R2, to get a voltage of 1/2 the cell value:

V3=4.0 V4=3.0 Vout=1.921 -4.0% V3=4.0 V4=4.0 Vout=1.921 -4.0% V3=3.5 V4=3.0 Vout=1.721 -1.6% V3=3.5 V4=3.5 Vout=1.722 -1.6% V3=3.2 V4=2.5 Vout=1.601 OK V3=3.2 V4=3.0 Vout=1.601 OK V3=3.2 V4=3.2 Vout=1.601 OK V3=3.2 V4=3.5 Vout=1.602 OK V3=3.0 V4=3.0 Vout=1.521 +1.4% V3=2.5 V4=3.0 Vout=1.321 +5.7% V1=3.5 V4=3.0 Vout=1.723 -1.5% V1=3.0 V4=3.0 Vout=1.523 +1.5% V1=2.5 V4=3.0 Vout=1.323 +5.8%

Image:

formatting link
LTSpice:
formatting link

I also played around with the same circuit for 12V batteries:

Divided by 10: V3=14 Vout=1.314 -6.5% V3=12 Vout=1.201 OK V3=10 Vout=1.088 +8.8% V1=14 Vout=1.315 -6.5% V1=12 Vout=1.203 OK V1=10 Vout=1.089 +8.9%

Image:

formatting link
LTSpice:
formatting link

No division: V3=14 Vout=12.572 -11.3% V3=12 Vout=12.003 OK V3=10 Vout=10.005 OK V1=14 Vout=14.034 +0.2% V1=12 Vout=12.032 +0.3% V1=10 Vout=10.030 +0.3%

Image:

formatting link
LTSpice:
formatting link

Looks like the high CMRR diff amp may be the best solution other than the flying capacitor. I wonder if a pair of low Vg PMOS devices would work better? I doubt it, but I'll give it a try.

Thanks,

Paul

Reply to
P E Schoen

Well, I tried it, and it seems to work (almost) perfectly!

Very good for 3V nominal lithium cells:

V3=4.0 V4=3.0 Vout=4.002 V3=4.0 V4=4.0 Vout=4.002 V3=3.5 V4=3.0 Vout=3.502 V3=3.5 V4=3.5 Vout=3.501 V3=3.2 V4=2.5 Vout=3.201 V3=3.2 V4=3.0 Vout=3.201 V3=3.2 V4=3.2 Vout=3.201 V3=3.2 V4=3.5 Vout=3.201 V3=3.0 V4=3.0 Vout=3.001 V3=2.5 V4=3.0 Vout=2.501 V1=3.5 V4=3.0 Vout=3.502 V1=3.0 V4=3.0 Vout=3.001 V1=2.5 V4=3.0 Vout=2.501

Image:

formatting link
LTSpice:
formatting link

Almost as good for a 12V battery pack:

V1=10V V4=12V Vout=10.001 V1=12V V4=12V Vout=12.002 V1=14V V4=12V Vout=14.003 V3=10V V4=12V Vout=10.001 V3=12V V4=12V Vout=12.002 V3=14V V4=12V Vout=13.996 V3=14V V4=10V Vout=13.006 -7.6% V3=16V V4=10V Vout=14.008 -14.2% V3=12V V4=10V Vout=11.992

Image:

formatting link
LTSpice:
formatting link

I don't know how closely matched the MOSFETs need to be. I'll have to look for matched pairs.

Thanks,

Paul

Reply to
P E Schoen

formatting link

They'll sell a whole module with display for $1.16. Gotta be a cheap chip somewhere in there.

Reply to
mike

Ummm... I must be missing something here. My calculator says 120uA through 100k at 12V.

Reply to
John S

That's saturation of the compensation transistor, of course.

Under heavy charge, cell temperatures will mismatch somewhat (unless you maintain thermal symmetry by making the pack toroidal?)... so I'd ditch the compensation transistors, and just use a resistor to a negative reference voltage (that means the bottom cells get the same level-translation transistor as the top ones).

Same-batch transistors will Vbe match to

Reply to
whit3rd

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.