Noise, that’s what I’m running in to. First a brief explanation of my project since I was in such a hurry the other night. The problem with battery packs of considerable size and cost (like the ones found in electric cars) is that they require constant monitoring throughout their life. Every cycle must be monitored for any cell that may be out side the bounds of reasonable operation or the owner of the pack could find them self with an undesirable number of door stops. A BMS (Battery Monitoring/Managing System) aims to inform the user that a cell or number of cells, are at higher or lower voltages in the chain.
The first idea, the one I had working last night, was to incorporate the measurement of 6 batteries with the use of one PIC microcontroller. This would save a considerable amount of components seeing as I would not have to have a board for each battery.
However this does mean that I don’t have as much resolution per battery. 10 bits resolution = 1024 / 6 cells = 170 values per battery.
This introduced the problem of more noise interfering with the displayed value because each of the 170 values represents about .1 volts. Therefore every (LSB) Least Significant Bit of noise translates to .1 volts of jumpy noise.
This is the new board which I have not been able to test yet. It may have a better tolerance to noise then its breadboard predecessor.
As for testing, I have run in to a bit of trouble with my code and I think I am just going to have to rewrite it a bit for more durability. The code also does a great deal of noise removal by sampling the values multiple times and further running it through a box filter. On the bench I have had it returning data for all 6 batteries about 4 times a second. The frequency can be increased or decreased depending on the amount of filtering applied.
I’m also testing a new idea for resetting the PIC on the board as well saving power. My dad and I came up with a system to allow the whole board to turn itself off when it doesn’t receive any signals on the evilbus. I’ll see how that goes (if it works) after I have rewritten my code and made a setup for testing evilbus.









Nice job on the board! How bad is the noise?
Comment by SteveP — July 26, 2008 @ 6:45 am