My latest project is a battery management system (BMS) that can accurately
measure cells in a lithium battery pack, and also perform shunt balancing
and possibly charge shuttling to balance the pack. I would also like to be
able to use it for a pack of four 12V SLA batteries. A DG408 could be used
to select up to 8 cell voltage taps from nominal 3.2V (LiFePO4) or 3.7V
(Li-Ion), with a maximum voltage of 8 * 4.2 or 33.6V, which is within the
maximum voltage of 40V for the DG408. But the voltage would need a 12:1
voltage divider to read using a PIC with a 3V power supply (from the bottom
cell), and this renders the precision of the 10 bit ADC to 33.6/1024=0.032V,
which is really not accurate enough for lithium cell monitoring.
I did a preliminary design using a DG409 which can read any one of four
cells differentially, or two DG408s for 8 cells. The outputs can be fed to a
"flying capacitor", which will hold a voltage sample taken from a cell, and
then a pair of MOSFETs can translate that charge to ground level so the ADC
can read it using the full range allowed by the reference.
Another method, used by some BMS chips, utilizes a high CMRR differential
amplifier to translate the samples to the ADC.
It is also desired to implement shunt charge balancing, where selected cells
that have a higher voltage can be discharged to match lower cells in the
pack. This is wasteful, but is a commonly used method, and can be done with
MOSFETs and resistors.
It is also possible to use charge shuttling, where the flying capacitor can
be connected to lower voltage cells so that its charge adds to that of the
low cell. But this requires a fairly large capacitor and a low resistance
MUX. The DG408/9 have about 50 ohms per element, so that severely limits the
practicality of such charge shuttling.
So, I endeavored to design a multiplexer using discrete MOSFETs. My first
attempt used MOSFET opto-isolators, but they are somewhat costly and use a
fair amount of current for the LED. Then I tried several designs using
discrete MOSFETs, and it looks to be successful, although it's a bit
complex. Here is the LTSpice file for a simulation:
http://enginuitysystems.com/pix/electronics/Analog_Mux_1.asc
Here is an image of a complete schematic (as it stands now):
http://enginuitysystems.com/pix/electronics/BMS_MOSFET_1.png
And a PDF that may be easier to view:
http://enginuitysystems.com/pix/electronics/BMS_MOSFET.pdf
I think this should work pretty well, and the discrete MOSFETs should be
able to carry at least 100 mA to perform shunt balancing. A larger sampling
capacitor might be able to provide charge shuttling. The circuit seems
pretty efficient and should work on cell voltages of 2.5 to 4.5 volts, and
12V nominal batteries.
If anyone has a schematic for the DG408 or similar analog MUX, I'd
appreciate a link to the design. What I found from searching turned up NMOS
and PMOS devices in anti-parallel, which won't work because of the body
diodes. In series should work, but providing the correct gate voltages is a
challenge.