LTC6802 based 12 cell slave.

Threads relating to the BMS system begun by Peter Perkins

Moderators: GregsGarage, retepsnikrep

GregsGarage
Posts: 870
Joined: Tue Apr 01, 2008 5:27 pm
Location: Galashiels, Scottish Borders
Contact:

Almost ready to install in my Matiz

Postby GregsGarage » Sun Nov 18, 2012 10:51 pm

After quite a bit of work on both the slave and Maximite master software I have both of them talking to each other. The MM can now read cell voltages from my slaves. So now I need to wire in some connectors to the Matiz to accept the slaves and do some road testing. :D
Greg Fordyce

Daewoo Matiz
http://www.evalbum.com/4191

isaac_alaska1
Posts: 100
Joined: Sun Apr 03, 2011 7:41 pm

Re: LTC6802 based 12 cell slave.

Postby isaac_alaska1 » Sun Nov 18, 2012 11:34 pm

this looks really nice Greg, glad to see you are making so much progress. how is balancing done? it looks like you are just using the LTC chip directly to dissipate the balance current?

-Isaac

GregsGarage
Posts: 870
Joined: Tue Apr 01, 2008 5:27 pm
Location: Galashiels, Scottish Borders
Contact:

Re: LTC6802 based 12 cell slave.

Postby GregsGarage » Mon Nov 19, 2012 10:13 am

It is possible to dissipate small amounts of balancing current through the 6802, but I have not connected the balancing pins. This board will only monitor cell voltages. I did this for a couple of reasons. First it makes layout much easier and gives you a much smaller board. Second, daily balancing shouldn't be necessary for most packs. I haven't done any balancing on my pack for more than 6 months, and other reports also suggest similar experiences. So balancing will be moved off-board of the vehicle and be done periodically when needed. I am thinking this will be some sort of individual cell charger to bring all cells up to the same SOC rather than holding all cells at a high voltage for extended periods while dissipating current from the highest cells.

Another goal for this design was to make the master and slave buses more robust and resistant to interference. What I have found in my Matiz, where the battery boxes are spread out from the front to the back of the car, is that communications aren't as robust as they should be. I get some glitches during hard acceleration and as the pack gets discharged. So I have moved the isolation to the pcb, both the master and slave bus are fully isolated from the traction pack. This allows me to increase the voltage levels and so improve communications (I hope :shock: ).
Greg Fordyce

Daewoo Matiz
http://www.evalbum.com/4191

casemod
Posts: 17
Joined: Mon Dec 17, 2012 3:18 am

Re: LTC6802 based 12 cell slave.

Postby casemod » Sun Dec 23, 2012 4:18 am

GregsGarage wrote:It is possible to dissipate small amounts of balancing current through the 6802, but I have not connected the balancing pins. This board will only monitor cell voltages. I did this for a couple of reasons. First it makes layout much easier and gives you a much smaller board. Second, daily balancing shouldn't be necessary for most packs. I haven't done any balancing on my pack for more than 6 months, and other reports also suggest similar experiences. So balancing will be moved off-board of the vehicle and be done periodically when needed. I am thinking this will be some sort of individual cell charger to bring all cells up to the same SOC rather than holding all cells at a high voltage for extended periods while dissipating current from the highest cells.

Another goal for this design was to make the master and slave buses more robust and resistant to interference. What I have found in my Matiz, where the battery boxes are spread out from the front to the back of the car, is that communications aren't as robust as they should be. I get some glitches during hard acceleration and as the pack gets discharged. So I have moved the isolation to the pcb, both the master and slave bus are fully isolated from the traction pack. This allows me to increase the voltage levels and so improve communications (I hope :shock: ).


Hi greg, I got the schematic, but I am a bit confused now,

Does your 6802 Slave works with peter V2 master board or are you planing to make it work with V3 using your own code?

I would do some radical changes into the BMS itself, starting with the Master.

Right now all the calculations are taking place on the master which has to receive all the (useless) data from the slaves. This is fine as originally designed by peter for less than 100cells, but it is a problem once this number goes up.

My idea is to use the slave PIC to communicate with the LTC6802 and a fuel gauge/monitor and carry out all the operations for the 12Cells on the built in PIC. The master would only know:

Temperature of the pack
Capacity Status of the pack (Remaining/used/instant consumption)
Lowest cell on the pack
Highest cell on the pack
HVC (to stop or reduce Regen)
LVC (To warn the master the pack voltage is low or disable the pack)

This is much less data that before, with much less work for the master!!!!
The build in VC would allow the pack to be used independently with a charger and the charger would know what the capacity of the pack is. The only thing the master would need to do is reading data and display it on a screen or give a command to enable the slaves or master relay (for the immobilizer).

I was also looking at the Datasheet for the 6802 and given that you can daisy chain them, will it be possible to make a PCB say for 48Cells (4 6802 and only one PIC, Opto, etc) instead of using the pics to communicate with each other every 12 cells, thrus reducing components and complexity.

