Battery Sensor Requirements
- MUST monitor charge ("coulomb counter")
- MUST measure pack voltage
- SHOULD: monitor the voltage on each cell
- MUST monitor battery pack temperature (MUST be compatible with charging chip)
- SHOULD separate high current connector from sensing connector
- (Note: The battery pack we use is 4-cells in series and 2-cells in parallel.)
Battery Sensor Research
Initial research into battery sensor IC on Digi-key website shows that there are three companies making the chips: Texas Instruments, Dallas Semiconductor/Maxim-ic, and Microchip Technology. We also looked at Fairchild and Intersil. TI and Microchip technology don't have any chip that monitor a 4-cell Li-ion Battery. The only chip that works with 1-10 cell Li-ion Battery is DS2788 from Maxim. Intersil has three chips that might work for monitoring individual cell voltage, which are ISL9208, ISL9216/9717, and ISL94200. All of them use I2C interface:
- ISL9208: Supports battery pack configurations consisting of 5-cells to 7-cells in series and 1 or more cells in parallel. This is the final chip that we chose because its application note shows that we can also use this chip for 4-cells battery as well.
- ISL9216/9217: Provides integrated overcurrent protection circuitry, short circuit protection, an internal voltage regulator, internal cell balancing switches, cell voltage level shifters, and drive circuitry for external FET devices that control pack charge and discharge. The load monitor current is (20,40,60)μA and <10μA sleep mode. We didn't choose this chip because we would need to cascade the ISL9216 and ISL9217 to make it work.
- ISL94200: We didn't choose this chip because it doesn't have the internal cell balancing switches.
In terms of a fuel gage, we chose the Maxim (was Dallas) DS2788. It's the only fuel gauge chip that made sense, we wish we remember why.
Battery Sensor Design
By using the ISL9208 for charge balancing and voltage level shifting and the DS2788 as a charge counter, we get a two chip solution that meets all of our requirements. The only downside is the DS2788 requires a low side shunt (ugh) and has a one wire bus interface (double ugh: what was Maxim thinking?).
This design is thus pretty chip centric, so we'll go over the design by really going over the chip.
ISL9208 battery charge leveling and cell voltage level shifting
The ISL9208 is almost the perfect chip for us, although it is a bit crusty. Here's an application note that's worth reading about it. A few notes on how we're using it:
- We're only using it for 4 cell series pack.
- We don't care about the overcurrent protection (OCP) and the over charge protection. We're completely ignoring this feature and not even connecting the FETs; that's what the fuse and the Avionics Power System (APS) power switches (with integrated circuit breaker) are for.
- We do care about the internal cell balancing switches, that gives us cell balancing. Yay.
- 200 mA max balance current, with internal IC power dissipation at 400 mW and internal MOSFETs with 5 +/- 2 ohm Rdson
- We do care about the voltage monitor level shifters, that allows us to use the APS microcontroller to ADC each cell voltage, despite the pack's high voltage.
- Internal chip and external battery temperature are also a feature, but we'll get the ext. battery temperature from the DS2788.
- Has sleep mode, < 10 uA draw, so we should use that for sure when the APS is inactive.
- We're dubious about the external NPN pass transistor for the 3.3V power supply, but it's so simple it'll probably be OK as long as it doesn't suck too much power. This system will DEFINITELY need to be measured for current consumption.
TODO
- The 15 ohm CBAL resistors will toast the chip; choose a better value
- The voltage drop across the shunt resistor will affect the analog out voltage measurement. Compensate with known current and thus known voltage drop from the DS2788? What's the max/min voltage drop?
- Come up with register settings for the LPC ISL.
- Come up with an automated sleep circuit so that the ISL chip goes to sleep when the LPC is asleep/disconnected.
DS2788
TODO
- Recalculate Rshunt, which drives much of the problems with this board because the diff between sensor board ground and "pack" ground.
Features:
Measures voltage, temperature, and current,and estimates available capacity for rechargeable lithium-ion (Li+) and Li+ polymer batteries.
Cell characteristics and application parameters used in the calculations are stored in on-chip EEPROM. The available capacity registers report a conservative estimate of the amount of charge that can be removed given the current temperature, discharge rate, stored charge, and application parameters. Capacity estimation is reported in mAh remaining and percentage of full.
LED display drivers and a debounced input make display of the capacity information easy. The LED pins can directly sink current, requiring only a resistor for setting the current in the LED display, thus reducing space and cost.
Component Selection
D3001-D3005
LEDs for Fuel-Gauge Display
D3006-D3009 and R3006,R3017,R3022 and R3023
Protection circuits for the input/output data pins.
R3007
Sense resistor for the DS2788. With R3007 = 1mOhm, the current resolution is 1.5626uV/1mOhm = 1.5mA,which is good enough for our test.
The resistor I chose is CSNL10.001FRCT-ND(Digi-Key number).
- Family Chip Resistor - Surface Mount
- Series CSNL
- Resistance In Ohms 0.001
- Power (Watts) 1.5W
- Tolerance ±1%
- Lead Style Surface Mount (SMD - SMT)
- Case 2010 (5025 metric)
- Packaging Cut Tape (CT)
- Composition Current Sense, Metal Foil
- Temperature Coefficient ±50ppm/°C
Q1,Q2, R3008-R3011, C3001
Q1 is a P-channel FET, and Q2 is a N-channel FET. R3008 and R3009 form a voltage divider circuit to provide the right voltage level for VIN pin. R3010 and R3011 forms another voltage divider to provide the right voltage level for Vds of Q1. Before the start of a voltage conversion, VMA is driven high. Then Q2 turns on. As a result, Q1 turns on. Therefore, VIN (the Voltage sense input) will input the voltage, which is one fourth of the total battery pack voltage. At the end of the conversion cycle, the VMA pin is driven low. Then Q1 and Q2 are both off. As a result, VIN doesn't input any voltage data. VMA is the voltage measure active. The capacitor C3001 is used to stabilize voltage change.
F3001
Fuse to protect the circuit when the current is too high. The one I chose is 0456030.ER from Littelfuse Inc. The Digi-Key Part Number is 0456030.ER-ND.
- Series NANO²® 456
- Current 30A
- Voltage - Rated 125V
- Package / Case 0.397" L x 0.123" W x 0.123" H (10.1mm x 3.12mm x 3.12mm)
- Fuse Type Fast Acting, Short Time Lag
- Mounting Type Holder/Surface Mount
- Other Names 456030.00
R3012-R3015
Series resistors on each of the cell inputs to reduce the initial current surge through the ISL9208 inputs. From the application node, a series resistance of 15Ohms will add about 1mV of error to the cell voltage reading, which is acceptable.
R3016
Sense resistor of ISL9208 to monitor the change and discharge current. From example 1 of the application note, if the desired over-current level = 8A, and desired short circuit current level = 17A, then the ratio = 17/8 = 2.125. From the table 3, the short circuit threshold is 0.2V and the over-current threshold is 0.10V. The value of the sense resistor = 0.1V/8A = 12.5mOhm.
The resistor I chose is ERJ-B1CJR012U-ND(Digit-Key part number).
- Family Chip Resistor - Surface Mount
- Series ERJ
- Resistance In Ohms 0.012
- Power (Watts) 1W
- Tolerance ±5%
- Lead Style Surface Mount (SMD - SMT)
- Case 2010 (5025 metric)
- Packaging Tape & Reel (TR)
- Composition Thick Film
- Temperature Coefficient ±350ppm/°C
R3018 and TR3001
The fixed resistor and the thermistor forms a voltage divider. The TEMPI pin inputs the voltage across the thermistor to determine the temperature of the cells.Then the TEMPI pin drops below TEMP3V/13, an external over-temperature condition exists. Therefore, the resister value needs to be 12 times as the resistance of the thermistor. Since the thermistor we chose has resistance of 10k at 25 Celsius, the value of R3018 is 120Kohm.
The thermistor I chose is NTCS0805E3103JMT by Vishay/BC Components. The Digi-key part number is BC2292CT-ND.
- Family Thermistors - NTC
- Series 2381
- Resistance in Ohms @ 25°C 10K
- B25/85 3570K
- Operating Temperature -40°C ~ 150°C
- Resistance Tolerance 5%
- Value Tolerance 3%
- Power - Max 210m;
- Mounting Type PCB, Surface Mount
- Package / Case 0805 (2012 metric)
T1, C3002 and R3019
T1 is an NPN transistor. The RGO pin connects the emitter of T1 and works in conjunction with the RGC pin to provide a regulated 3.3V. The RGC connects to the base of T1 and provides the control signal for the external transistor to provide the 3.3V regulated voltage on the RGO pin. R3019 is a pull-up resistor, and C3002 is used to stable the voltage changes.
R3020 and R3021
These two resistors control the wake-up threshold of the ISL9208. Their values are calculated using the EQ.1 in the application node. If the wake-up threshold is 3.8V, and the maximum voltage of each cell is 5 and we have a four-cell battery, then R2/(R1+R2) < 0.19. Since R1 determines the current consumption of the circuit, first choose the R1 value as the highest value that is reasonable to use. Let R1 = 1.2Mohm, then R2 = 281.5Kohm. Therefore, I chose R2 = 280Kohm.