Ok, here's a scheme to sample the cell voltages for the A/D converter on a single MCU system without having any current drain on the cells when you aren't actually reading them. The schematic is not complete, it's just enough to explain the concept, you'll need to add the rest of the cells and the MCU etc.
The concept takes advantage of the fact that the MCU A/D converters only need a couple of uSec aquisition time and then it goes off and does the conversion. So we only need to present the cell voltage for several microseconds to the A/D converter at the beginning of each conversion.
We connect a capacitor across a cell (C1) through a pair of resistors (R3, R4). The capacitor charges up through the resistors until it's voltage matches the cell voltage. To read that voltage we pull the bottom of the capacitor to ground with an FET (Q2). Now the bottom of the cap is at ground, the top of the cap needs to be connected to the A/D. We do that with another FET (Q3).
Since the source of Q3 can be up to 4.3V above ground we need to have a gate drive that is greater than 4.2V + gate threshold voltage. BS107A has about 3V gate threshold voltage. A 10V gate drive should do the job. The gate drive is a 10V supply connected to our selected pair of FETs through an 1:8 MUX 4051. To control the Mux from the MCU with it's 5V logic lines we need a level translator, the 4504. The MCU selects the appropriate line with the 3 address lines (A,B,C) and then pulls the appropriate INHIBIT line low to enable that MUX. With 3 address lines and 3 different chip inhibit lines we can access up to 24 different cells using 6 port lines. The MUX channel turns on, pulls the gates of the two FETs up to 10V and this pulls the Bottom of the cap to ground, and connects the top of the cap to the A/D input of the MCU. We wait the appropriate aquistion time, start the A/D conversion, then Pull the INHIBIT line High again to remove the 10V gate drive. The 10K pull down resistor turns the FETs off and the cap floats back up to the cell voltage. The resistors also keep the gates turned off when the whole system is shut down.
The 10V supply doesn't need to be exactly 10V it could be just tapping off the top of the third cell in the pack with a 1K resistor and bypassing that to ground with a 0.1uF cap and that should be good enough down to 2V cell voltages.
The FETs are BS107A, they can handle up to 200V, are cheap, available in a TO-92 package if you want. They have an on resistance around 5 ohms. In the worst case where it's pulling down the two 100K resistors from a cell that's around 90V in the pack it'll have to flow about 1.8mA and it will pull the bottom of the cap to within 9mV of ground. You can use a FET with a lower on resistance if that's not acceptable, (or just correct for it in software). Remember you don't want a FET with too much gate capacitance as it will slow down the turn on/off.
The problem area is that when you pull the cap down to ground it's going to start rapidly charging up through the top resistor. We minimize that problem by choosing our cap and resistor large enough that the voltage increase is small in the 10 uSec we have it pulled down to sample with the A/D. However we don't want to choose our RC to be too slow or it won't track the cell voltage fast enough. 100K and 0.1 uF with 6 volts across the resistor will increase by 6mv in the 10 uSec sampling time.
Most of the cells will have the cap charging up to the cell voltage through three 100K resistors, which gives us about a 30Hz response to changing cell voltages which should be good enough.
However if there were 90V across that resistor the cap voltage would change by 90mv in that 10usec. Not too good. So we add a voltage clamp (R7 and Q10). The reverse connected transistor just acts like a zener diode with about an 8 Volt breakdown voltage. Using a transistor instead of a zener in this case helps because below the breakdown voltage the reverse leakage current is very small and won't mess up our readings.
So now with the clamp in the higher voltage cells we won't see any worse than about a 6mV shift in our 10usec window.
The other thing we have to pay attention to is duty cycle. Whenever we have the cap pulled down it is charging up above the actual cell voltage it's supposed to be tracking. When we release it, it takes time for that voltage to drop back towards the actual cell voltage. If our sampling duty cycle is 1/1000 that will reduce that voltage offset by 6v/1000 or about 6mv. So if we sample at 100 times a second for 10 uSec at a time the cap will average about 6mV above the actual cell voltage. Sampling at 50 times a second would reduce that to 3mv error.
There are probably other ways to generate the gate drives (if you have 24 I/O lines you could just buffer them through four 4504 voltage translators) but this should work, parts are available in DIP form, and it's cheap. The bottom cell just has a single FET to connect it directly to the A/D input. This all assumes the MCU is running on 5V supply. The second cell doesn't need a voltage clamp.
