PDA

View Full Version : Battery pack cell reader



steiner
- 7th March 2008, 22:38
Hello to everyone,

I am new to this site but have already found it to be a great resource. Thanks.....

I need some helpful insight into a problem that I have. I have a 72 volt battery pack that consists of 24 individual cells connected in series. I want to be able to measure each individual cell voltage which will vary from 3.6 volts to 2.8 volts and display this voltage on an LCD screen one at a time.

To start simple, I used a 12CE674 (had one laying around) and have written the code to measure a voltage that I can vary between 0 and 5 volts and display the output (X.XX volts) on an LCD screen. It works fine.

Now for the next phase to my original goal. My plan was to use two 16 channel multiplexers (74HCT4067) with all of the odd numbered nodes of the battery pack connected to one multiplexer and all of the even numbered nodes of the battery pack connected to the other multiplexer. This way I could use a PIC (plan on using an 18F252) to select adjacent nodes of the battery pack which will represent an individual cell. These two outputs from the two multiplexers would be connected to two analog input channels on the PIC, one of which is connected to the Vref pin.

From this point on, I am beginning to think that my logic might be in error. The idea was that since one of the two analog inputs was connected to Vref and that the delta voltage between the two inputs was never more than 3.6 volts, that everything should work.

The first issue is the first reading will be such that the Vref pin will be on the low side of the delta voltage. The next reading will be such that the Vref pin will be on the high side of the delta voltage. This will toggle back and forth as I move down the string of cells. Will the PIC be OK with this? Assuming it is, I was planning on handling that situation with an ABS command to remove the negative reading.

The second issue is can two analog input pins measure a delta voltage between them with the battery pack and the monitoring circuit on two different grounds? Will this work????

The last thing I want to do is pull my hair out trying to get some code to work only to find out that my logic is incorrect. Can someone let me know if I am going down the wrong road? I am certainly open to any other possible solutions.

Thanks.....

Acetronics2
- 8th March 2008, 08:20
Hi, Steiner

The problem will be to find circuits ( Multiplexers, Comparators, AOPs ... ) that can bear 72 v on their inputs.
For Li-ion or Li-PO, a good precision has to be kept, so voltage dividers have to be forgotten ...

A solution could be to use a simple V / F or V / PWM converter ( low end PiC ... i.e.) connected to each cell, and opto couplers to enter the info into your main controller ...

Alain

BrianT
- 8th March 2008, 11:21
A patent search will reveal numerous strategies for 'Lithium battery balance chargers'. These all read the voltage of individual cells in a series string and ensure any cell get whatever it needs to charge to the same voltage as the rest of the cells in the battery. This is essential for all high capacity rechargeable Lithium systems and is used in most laptop computers.

A very cute system places a large capacitor across one cell. It then puts the same capacitor across the next cell. Any voltage difference results in a small charging/discharging of that cell. The switching process cycles indefinitely and all cells end up at exactly the same voltage. Being capacitive, the system is essentially lossless and very efficient.


HTH
Brian

skimask
- 9th March 2008, 06:41
I need some helpful insight into a problem that I have. I have a 72 volt battery pack that consists of 24 individual cells connected in series. I want to be able to measure each individual cell voltage which will vary from 3.6 volts to 2.8 volts and display this voltage on an LCD screen one at a time.
One system I saw awhile back...
A guy had a similar deal going with a bunch of LiPo batt's in an EV.
He had a bunch of 'modules' made, one for each LiPo cell, mounted right on top of the terminals.
The modules were all identical. Each had a few MOSFETs (one for basically shorting across the cell terminals, and a couple more for 'disconnecting' the cell from the string, a precision Vref, and a 12F683 (I think).
The basic operation was...the PIC would draw uA off the cell itself for running, low power mode, slow clock, sleeping most of the time, etc.etc.etc...
The 'shorting' MOSFET was 'off' most of the time, the 'disconnect' MOSFETs were 'on' most of the time. (I'm not 100% sure on the MOSFET idea, this was awhile back, but this is how I remember it)

The PIC on top of each cell would wake up once in awhile, check the cells voltage against the precision Vref on the module. If the cell's voltage was too low, it would 'open' the 'disconnect' MOSFETs, and turn on the 'shorting' MOSFET, keeping that cell from draining too low by bypassing it. If the cells voltage got too close to the upper cutoff, same thing happened, bypass it to keep the charge off of it.
There was also a serial line coming in and going out to a 'MASTER' PIC which monitored all of the PICs on the cells and these serial lines were set up in a daisy chain. PIC-Cell#1 would generate a message containing voltage and send it to PIC-Cell#2. PIC-Cell#2 would get that message, add it's own info and send it to PIC-Cell#3 and so on and so on. The MASTER PIC would get all this info and display it as needed.
I would almost think that this method, with 24 identical modules, all running the same code, doing the same function, would almost be easier than trying to tie a bunch of analog inputs/outputs/multiplexers together.