Correct way to measure high voltage battery pack? - Page 1
Forum section: electronics / projects

author: gch
author_rank: Newbie
timestamp: June 14, 2013, 07:35:38 pm
content: Hey! Long time lurker, first time poster.I'm trying to measure the voltage of a 48V LiFePO4 battery pack, but I want to make sure my design can handle up to 70V.Basically my ADC has a desired 10k input impedance, but I really want to minimize any sort of load on the pack (as it may go long periods without any use/charging) and maintain good precision on the reading.I'd like to buffer the voltage reading with an op amp, but I'm curious what the correct way to do this is? Should I have a high impedance voltage divider that goes into an op amp? Should I have a high working voltage differential op-amp that connects directly to the pack?The voltage reference of my ADC is going to be going from 0-2.5V full scale.Any other suggestions/ways to do this?Thanks

author: Paul Price
author_rank: Super Contributor
timestamp: June 14, 2013, 08:46:19 pm
content: Just use a 30x time oscilloscope probe type voltage divider circuit to feed a single JFET op amp configured as a voltage follower. Use a small variable cap (a 2-in pair of tightly twisted #24 gauge insulated wires across the top resistor) to adjust and minimize overshoot/undershoot, if you are making fast switching measurements and instantaneous waveform shape is important. Start with a 9.1meg/330k divider and trim by software or by a trim pot to set divider accuracy. You can turn/on off the FET input op-amp with a N-Chan power MOSFET LV threshold type attached to the -VEE power pin of the op-amp to save battery.

author: AndyC_772
author_rank: Super Contributor
timestamp: June 14, 2013, 08:47:33 pm
content: Use a potential divider to scale the battery voltage down to the desired range, and use a P-channel FET to disconnect the battery from the divider when it's not needed. When you want to make a measurement of the battery voltage, turn on the FET, perform a conversion, then turn the FET off again.To control the P-FET, connect a resistor between its gate and source, and use a separate N channel FET to ground the gate when you want to turn it on. You may need a second potential divider to limit Vgs to a safe value (say, 10V or so depending on the device spec).

author: penfold
author_rank: Frequent Contributor
timestamp: June 14, 2013, 09:25:42 pm
content: Whilst you're at it, remember to protect your instrumentation cables with a fuse, so locate it close to the battery positive or if it isn't easily accessible as close as is practical to the battery positive - mishaps happen!If you are interested in any HF response of the battery pack then you would be best AC coupling a second amplifier to maximise the dynamic rangeWith regard to any current drawn from the pack then knowing the capacity of it would be useful as well as what you are interpreting as "...long periods...". A 48k impedance potential divider would a C/1000 load on a 1AH capacity which is near negligible for the majority of circumstances.If the 70V tolerance you're after is the maximum range over which you wish to retain accuracy then just size the potential divider accordingly, however, if we are talking fault mode then you're best minimising the attenuation of the potential divider and adding some kind of over-voltage protection such as a zener diode at the opamp input.A little more information about the application wouldn't hurt

author: Andreas
author_rank: Super Contributor
timestamp: June 16, 2013, 04:55:15 am
content: Hello,the simplest way would be to use a voltage divider which is switched off when not used by the ADC.The design with a P-Channel FET has already be mentioned.But if you have a CPU with 5V supply you can also use a logic level FET with a low VGS threshold voltage like BSS123.With best regardsAndreas

author: peter.mitchell
author_rank: Super Contributor
timestamp: June 16, 2013, 11:18:39 am
content: I assume the 48v LiFePo4 pack is for an E-bike or at least is of that type correct? In all honesty, i'd just get a panel mount style voltmeter (likethis) and use a 3p2t switch, turn the voltmeter on, read battery, turn volt meter off when done. 0 standby current. why 3p2t? because most panel voltmeters need a separate supply, so you'd have a regulator, ground and the measurement wire you'd need to switch.

author: gch
author_rank: Newbie
timestamp: June 16, 2013, 11:30:46 pm
content: Thanks for all the info everyone.I think I'm going to go with a FET switched voltage divider with fairly high resistance values coupled with a voltage follower OP-AMP to get the impedance down to manageable levels.

author: digsys
author_rank: Unknown
timestamp: June 17, 2013, 02:32:04 am
content: I'd agree with penfold. Don't worry about using a FET switch, the "leakage" is bugger all and all you're doing is adding more"possibility of error" and non-linearity. I do monitoring for packs up to 180V, and often even draw 0.1-1mA constant from3-4 cells in, which you'd think was a no-no (uneven load), but it's perfectly fine. There's already differences in "leakage" and"drift" between cells anyway, plus a charge cycle sorts out any variations. I stopped using FET switches years ago. YMMV

author: gch
author_rank: Newbie
timestamp: June 17, 2013, 06:29:48 am
content: Haha. I actually sat down and figured it out. Turns out you could have the voltage divider hooked up for 25 YEARS until my pack is totally drained. Definitely not bothering with FETS.The project is a new BMS system for the Mondo Spider (). It has a 16x100Ah LiFePO4 battery pack with commercial cell balancers.I'd kind of like to take this a step further. As our balancers provide no data output, we'd like to measure the individual cell voltages. My first idea was to use a series of voltage dividers, but that seemed too inaccurate. The issue is with the dfference between common mode voltages as you go down the cells in the pack.I have attached a schematic of an idea I had. Basically it works around this Fully-Differential isolation amplifier chip from TI:http://www.ti.com/lit/ds/symlink/amc1200.pdf.Each cell would be hooked up to the circuit, and then to a mux and an ADC.Do you think this would work for measuring the cell voltage? Would I still have any voltage issues? I have attached a (very) rough schematic.

author: peter.mitchell
author_rank: Super Contributor
timestamp: June 17, 2013, 07:04:46 am
content: How fancy does this need to be?You could probably split the pack measurement into 2x 8 cells, that gets you down to a very manageable 24~v, then on each pack get someopampsto get your differential voltages then stick a micro and some analogue switches (to cycle the input to our micros ADC) and a regulator(for the micro) and an opto or two to spit the data between the micros and just have the micro on the bottom pack spit the data over rs-232/bluetooth/usb/whatever.

author: SeanB
author_rank: Super Contributor
timestamp: June 17, 2013, 07:26:24 am
content: There are battery monitors that are one per 2/3 cells, and they connect all together serially using a capacitor between each IC. Only the bottom one is connected to the micro, the ones above are all addressed via this one in a long serial buffer line. Can't remember the part number, but they are available.

author: digsys
author_rank: Unknown
timestamp: June 17, 2013, 09:12:36 am
content: Quote from: gchI've spent many years designing BMSs, and this is my most favourite front end (free to you :-) )Linear Technology have 3 HV Diff-amps in that series, but I found the LT1990 able to cover all my designs. It also has very high accuracy,and can be jumpered to x10 and cheap for what it is.Run a light twisted pair (HV rated) to each cell. That gives you +/- 250V range for each input. Find a low power micro with enough ADCsand resolution, and run each cell OP Voltage to a separate Input. I use Silabs C8051F50X, which has 32x 12bit ADCs + 13bit ProgrammableGain amp (to save cal values for each input) + Temp Sensor +++. These 2 were made for each other, but you can use any MPU, naturally.The MPU will then do all the hard work and spit out data in a single data bus, of whatever you prefer.The only Isolation you now need is Power, Isolated DC-DC converter (ie NME1205) and data (ie Si8442 or similar).And you won't have to worry about linearity, drift, aging etc. I've also used Linear optos (ie IL300), but it's a lot more hassle.Edit: With that micro, I run up to 22 channels (cells) per card.

author: gch
author_rank: Newbie
timestamp: June 17, 2013, 04:35:53 pm
content: Thanks, that circuit is exactly what I was looking for.One question. I'm realistically never going to see a voltage above 70V anywhere in this battery pack. After a quick look at the datasheet, it looks like with a 5V single supply it can have a common mode up to 85V. In my case would a 5V single supply be sufficient? What kind of common mode range were you getting with the dual 12+ 5-? Am I missing anything?

author: digsys
author_rank: Unknown
timestamp: June 17, 2013, 11:25:26 pm
content: Quote from: gchBefore you make the final decision, check out the rest of that series - parametric.linear.com/Difference_Amplifiers#!num_!gbw_!sr_!is_!vsmax_LT1990, LT1991, LT1995, LT1996 - one of the others may suityoubetter.I don't have my notes in front of me, and have to rush out, but if you ran the 2 equations in the notes, you're good to go.Worst case, making a small -5V is quite easy, as it needs bugger all current. So, nope, not missing anything.