I have been looking into MAXIM DS2438 as one of the possible options for the fuel gauge IC
It has a inbuilt temperature sensor for the pack, costs about the same as the I2C temperature sensor used on V2 and has advanced features like compensation for aging of the pack and build in time meter that could be used to disable the charger after a preset time or capacity is reached, for security.

http://www.maximintegrated.com/datasheet/index.mvp/id/2919?ver=E&t=al&utm_expid=50713806-2&utm_referrer=http%3A%2F%2Fwww.google.co.uk%2Furl%3Fsa%3Dt%26rct%3Dj%26q%3Dmaxim%2520ds2438%26source%3Dweb%26cd%3D1%26ved%3D0CDUQFjAA%26url%3Dhttp%253A%252F%252Fwww.maximintegrated.com%252Fdatasheet%252Findex.mvp%252Fid%252F2919%26ei%3DF4_WUMemHqaZ0QX67IDQAw%26usg%3DAFQjCNHij3KU16SHY6u5GYpOL8T2b11U-A%26bvm%3Dbv.1355534169%2Cd.d2k

Balancing:

I agree 200% with you about the balancing
My sugestion is to place a header on the Main PCB with the balancing lines from the 6802. This can be used to atach a second board with the MOSFET's, resistors and indicator LED's. This board could be left permanently or it could be used once in a few months only, since it is removable.

Since it is only a header the PCB design would be very simple as well.
I would like to see the schematic of the 6802 board to fiddle a bit with it, if you dont mind.

Thanks, Carlos

GregsGarage
Posts: 870
Joined: Tue Apr 01, 2008 5:27 pm
Location: Galashiels, Scottish Borders
Contact:

Re: LTC6802 based 12 cell slave.

Postby GregsGarage » Sun Dec 23, 2012 11:50 am

casemod wrote:Does your 6802 Slave works with peter V2 master board or are you planing to make it work with V3 using your own code?

No, the 6802 boards won't work with the existing V2 Master. I am using a Maximite (MM) to talk with the 6802 slaves. This allows quick development because the MM runs a basic interpreter so you don't need to recomplie code with every change. I plan to use the MM, probably the colour version, for my master.

I would do some radical changes into the BMS itself, starting with the Master.

Right now all the calculations are taking place on the master which has to receive all the (useless) data from the slaves. This is fine as originally designed by peter for less than 100cells, but it is a problem once this number goes up.

The reason for this was the slow baud speed of the master and slave bus, so Peter devised sending each cell voltage data as a single byte with a range of 1.75-4.3 volts with a 20mv resolution (or something like that :? ). The 6802 has a 12 bit adc and outputs 3 bytes for each 2 cells giving a range of 0-6 volts at 1.5mv resoultion (or there abouts). I was using the master to calculate the cell voltages, but have decided that it is a real pain. So I am now working to make the slaves user friendly. The idea is that you send a text command such as "RCV" (read cell voltages) and the first slave to get this will then start a series of events with the rest of the slaves so that the output on the master bus is a simple comma separated string of cell voltages probably 3 characters long, something like "332,334,333,332...". (332 = 3.32 volts)

Of course this requires much more data transfer, but I should be able to run the master/slave bus at 19200 baud (the MM limit, but faster speeds should be possible).

I was also looking at the Datasheet for the 6802 and given that you can daisy chain them, will it be possible to make a PCB say for 48Cells (4 6802 and only one PIC, Opto, etc) instead of using the pics to communicate with each other every 12 cells, thrus reducing components and complexity.

Yes this is possible and I have thought of doing this, but I/we need to get the single 6802 version working first!

My sugestion is to place a header on the Main PCB with the balancing lines from the 6802.

I would suggest a simple Y adapter if you want to do this, I am trying to keep the pcb as simple as possible.

I would like to see the schematic of the 6802 board to fiddle a bit with it, if you dont mind.

I'll post it, but probably not till after xmas.
Greg Fordyce

Daewoo Matiz
http://www.evalbum.com/4191

GregsGarage
Posts: 870
Joined: Tue Apr 01, 2008 5:27 pm
Location: Galashiels, Scottish Borders
Contact:

Re: LTC6802 based 12 cell slave.

Postby GregsGarage » Sun Dec 30, 2012 11:53 am

Here's my current design files in Kicad. It's a bit messy, one day I might tidy it up. :shock:

I am considering some changes, mainly to drop the 2 RCA connectors for the temperature sensors and incorporate them into the DB15 connector. We only need 13 pins for the cells, which leaves 2 pins for the 2 temp inputs (the other end of the sensors can be tied to cell 1 negative). This would make for a better defined isolation zone between the 6802 and pic sides of the pcb. I might even get isolation slots routed under the optos for extra safety.
Attachments
LTC6802B.zip
Kicad design files.
(553.59 KiB) Downloaded 497 times
Greg Fordyce

Daewoo Matiz
http://www.evalbum.com/4191

GregsGarage
Posts: 870
Joined: Tue Apr 01, 2008 5:27 pm
Location: Galashiels, Scottish Borders
Contact:

Re: LTC6802 based 12 cell slave.

Postby GregsGarage » Mon Feb 04, 2013 12:16 am

I'm back! :shock: Finally got some time to tackle the software problem that I had. I was having trouble figuring out how to get pbp to convert the raw cell data into usable readings. I was trying to use the same method that I used with the MM, but it wasn't working due to the differences in the way they each handle variables. But now I've got it working with a simple test program that is outputing the cell voltage as comma separated values. The format is (cell voltage/100) so something like "333,334,333,333" would be 3.33, 3.34, 3.33, 3.33 volts. So now I can hopefully make some progress towards getting this all working. :D

Also I am working on yet another board layout. I'm going to ditch the RCA connectors for the temperature sensors and use the 2 spare pins on the d-sub 15 connector. Any other suggestions?
Greg Fordyce

Daewoo Matiz
http://www.evalbum.com/4191

casemod
Posts: 17
Joined: Mon Dec 17, 2012 3:18 am

Re: LTC6802 based 12 cell slave.

Postby casemod » Fri Feb 08, 2013 11:43 pm

Welcome back 8)
Not a bad idea, but isnt there some kind of round plug that could be used instead? Just because its much easier to drill a hole into a battery box.
I was also thinking in a precharge controller. 1 relay and 1 contactor. Relay with a Pre-charge resistor, when the output voltage was about what the cells were reporting the contactor would turn on. I mean the data was sent to the master, the master would do that after reading all cells.
Are you planing soc readings?

GregsGarage
Posts: 870
Joined: Tue Apr 01, 2008 5:27 pm
Location: Galashiels, Scottish Borders
Contact:

Re: LTC6802 based 12 cell slave.

Postby GregsGarage » Tue Feb 12, 2013 11:16 pm

casemod wrote:Not a bad idea, but isnt there some kind of round plug that could be used instead? Just because its much easier to drill a hole into a battery box.

I'm open to suggestions, but haven't found anything I like. But thinking outside of the box I am leaning towards using a case big enough to house the pcb and connecters. Some sort of clam shell design that splits in the middle, you drill holes on the seam for your wires, mount the board inside, bolt it together and seal around the wires to make it water tight. Maybe I should say thinking inside of the box. :P

I was also thinking in a precharge controller. 1 relay and 1 contactor. Relay with a Pre-charge resistor, when the output voltage was about what the cells were reporting the contactor would turn on. I mean the data was sent to the master, the master would do that after reading all cells.
Are you planing soc readings?

I want to keep this thread focused on the slaves and address issues that are related to the master in it's own thread. But they are all good suggestions.

I have made progress today and have connected 2 slaves to my rear battery box, each slave reporting voltage on 8 cells. I've got a simple display program running on the MM and every thing seems to be working. Next step is to get all 6 slave boards connected and then start to work on the master software/hardware.
Greg Fordyce

Daewoo Matiz
http://www.evalbum.com/4191

GregsGarage
Posts: 870
Joined: Tue Apr 01, 2008 5:27 pm
Location: Galashiels, Scottish Borders
Contact:

Re: LTC6802 based 12 cell slave.

Postby GregsGarage » Thu Feb 21, 2013 12:48 pm

I've now got six of my slaves connected to all 48 cells in my car. Rapid had 3 meter usb cables cheap so at the moment they are all connected with some very long usb cables and it all seems to be working fine. 8)

So here's my plan for next things to do;

Make a final version of the slave board. I am going to ditch the rca connectors for temperature sensors and just use 2 spare pins in the 15 pin dsub connector. The second wire from the tempurature sensors will need to be connected to the stack negative, but I don't see that as a problem. Getting rid of the rca connectoprs should allow me to reduce board size to around 75x50mm. Otherwise layout will be similair.

Next item will be a current sensor connected to the master/slave bus. I can use the same basic design but instead of using a 6802 put a allegro or similair current sensor on the slave. The pic can be set to take current readings every 10ms maybe and keep a tally of amp hours in out and then send the data back on the master bus when requested. We can have a separate command for reading current data that is ignored by voltage monitoring slaves (they would just relay the command on the slave bus) and vice-versa for current commands. There is no reason you couldn't have multipile sensors, one for motor, one for charging if you wanted.

After that I will work on a balancing device. I haven't done any balancing on my pack in a year and it hasn't drifted much. Having accurate cell readings will tell you if you need to do balancing so here's my plan. Using the slaves as a voltage monitor, feed a constant current into each cell in turn until it gets to a set voltage level, stop and move onto the next cell. This is very simialr to the Lee Hart Battery Balancer, a schematic of one of the relay boards can be found here. Really this needs a new thread and when I get to that stage I'll start one, but by moving the balancing off board of the vehicle it makes everything much more simple and reliable, no chance of a balance load accidentally switching on and draining a cell.

I'll get some pictures and code posted soon.
Greg Fordyce

Daewoo Matiz
http://www.evalbum.com/4191


Return to “BMS thread”

Who is online

Users browsing this forum: No registered users and 6 guests