www.ti.com 9,7 mm x 6,4 mm SLUS550C − DECEMBER 2002 − REVISED JULY 2004 FEATURES D Provides Accurate Measurement of Available Charge in Li-Ion and Li-Polymer Batteries D Supports the Smart Battery Specification (SBS) V1.1 D Integrated Time Base Removes Need for External Crystal with Optional Crystal input D Works With the TI bq29312 Analog Front End (AFE) Protection IC to Provide Complete Pack Electronics for 7.2-V, 10.8-V or 14.4-V Battery Packs With Few External Components D Based on a Powerful Low-Power RISC CPU Core With High-Performance Peripherals D Integrated FLASH Memory Eliminates the Need for External Configuration EEPROM D Uses 16-Bit Delta Sigma Converter for Accurate Voltage and Temperature Measurements D Measures Charge Flow Using a High Resolution 16-Bit Integrating Converter − Better Than 0.65-nVh of Resolution − Self-Calibrating − Offset Error Less Than 1-µV D Programmable Cell Modeling for Maximum Battery Fuel Gauge Accuracy D Drives 3-, 4-, or 5-Segment LED Display for Remaining Capacity Indication D 38-Pin TSSOP (DBT) APPLICATIONS D Notebook PCs D Medical and Test Equipment D Portable Instrumentation DESCRIPTION The bq2084 SBS-compliant gas gauge IC for battery pack or in-system installation maintains an accurate record of available charge in Li-ion or Li-polymer batteries. The bq2084 monitors capacity and other critical parameters of the battery pack and reports the information to the system host controller over a serial communication bus. It is designed to work with the bq29312 analog front-end (AFE) protection IC to maximize functionality and safety and minimize component count and cost in smart battery circuits. Using information from the bq2084, the host controller can manage remaining battery power to extend the system run time as much as possible. The bq2084 uses an integrating converter with continuous sampling for the measurement of battery charge and discharge currents. Optimized for coulomb counting in portable applications, the self-calibrating integrating converter has a resolution better than 0.65-nVh and an offset measurement error of less than 1-µV (typical). For voltage and temperature reporting, the bq2084 uses a 16-bit A-to-D converter. In conjunction with the bq29312, the onboard ADC also monitors the pack and individual cell voltages in a battery pack and allows the bq2084 to generate the control signals necessary to implement the cell balancing and the required safety protection for Li-ion and Li-polymer battery chemistries. The bq2084 supports the Smart Battery Data (SBData) commands and charge-control functions. It communicates data using the System Management Bus (SMBus) 2-wire protocol. The data available include the battery’s remaining capacity, temperature, voltage, current and remaining run-time predictions. The bq2084 provides LED drivers and a push-button input to depict remaining battery capacity from full to empty in 20%, 25%, or 33% increments with a 3-, 4-, or 5-segment display. Please be aware that an important notice concerning availability, standard warranty, and use in critical applications of Texas Instruments semiconductor products and disclaimers thereto appears at the end of this data sheet. !"#$%&'#! ( )*$$+!' &( #" ,*-)&'#! .&'+ $#.*)'( )#!"#$% '# (,+)")&'#!( ,+$ '/+ '+$%( #" +0&( !('$*%+!'( ('&!.&$. 1&$$&!'2 $#.*)'#! ,$#)+((!3 .#+( !#' !+)+((&$-2 !)-*.+ '+('!3 #" &-- ,&$&%+'+$( Copyright 2004, Texas Instruments Incorporated www.ti.com SLUS550C − DECEMBER 2002 − REVISED JULY 2004 These devices have limited built-in ESD protection. The leads should be shorted together or the device placed in conductive foam during storage or handling to prevent electrostatic damage to the MOS gates. The bq2084 contains 1k bytes of internal data flash memory, which store configuration information. The information includes nominal capacity and voltage, self-discharge rate, rate compensation factors, and other programmable cell-modeling factors used to accurately adjust remaining capacity for use-conditions based on time, rate, and temperature. The bq2084 also automatically calibrates or learns the true battery capacity in the course of a discharge cycle from programmable near full to near empty levels. The bq29312 analog front-end (AFE) protection IC is used to maximize functionality and safety and minimize component count and cost in smart battery circuits. The bq29312 AFE protection IC provides power to the bq2084 from a 2, 3 or 4 series Li-ion cell stack, eliminating the need for an external regulator circuit. ORDERING INFORMATION PACKAGE TA 38-PIN TSSOP (DBT) bq2084DBT(1) –20°C to 85°C (1) The bq2084 is available taped and reeled. Add an R suffix to the device type (e.g., bq2084DBTR) to order tape and reel version. ABSOLUTE MAXIMUM RATINGS over operating free-air temperature range unless otherwise noted(1) UNIT Supply voltage range, VDD relative to VSS (see Note 2) –0.3 V to 4.1 V Open-drain I/O pins, V(IOD) relative to VSS (see Note 2) –0.3 V to 6 V Input voltage range to all other pins, VI relative to VSs (see Note 2) –0.3 V to VDD + 0.3 V Operating free-air temperature range, TA –20°C to 85°C Storage temperature range, Tstg –65°C to 150°C (1) Stresses beyond those listed under “absolute maximum ratings” may cause permanent damage to the device. These are stress ratings only, and functional operation of the device at these or any other conditions beyond those indicated under “recommended operating conditions” is not implied. Exposure to absolute-maximum-rated conditions for extended periods may affect device reliability. (2) VSS refers to the common node of V(SSA), V(SSD), and V(SSP). 2 www.ti.com SLUS550C − DECEMBER 2002 − REVISED JULY 2004 ELECTRICAL CHARACTERISTICS VDD = 3.0 V to 3.6 V, TA = −20°C to 85°C unless otherwise noted PARAMETER VDD TEST CONDITIONS MIN TYP MAX 3.0 3.3 3.6 Supply voltage VDDA and VDDD IDD Operating mode current No flash programming or LEDs active I(SLP) Low-power storage mode current Sleep mode Output voltage low SMBC, SMBD, SDATA, SCLK, SAFE, PU IOL = 0.5 mA 0.4 LED1–LED5 IOL = 10 mA 0.4 VOL VIL VIH µA 8 µA –0.3 0.8 DISP –0.3 0.8 Input voltage high SMBC, SMBD, SDATA, SCLK, EVENT, PU, PRES, PFIN 2 6 DISP 2 VDD + 0.3 1.0 Input voltage range VIN, TS Z(AI1) Z(AI2) VSS – 0.3 VSS – 0.25 Input impedance SR1, SR2 −0.25 V − +0.25 V Input impedance VIN, TS 0 V–1.0 V Input voltage range SR1, SR2 V 380 Input voltage low SMBC, SMBD, SDATA, SCLK, EVENT, PU, PRES, PFIN V(AI1) V(AI2) UNIT 0.25 V V V V V 2.5 MΩ 8 MΩ POWER-ON RESET Negative-going voltage input 2.1 2.3 2.5 V Power-on reset hysteresis 50 125 200 mV MAX UNIT POWER ON RESET BEHAVIOR vs FREE-AIR TEMPERATURE 2.50 140 2.45 135 2.40 130 VIT− 2.35 125 2.30 2.25 120 115 Vhys 2.20 110 2.15 105 2.10 −20 −10 0 V hys − Hysterisis Voltage − mV V IT − Negative Going Input Threshold Voltage − V VIT+ Vhys 100 10 20 30 40 50 60 70 80 TA − Free-Air Temperature − °C INTEGRATING ADC CHARACTERISTICS VDD = 3.0 V to 3.6 V, TA = −20°C to 85°C unless otherwise noted PARAMETER V(SR) V(SROS) Input voltage range, V(SR2) and V(SR1) INL Integral nonlinearity error TEST CONDITIONS MIN VSR = V(SR2) – V(SR1) –0.25 TYP 0.25 Input offset FAST = 0, −0.1 V to 0.8 x Vref 0.004% V mV 1 0.018% PLL SWITCHING CHARACTERISTICS VDD = 3.0 V to 3.6 V, TA = −20°C to 85°C unless otherwise noted PARAMETER TEST CONDITIONS MIN TYP MAX UNIT t(SP) Start-up time (see Note 1) ±0.5% frequency error 2 5 ms (1) The frequency error is measured from the trimmed frequency of the internal system clock, which is 128 x oscillator frequency, nominally 4.194 MHz. 3 www.ti.com SLUS550C − DECEMBER 2002 − REVISED JULY 2004 OSCILLATOR VDD = 3.0 V to 3.6 V, TA = −20°C to 85°C (unless otherwise noted) (TYP: VDD = 3.3 V, TA = 25°C) PARAMETER TEST CONDITIONS ROSC = 100k f(eio) Frequency error from 32.768 kHz f(dio) f(sio) Frequency drift(1) XCK1 = 12 pF XTAL ROSC = 100k, TA = 0°C to 50°C MIN TYP MAX –2% 0.5% 2% −0.25% 0.25% −1% 1% ROSC = 100k Start-up time (2) UNIT f(sxo) XCK1 = 12 pF XTAL (1) The frequency drift is measured from the trimmed frequency at VDD = 3.3 V, TA = 25°C. (2) The start-up time is defined as the time it takes for the oscillator output frequency to be ±1% 200 µs 250 ms DATA FLASH MEMORY CHARACTERISTICS VDD = 3.0 V to 3.6 V, TA = −20°C to 85°C unless otherwise noted PARAMETER tDR TEST CONDITIONS MIN Data retention See Note 1 10 Flash programming write-cycles See Note 1 20k t(WORDPROG) Word programming time I(DDPROG) Flash-write supply current (1) Assured by design. Not production tested. TYP UNIT Years Cycles See Note 1 See Note 1 MAX 2 ms 8 12 mA TYP MAX UNIT 10 100 nA REGISTER BACKUP PARAMETER TEST CONDITIONS I(RBI) RBI data-retention input current V(RBI) RBI data-retention voltage (see Note 1) (1) Specified by design. Not production tested. MIN VRBI > 2.0 V, VDD < VIT 1.3 V SMBus TIMING SPECIFICATIONS VDD = 3.0 V to 3.6 V, TA = −20°C to 85°C unless otherwise noted PARAMETER TEST CONDITIONS MIN TYP UNIT 100 kHz SMBus operating frequency Slave mode, SMBC 50% duty cycle SMBus master clock frequency Master mode, no clock low slave extend t(BUF) T(HD:STA) Bus free time between start and stop 4.7 µs Hold time after (repeated) start 4.0 µs t(SU:STA) t(SU:STO) Repeated start setup time 4.7 µs Stop setup time 4.0 µs 51.2 Receive mode 0 Transmit mode 300 t(HD:DAT) Data hold time tSU:DAT) t(TIMEOUT) Data setup time t(LOW) t(HIGH) Clock low period Clock high period See Note 2 tLOW:SEXT) tLOW:MEXT Cumulative clock low slave extend time Cumulative clock low master extend time Error signal/detect 10 MAX f(SMB) f(MAS) kHz ns 250 See Note 1 25 ns 35 ms µs 4.7 50 µs See Note 3 25 ms See Note 4 10 ms 4.0 tf Clock/data fall time (VILMAX – 0.15 V) to (VIHMIN + 0.15 V) 300 ns tr Clock/data rise time 0.9 VDD to (VILMAX – 0.15 V) 1000 ns (1) The bq2084 times out when any clock low exceeds t(TIMEOUT) (2) t(HIGH) Max. is minimum bus idle time. SMBC = 1 for t > 50 ms causes reset of any transaction involving bq2084 that is in progress. (3) t(LOW:SEXT) is the cumulative time a slave device is allowed to extend the clock cycles in one message from initial start to the stop. (4) t(LOW:MEXT) is the cumulative time a master device is allowed to extend the clock cycles in one message from initial start to the stop. 4 www.ti.com SLUS550C − DECEMBER 2002 − REVISED JULY 2004 SMBus TIMING DIAGRAMS SYSTEM DIAGRAM Discharge / Charge / Pre-Charge FETs Fuse Pack + Pre-Charge Control Pres Fail-Safe Protection Power Management LDO, TOUT and Power Mode Control Temperature Measurement TINT <1% Error 1 k Bytes of User Flash bq29312 PF Input 32 kHz Clock Generator PCH FET Drive 3.3 V T1 32 kHz Pre-Charge FET Drive Cell Balancing Drive LDO, Therm Output Drive and UVLO System Watchdog Delay Counters System Interface RAM Registers Cell Balancing Algorithm and Control SMBus SBS v1.1 Data System Interface I2C bq29312 RAM/Comms Validation 1 st Level OC Protection 1 st Level OV and UV Protection Pack Under Voltage Power Mode Control Cell and Pack Voltage Measurement Power Mode Control 2nd Level Overvoltage Protection bq2084 2-Tier Overcurrent Protection Capacity Prediction <1% Error Voltage Level Translator Pack − Sense Resistor (5 to 30 mΩ) 5 www.ti.com SLUS550C − DECEMBER 2002 − REVISED JULY 2004 PIN ASSIGNMENTS TSSOP (DBT) (TOP VIEW) VIN TS VSSA PU PRES SCLK NC VDDD RBI SDATA VSSD SAFE NC NC SMBC SMBD DISP PFIN VSSD 6 1 38 2 37 3 36 4 35 5 34 6 33 7 32 8 31 9 30 10 29 11 28 12 27 13 26 14 25 15 24 16 23 17 22 18 21 19 20 VSSD NC NC CLKOUT XCK1/VSSA XCK2/ROSC FILT VDDA VSSA VSSA SR1 SR2 MRST EVENT LED1 LED2 LED3 LED4 LED5 www.ti.com SLUS550C − DECEMBER 2002 − REVISED JULY 2004 Terminal Functions TERMINAL NO. TSSOP I/O CLKOUT 35 I 32.768−kHz output to the bq29312 DISP 17 I Display control for the LED drivers LED1 through LED5 FILT 32 I Analog input connected to the external PLL filter EVENT 25 I Input from bq29312 XALERT output LED1 24 O LED2 23 O LED3 22 O LED4 21 O LED5 20 O MRST 26 I Master reset input that forces the device into reset when held high 7, 13, 14, 36, 37 – No connection PFIN 18 I Active low input to detect secondary protector output status PRES 5 I Active low input to sense system insertion PU 4 O Output to pull up the /PRES pin for detection RBI 9 I Register backup that provides backup potential to the bq2084 data registers during periods of low operating voltage. RBI accepts a storage capacitor or a battery input. SAFE 12 O Active low output for additional level of safety protection; e.g., fuse blow. SCLK 6 O Communication clock to the bq29312 SDATA 10 I/O Data transfer to and from bq29312 SMBC 15 I/O SMBus clock open-drain bidirectional pin used to clock the data transfer to and from the bq2084 SMBD 16 I/O SMBus data open-drain bidirectional pin used to transfer address and data to and from the bq2084 SR1 28 I SR2 27 I Connections for a small-value sense resistor to monitor the battery charge− and discharge− current flow TS 2 I Thermistor voltage input connection to monitor temperature VDDA 31 I Positive supply for analog circuitry VDDD 8 I Positive supply for digital circuitry and I/O pins VIN 1 I Single cell voltage input from the bq29312 VSSA 3, 29, 30 I Negative supply for analog circuitry VSSD NAME NC DESCRIPTION LED display segments that each may drive an external LED 11, 19, 38 I Negative supply for digital circuitry XCK1/VSSA 34 I 32.768-kHz crystal oscillator input pin or connected to VSSA if the internal oscillator is used XCK2/ROSC 33 O 32.768-kHz crystal oscillator output pin or connected to a 100-kW, 50 ppm or better resistor if the internal oscillator is used 7 www.ti.com SLUS550C − DECEMBER 2002 − REVISED JULY 2004 FUNCTIONAL DESCRIPTION Oscillator Function The oscillator of the bq2084 can be set up for an internal or external operation. As the bq2084 powers up it automatically attempts to start the internal oscillator but if a 100-kW resistor is not connected to ROSC (pin 33) then it attempts to start the oscillator using an external 32.768-kHz crystal. Either the 100-kW ROSC resistor OR the 12 pF 32.768-kHz crystal should be mounted, NOT both. The performance of the internal oscillator is dependent on the tolerance of the 100-kW resistor connected between RSOC (pin 33) and VSSA (pin 34). It is recommended that this resistor be as close to the bq2084 as possible and that it has a specification of ±0.1% tolerance and ±50 ppm temperature drift or better. The 12-pF crystal, if used, should also be placed as close to the XCK1 (pin 34) and XCK2 (pin 33) pins as possible. The layout of the PCB around these pins and components is also an additional contributing factor to oscillator performance degradation. The average temperature drift error of the oscillator function over a learning charge or discharge cycle introduces an equal capacity prediction error in a learned full charge capacity (FCC). System Present Operation When the bq2084 detects that the battery is inserted into the system via a low state on the PRES input, the bq2084 enters normal operating mode and sets the PRES bit in PackStatus( ). When the pack is removed from the system and the PRES input is high, then the bq2084 enters the battery removed state and turns OFF the charge and discharge FETs, and enables the 0-V/precharging FET. General Operation The bq2084 determines battery capacity by monitoring the amount of charge input or removed from a rechargeable battery. In addition to measuring charge and discharge, the bq2084 measures individual cell voltages, pack voltage, temperature, and current, estimates battery self-discharge, and monitors the battery for low-voltage thresholds using features of the bq29312 AFE device. The bq2084 measures charge and discharge activity by monitoring the voltage across a small-value series sense resistor between the cell stack negative terminal and the negative terminal of the battery pack. The available battery charge is determined by monitoring this voltage and correcting the measurement for environmental and operating conditions. The bq2084 interfaces with the bq29312 to perform battery protection, cell balancing and voltage translation functions. The bq2084 can accept any NTC thermistor (default is Semitec 103AT) for temperature measurement or can also be configured to use its internal temperature sensor. The bq2084 uses temperature to monitor the battery pack and to compensate the self-discharge estimate. Measurements The bq2084 uses an integrating sigma-delta analog-to-digital converter (ADC) for current measurement and a second sigma-delta ADC for individual cell and battery voltage and temperature measurement. The individual cell and pack voltages, Voltage(), Current(), AverageCurrent() and Temperature are updated every 1 s during normal operation. Charge and Discharge Counting The integrating ADC measures the charge and discharge flow of the battery by monitoring a small-value sense resistor between the SR1 and SR2 pins. The integrating ADC measures bipolar signals from –0.25 V to 0.25 V. The bq2084 detects charge activity when VSR = V(SR1)–V(SR2) is positive and discharge activity when VSR = V(SR1)–V(SR2) is negative. The bq2084 continuously integrates the signal over time, using an internal counter. The fundamental rate of the counter is 0.65 nVh. The bq2084 updates RemainingCapacity() with the charge or discharge accumulated in this internal counter once every second. Offset Calibration The bq2084 provides an auto-calibration feature to cancel the voltage offset error across SR1 and SR2 for maximum charge measurement accuracy. The bq2084 performs auto-calibration when the SMBus lines stay low for a minimum of 20 s when it internally connects SR1 to SR2 and measures the internal offset. With this feature the bq2084 is capable of automatic offset calibration down to <1 µV. 8 www.ti.com SLUS550C − DECEMBER 2002 − REVISED JULY 2004 Digital Filter The bq2084 does not measure charge or discharge counts below the digital filter threshold. The digital filter threshold is programmed in the Digital Filter DF 0x2c and should be set sufficiently high to prevent false signal detection with no charge or discharge flowing through the sense resistor. Voltage While monitoring SR1 and SR2 for charge and discharge currents, the bq2084 monitors the individual series cell voltages through the bq29312. The bq2084 configures the bq29312 to present the selected cell to the CELL pin of the bq29312, which should be connected to VIN of the bq2084. The internal ADC of the bq2084 then measures the voltage and scales it appropriately. The bq2084 then reports the Voltage( ) and the individual cell voltages in VCELL1(), VCELL2(), VCELL3(), and VCELL4(). There is an additional SMBus command (0x45) that returns the measured ADC Reading of the PACK input to the AFE. Current The bq2084 uses the SR1 and SR2 inputs to measure and calculate the battery charge and discharge current. This value is reported via the SBS command Current(). AverageCurrent( ) is implemented as a single pole IIR filter with a 14.5-s time constant. Temperature The TS input of the bq2084 in conjunction with an NTC thermistor measures the battery temperature as shown in the schematic. The bq2084 reports temperature via the SBS command Temperature( ). The bq2084 can also be configured to use its internal temperature sensor by setting the IT bit in Misc Configuration DF 0x2a−0x2b. Data flash locations DF 0xb5 through DF 0xc0 also have to be changed to prescribed values if the internal temperature sensor option is selected. Table 1. Data Flash Settings for Internal or External Temperature Sensor LABEL LOCATION INTERNAL TEMP SENSOR SETTING EXTERNAL TEMP SENSOR SETTING (SEMITEC 103AT) DEC (HEX) DEC (HEX) DEC (HEX) Misc. Config 42 (0x2a) Bit 7 = 1 Bit 7 = 0 TS Const1 A3 164/5 (0xb5/6) 0 (0x0000) −28285 (0x9183) TS Const2 A2 166/7 (0xb7/8) 0 (0x0000) 20848 (0x5170) TS Const3 A1 168/9 (0xb9/a) −11136 (0xd480) −7537 (0xe28f) TS Const4 A0 170/1 (0xbb/c) 5734 (0x1666) 4012 (0x0fac) Min Temp AD 172/3 (0xbd/e) 0 (0x0000) 0 (0x000) Max Temp 174/5 (0xbf/c0) 5734 (0x1666) 4012 (0x0fac) Gas Gauge Operation General The operational overview in Figure 1 illustrates the gas gauge operation of the bq2084. Table 3 describes the bq2084 registers. 9 www.ti.com SLUS550C − DECEMBER 2002 − REVISED JULY 2004 Figure 1. bq2084 Gas Gauging Operational Overview The bq2084 accumulates a measure of charge and discharge currents and estimates self-discharge of the battery. The bq2084 compensates the charge current measurement for temperature and state-of-charge of the battery. The bq2084 also adjusts the self-discharge estimation based on temperature. The main charge counter RemainingCapacity( ) (RM) represents the available capacity or energy in the battery at any given time. The bq2084 adjusts RM for charge, self-discharge, and other compensation factors. The information in the RM register is accessible through the SMBus interface and is also represented through the LED display. The FullChargeCapacity( ) (FCC) register represents the last measured learned full discharge of the battery. It is used as the battery full-charge reference for relative capacity indication. The bq2084 updates FCC after the battery undergoes a qualified discharge from nearly full to a low battery level. FCC is accessible through the SMBus interface. The Discharge Count Register (DCR) is a non-accessible register that tracks discharge of the battery. The bq2084 uses the DCR register to update the FCC register if the battery undergoes a qualified discharge from nearly full to a low battery level. In this way, the bq2084 learns the true discharge capacity of the battery under system use conditions. Main Gas-Gauge Registers RemainingCapacity( ) (RM) RM represents the remaining capacity in the battery. The bq2084 computes RM in units of either mAh or 10 mWh depending on the selected mode. See Battery Mode( ) (0x03) for units configuration. RM counts up during charge to a maximum value of FullChargeCapacity() (FCC) and down during discharge and self-discharge to a minimum of 0. In addition to charge and self-discharge compensation, the bq2084 calibrates RM at three low-battery-voltage thresholds, EDV2, EDV1, and EDV0 and three programmable midrange thresholds VOC25, VOC50, and VOC75. This provides a voltage-based calibration to the RM counter. 10 www.ti.com SLUS550C − DECEMBER 2002 − REVISED JULY 2004 DesignCapacity ( ) (DC) DC is the user-specified battery full capacity. It is calculated from Pack Capacity DF 0x32−0x33 and is represented in units of mAh or 10 mWh. It also represents the full-battery reference for the absolute display mode. FullChargeCapacity( ) (FCC) FCC is the last learned measured discharge capacity of the battery. It is represented in units of either mAh or 10 mWh, depending on the selected mode. On initialization, the bq2084 sets FCC to the value stored in Full Charge Capacity DF 0x36−0x37. During subsequent discharges, the bq2084 updates FCC with the last learned measured discharge capacity of the battery. The last learned measured discharge of the battery is based on the value in the Discharge Count Register (DCR) after a qualified discharge occurs. Once updated, the bq2084 writes the new FCC value to data flash in mAh to Full Charge Capacity. FCC represents the full battery reference for the relative display mode, relative state of charge and AtRate() calculations. Discharge Count Register (DCR) The DCR register counts up during discharge, independent of RM. DCR counts discharge activity, battery load estimation, and self-discharge increments. The bq2084 initializes DCR, at the beginning of a discharge, to FCC – RM when FCC − RM is within the programmed value in Near Full DF 0x30. The DCR initial value of FCC – RM is reduced by FCC/128 if SC = 1 (bit 5 in Gauge Configuration) and is not reduced if SC = 0. DCR stops counting when the battery voltage reaches the EDV2 threshold on discharge. Capacity Learning (FCC Update) and Qualified Discharge The bq2084 updates FCC with an amount based on the value in DCR if a qualified discharge occurs. The new value for FCC equals the DCR value plus the programmable nearly full and low battery levels, according to the following equation: FCC (new) = DCR (final) = DCR (initial) + Measured Discharge to EDV2 + (FCC x Battery Low%) here Battery Low % = (value stored in DF 0x2f) ÷ 2.56 A qualified discharge occurs if the battery discharges from RM = FCC – Near Full to the EDV2 voltage threshold with the following conditions:W D No more than 256 mAh of self-discharge or battery load estimation occurs during the discharge period D The temperature does not drop below the low temperature threshold programmed in Learning Low Temp DF 0xac during the discharge period D The battery voltage reaches the EDV2 threshold during the discharge period and the voltage is greater than or equal to the EDV2 threshold minus 256 mV when the bq2084 detected EDV2 D No midrange voltage correction occurs during the discharge period D Current remains 3C/32 when EDV2 or Battery Low % level is reached. D No overload condition exists when EDV2 threshold is reached or if RM( ) has dropped to Battery Low% x FCC D No valid charge activity occurs during the discharge period. A valid charge is defined as an uninterrupted charge of 10 mAh into the battery The bq2084 sets VDQ=1 in PackStatus() when qualified discharge begins. The bq2084 sets VDQ=0 if any disqualifying condition occurs. FCC cannot be reduced by more than 256 mAh or increased by more than 512 mAh during any single update cycle. The bq2084 saves the new FCC value to the data flash within 4 seconds of being updated. End-of-Discharge Thresholds and Capacity Correction The bq2084 monitors the battery for three low-voltage thresholds, EDV0, EDV1, and EDV2. The EDV thresholds can be programmed for determination based on the overall pack voltage or an individual cell level. The EDVV bit in Pack Configuration DF 0x28 configures the bq2084 for overall voltage or single-cell EDV thresholds. If programmed for single cell EDV determination, the bq2084 determines EDV on the basis of the lowest single-cell voltage. Fixed EDV thresholds must be programmed in EMF/EDV0 DF 0x95−0x96, EDV C0 Factor/EDV1 DF 0x97−0x98 and EDV R Factor/EDV2 DF 0x99−0x9a. 11 www.ti.com SLUS550C − DECEMBER 2002 − REVISED JULY 2004 If the CEDV bit in Gauge Configuration DF 0x29 is set, automatic compensated EDVs are enabled and the bq2084 computes the EDV0, EDV1, and EDV2 voltage thresholds based on the values in DF 0x95−0xa0 and the battery’s current discharge rate and temperature. The bq2084 disables EDV detection if Current( ) exceeds the Overload Current threshold programmed in DF 0x5b–DF 0x5c. The bq2084 resumes EDV threshold detection after Current( ) drops below the Overload Current threshold. Any EDV threshold detected is reset after charge is detected and VDQ is cleared after 10 mAh of charge. The bq2084 uses the EDV thresholds to apply voltage-based corrections to the RM register according to Table 2. Table 2. State of Charge Based on Low Battery Voltage THRESHOLD RELATIVE STATE OF CHARGE EDV0 0% EDV1 3% EDV2 Battery Low % The bq2084 performs EDV-based RM adjustments with Current( ) C/32. No EDV flags are set if current < C/32. The bq2084 adjusts RM as it detects each threshold. If the voltage threshold is reached before the corresponding capacity on discharge, the bq2084 reduces RM to the appropriate amount as shown in Table 2. If an RM % level is reached on discharge before the voltage reaches the corresponding threshold, then RM is held at that % level until the threshold is reached. RM is only held if VDQ = 1, indicating a valid learning cycle is in progress. If Battery Low % is set to zero, EDV1 and EDV0 corrections are disabled. EDV Thresholds and Near-Full Programming The bq2084 uses the values stored in data flash for the EDV0, EDV1, and EDV2 values or calculates the three thresholds from a base value and the temperature, capacity, and rate adjustment factors stored in data flash. If EDV compensation is disabled, then EDV0, EDV1, and EDV2 are stored directly in mV in DF 0x95–0x96, DF 0x97–0x98, and DF 0x99–0x9a, respectively. For capacity correction at EDV2, Battery Low % DF 0x2f can be set at a desired state-of-charge, STATEOFCHARGE%, in the range of 3−19%. Typical values for STATEOFCHARGE% are 5−7%, representing 5−7% capacity. Battery Low % = (STATEOFCHARGE% x 2.56) The bq2084 updates FCC if a qualified discharge occurs from a near-full threshold of FCC – Near Full, until EDV2 condition is reached. The desired near-full threshold window is programmed in Near Full in DF 0x30, 0x31 in mAh. EDV Discharge Rate and Temperature Compensation Programming If EDV compensation is enabled, the bq2084 calculates battery voltage to determine EDV0, EDV1, and EDV2 thresholds as a function of battery capacity, temperature, and discharge load. The general equation for EDV0, EDV1, and EDV2 calculation is EDV0,1,2 = n (EMF • FBL − | ILOAD | • R0 • FTZ) EMF is a no-load cell voltage higher than the highest cell EDV threshold computed. EMF is programmed in mV in EMF/EDV1 DF 0x95–0x96. ILOAD is the current discharge load magnitude. n = the number of series cells 12 www.ti.com SLUS550C − DECEMBER 2002 − REVISED JULY 2004 FBL is the factor that adjusts the EDV voltage for battery capacity and temperature to match the no-load characteristics of the battery. FBL = f ( C0, C + C1, T ) C (either 0%, 3%, or Battery Low % for EDV0, EDV1, and EDV2, respectively) and C0 are the capacity related EDV adjustment factors. C0 is programmed in EDV C0 Factor/EDV1 DF 0x97–98. C1 is the desired residual battery capacity remaining at EDV0 (RM = 0). The C1 factor is stored in EDV C1 Factor DF 0xa0. T is the current temperature in °K. R0 • FTZ represents the resistance of a cell as a function of temperature and capacity. FTZ = f ( R1 , T0, T, C + C1, TC) R0 is the first order rate dependency factor stored in EDV R0 Factor/EDV2 DF 0x99–0x9a. T is the current temperature; C is the battery capacity relating to EDV0, EDV1, and EDV2. R1 adjusts the variation of impedance with battery capacity. R1 is programmed in EDV R1 Rate Factor DF 0x9d−0x9e. T0 adjusts the variation of impedance with battery temperature. T0 is programmed in EDV T0 Rate Factor DF 0x9b–0x9c. TC adjusts the variation of impedance for cold temperatures (T < 23°C). TC is programmed in EDV TC DF 0x9f. Typical values for the EDV compensation factors, based on overall pack voltages for a Li-lon 3s2p 18650 pack, are: EMF = 11550/3 T0 = 4475 C0 = 235 C1 = 0 R0 = 5350/3 R1 = 250 TC = 3 13 www.ti.com SLUS550C − DECEMBER 2002 − REVISED JULY 2004 Table 3. bq2084 Register Functions FUNCTION 14 COMMAND CODE ACCESS UNITS ManufacturerAccess 0x00 Read/write NA RemainingCapacityAlarm 0x01 Read/write mAh, 10 mWh RemainingTimeAlarm 0x02 Read/write minutes BatteryMode 0x03 Read/write NA AtRate 0x04 Read/write mA, 10 mW AtRateTimeToFull 0x05 Read minutes AtRateTimeToEmpty 0x06 Read minutes AtRateOK 0x07 Read Boolean Temperature 0x08 Read 0.1°K Voltage 0x09 Read mV Current 0x0a Read mA AverageCurrent 0x0b Read mA MaxError 0x0c Read percent RelativeStateOfCharge 0x0d Read percent AbsoluteStateOfCharge 0x0e Read percent RemainingCapacity 0x0f Read mAh, 10 mWh FullChargeCapacity 0x10 Read mAh, 10 mWh RunTimeToEmpty 0x11 Read minutes AverageTimeToEmpty 0x12 Read minutes AverageTimeToFull 0x13 Read minutes ChargingCurrent 0x14 Read mA ChargingVoltage 0x15 Read mV Battery Status 0x16 Read NA CycleCount 0x17 Read cycles DesignCapacity 0x18 Read mAh, 10 mWh DesignVoltage 0x19 Read mV SpecificationInfo 0x1a Read NA ManufactureDate 0x1b Read NA SerialNumber 0x1c Read integer Reserved 0x1d−0x1f 0 0 ManufacturerName 0x20 Read string DeviceName 0x21 Read string DeviceChemistry 0x22 Read string ManufacturerData 0x23 Read string Pack status 0x2f (LSB) Read NA Pack configuration 0x2f (MSB) Read NA VCELL4 0x3c Read mV VCELL3 0x3d Read mV VCELL2 0x3e Read mV VCELL1 0x3f Read mV VPACK 0x45 Read mV AFEData 0x46 Read hex www.ti.com SLUS550C − DECEMBER 2002 − REVISED JULY 2004 Self-Discharge The bq2084 estimates the self-discharge of the battery to maintain an accurate measure of the battery capacity during periods of inactivity. The bq2084 makes self-discharge adjustments to RM every 1/4 s when awake and periodically (determined by Sleep Timer DF 0xfe) when in sleep mode. The self-discharge estimation rate for 25°C is doubled for each 10 degrees above 25°C or halved for each 10 degrees below 25°C. Table 4 shows the relation of the self-discharge estimation at a given temperature to the rate programmed for 25°C (Y% per day programmed in DF 0x2d). Table 4. Self-Discharge for Rate Programmed TEMPERATURE (°C) SELF-DISCHARGE RATE Temp < 10 1/4 Y% per day 10 ≤ Temp <20 1/2 Y% per day 20 ≤ Temp <30 Y% per day 30 ≤ Temp <40 2Y% per day 40 ≤ Temp <50 4Y% per day 50 ≤ Temp <60 8Y% per day 60 ≤ Temp <70 16Y% per day 70 ≤ Temp 32Y% per day The nominal self-discharge rate, %PERDAY (% per day), is programmed in an 8-bit value Self−Discharge Rate DF 0x2d by the following relation: Self-Discharge Rate = %PERDAY/ 0.01 Battery Electronic Load Compensation The bq2084 can be configured to compensate for a constant load (as from battery electronics) present in the battery pack at all times. The bq2084 applies the compensation continuously when the charge or discharge is below the digital filter. The bq2084 applies the compensation (BEL) in addition to self-discharge. The compensation occurs at a rate determined by the value stored in Electronics Load DF 0x2e. The compensation range is 0 µA–765 µA in steps of approximately 3 µA. The data is stored as follows: Electronics Load = BEL / 3 Midrange Capacity Corrections The bq2084 applies midrange capacity corrections when the VCOR bit is set in Gauge Configuration DF 0x29. The bq2084 adjusts RM to the associated percentage at three different voltage levels: VOC25, VOC50, and VOC75. The VOC values represent the open circuit battery voltage at which RM corresponds to the associated percentage for each threshold. For the midrange corrections to occur, the temperature must be in the range of 19°C to 31°C inclusive and Current( ) and AverageCurrent( ) must both report between –64 mA and 0. The bq2084 makes midrange corrections as shown in the table below. For a correction to occur, the bq2084 must detect the need for correction twice during subsequent 20-s intervals. With the VCOR bit set, the bq2084 makes midrange corrections whenever conditions permit. If the OTVC bit in Gauge Configuration DF 0x29 is set and VCOR = 0, the bq2084 makes two Voltage() measurements, determines the average of the two readings and sets the appropriate RM level. No further RSOC% vs Voltage() validation is performed until after the next device reset. 15 www.ti.com SLUS550C − DECEMBER 2002 − REVISED JULY 2004 Table 5. Midrange Corrections Voltage( ) CONDITION RESULT ≥ VOC75 and RelativeStateOfCharge() ≤ 63% RelativeStateOfCharge() → 75% < VOC75 and RelativeStateOfCharge() ≥ 87% RelativeStateOfCharge() → 75% ≥ VOC50 and RelativeStateOfCharge() ≥ 38% RelativeStateOfCharge() → 50% <VOC50 and RelativeStateOfCharge() ≥ 62% RelativeStateOfCharge() → 50% ≥ VOC25 and RelativeStateOfCharge() ≤ 13% RelativeStateOfCharge() → 25% < VOC25 and RelativeStateOfCharge() ≥ 37% RelativeStateOfCharge() → 25% Three voltage-based thresholds, VOC25 DF 0x88–0x89, VOC50 DF 0x83–0x84, and VOC75 DF 0x7e–0x7f, are stored in the data flash in mV. Charge Control The bq2084 internal charge control is compatible with the constant current/constant voltage profile for Li-Ion. The bq2084 detects primary charge termination on the basis of the tapering charge current during the constant-voltage phase. Charging Voltage Broadcasts The bq2084 supports SBS charge control by broadcasting the ChargingCurrent( ) and ChargingVoltage( ) to the Smart Charger address. The bq2084 broadcasts the requests every 10 seconds. The bq2084 updates the values used in the charging current and voltage broadcasts based on the battery’s state of charge, voltage, and temperature. The 16-bit value (mV) for charging voltage is programmed in Charging Voltage DF 0x03a−0x3b although it can be set to 0 in different operating conditions. It also sets the base value for determining overvoltage conditions during charging and voltage compliance during a constant-voltage charging methodology. The 16-bit value, Over Voltage Margin DF 0x5d–0x5e, sets the limit over ChargingVoltage( ) in mV that is to be considered as an overvoltage charge-suspension condition. Charging Current Broadcasts ChargingCurrent( ) values are either broadcast to a Level 2 smart battery charger or read from the bq2084 by a Level 3 smart battery charger. The ChargingCurrent( ) may take any of four different values: Fast-Charging Current DF (0x3e–0x3f), Maintenance Charging Current (DF 0x40−0x41), Precharge Current (0x42−0x43) or 0 depending on charge state and operating conditions. When fast charge is allowed, the bq2084 sets ChargingCurrent( ) to the rate programmed in Fast-Charging Current DF 0x3e–0x3f. Fast-Charging Current is stored in mA. When fast charge terminates, the bq2084 sets ChargingCurrent( ) to zero and then to the MaintenanceCharging Current DF 40 0x41 when the termination condition ceases. The desired maintenance current is stored in mA. When Voltage( ) is less than EDV0, the bq2084 sets ChargingCurrent( ) to Precharge Current DF 0x42, 0x43. Typically this rate is larger than the maintenance rate to charge a deeply depleted pack up to the point where it may be fast charged. The desired precharge rate is stored in mA. If temperature is between the Charge Inhibit Temp Low (DF0x46) and the precharge threshold PC (°C), the bq2084 sets ChargingCurrent() to PreCharge Current. The threshold is programmed in the Precharge Temp DF 0x44. The maximal value of precharge temperature threshold setting is 12.7°C. Precharge Temp = PC (°C) / 0.1 The bq2084 also sets ChargingCurrent( ) to the precharge rate if Voltage( ) is less than the value programmed in Precharge Voltage DF 0x3c–0x3d. Precharge Voltage is programmed in mV. Alarm Broadcasts to Smart Charger and Host If any of the bits 8–15 in BatteryStatus( ) are set, the bq2084 broadcasts an AlarmWarning( ) message to the Host address. If any of the bits 12–15 in BatteryStatus( ) are set, the bq2084 also sends an AlarmWarning() message to the Smart Charger address. The bq2084 repeats the AlarmWarning( ) messages every 10 seconds until the alarm bits are cleared. All broadcasts can be disabled by setting SM (bit 2) in Pack Configuration (DF 0x28). 16 www.ti.com SLUS550C − DECEMBER 2002 − REVISED JULY 2004 Precharge Qualification The bq2084 sets ChargingCurrent( ) to the precharge rate as programmed in Precharge Current DF 0x42−0x43 under the following conditions: D Voltage: The bq2084 requests the precharge charge rate when any cell voltage drops below the precharge threshold or when the EDV0 threshold is detected. Once requested, a precharge rate remains until all cell voltages increase above the precharge threshold and the EDV0 condition does not exist. The precharge threshold is programmed in Precharge Voltage DF 0x3c–0x3d. D Temperature: The bq2084 requests the precharge rate when Temperature( ) is between Charge Inhibit Temp Low (DF0x46) and the precharge threshold programmed in Precharge Temp 0x44. Temperature( ) must be equal to or greater than the precharge threshold + 3°C to allow the fast-charge rate. Charge Suspension The bq2084 may temporarily suspend charge if it detects a charging fault. A charging fault includes the following conditions. D Overcurrent: An overcurrent condition exists when the bq2084 measures the charge current to be greater than Charge OC Threshold (DF 0x12a–0x12b) for a time greater than Charge OC Time (DF 0x12c). On detecting an overcurrent condition, the bq2084 turns off the Charge FET. If the Nonremovable Battery bit is not set in Misc Configuration DF 0x2a, then the Discharge FET is turned off also. This condition is cleared when the pack is removed or if the Nonremovable Battery bit is set in Misc Configuration DF 0x2a and when a discharge current is detected or when SBS AverageCurrent() is less than the ClearFailCurrent DF 0x61−0x62 for FaultResetTime DF 0x130. D Overtemperature: During charging, an overtemperature condition exists when Temperature( ) is greater than the Charge Suspend Temp High value programmed in DF 0x6d, 0x6e. On detecting an overtemperature condition, if enabled by the OT bit in Misc Configuration DF 0x2a the bq2084 turns off the Charge and Discharge FET. The overtemperature condition is cleared when Temperature( ) is equal to or below Charge Suspend Temp High Reset (DF 0x6f −0x70). The condition is also cleared if the pack is removed. D Undertemperature: During charging, an undertemperature condition exists when Temperature( ) is less than the Charge Suspend Temp Low in DF 0x79 or Charge Inhibit Temp Low in DF 0x46. On detecting an undertemperature condition the bq2084 turns off the Charge FET. The undertemperature condition is cleared when Temperature( ) is greater than Charge Suspend Temp Low DF 0x79. The condition is also cleared if the pack is removed. The maximal value of Charge Suspend Temp Low setting is 12.7°C. D Charging exceeds Maximum Charging Time in DF 0x10f−0x110. If charging time reaches Maximum Charge Time, the Charge FET is turned off. This condition is cleared when the pack detects discharge current or is removed. D Cell or Pack Overvoltage: An overvoltage condition exist when any cell is greater than Cell Over Voltage Limit in DF 0x63−0x64 or if Voltage() is greater than Charging Voltage in 0x3a–0x3b plus OvervoltageMargin in 0x5d−05e. This condition is cleared when the pack is removed or if the Nonremovable Battery bit is set in Misc Configuration DF 0x2a and when a discharge current is detected or when SBS AverageCurrent() is less than the ClearFailCurrent DF 0x61−0x62 for FaultResetTime DF 0x130. Also, the overvoltage conditon must be cleared by Voltage() less than Charging Voltage in 0x3a–0x3b plus OvervoltageMargin in 0x5d−05e and all cell voltages less than Cell Over Voltage Reset in DF 0xe0−0xe1. D Charging is also temporarily suspended during pulse-charging, but this is not considered a fault condition. Pulse Charge The bq2084 is capable of charge control using a pulse-charging algorithm, which allows for charge control in systems where the charger does not control current. The pulse-charging algorithm uses voltage thresholds and associated time limits for control. These are stored as constants in data flash. The cell voltages are read by the a/d converter every 125 ms during charging. The voltage used for comparison to the thresholds is the highest cell voltage. These thesholds are set by three data 17 www.ti.com SLUS550C − DECEMBER 2002 − REVISED JULY 2004 flash constants: Von Charge Voltage, Voff Charge Voltage, and Vmax Charge Voltage. Von is the lowest of these, and is the threshold below which the charge FET is turned on, provided the minimum off time (Pulse Minimum Off Time) has been met. When the voltage crosses the Voff theshold, the maximum on time (Pulse Maximum On Time) begins to count down. When this time has expired, the charge FET is turned off. Any time Vmax is exceeded, the charge FET is turned off immediately. The rules are: 1. If charge FET is on: a. If voltage above Vmax, turn off. b. Else if voltage above Voff and max on time expired, turn off. c. Else count down max on time time. 2. If charge FET is off: a. If voltage below Von and minimum off time, turn on. b. Else increment off time. Voltage is sampled every 125 ms; therefore, the minimum off time and maximum on time are in units of 125 ms, and pulse on and off times are integral multiples of 125 ms. The voltage thresholds can be chosen in such a way that they alter the charge mechanism. If Voff is set equal to Vmax, then every time this theshold is crossed, the charge FET turns off immediately. This effectively disables the maximum charge time, so that the Voff theshold has no effect. In this case, the algorithm can be described as having two voltage thresholds, rather than three. The charge FET simply turns on and off as it crosses the two thresholds. The minimum off time can be similarly disabled by setting it to zero or one. Due to the sample interval, the charge FET always is off for at least one 125-ms cycle. Thesholds must be chosen carefully to get the desired charging behavior. For example, if Von is set below charge voltage minus taper voltage, the pack can never detect full charge. During pulse charging, the charge FET remains off until the cells relax to below the Von voltage, which is below the qualification voltage for full charge detection. During cycle phase of pulse charging (charge FET ON), the voltage can exceed Voff value for a period of 125 ms until next sample is taken and FET is switched OFF. To prevent cell overvoltage termination, or pack overvoltage termination during this period, values for cell OV should be set larger than voltage reached during this period. Reasonable value of cell OV for given charger current I can be calculated, assuming cell impedance of 0.08 Ω/cell, as V(cell)OV > Von + 0.08 * I. Correspondingly, the pack overvoltage margin should be set as V(margin) > V(cell)OV x n – V(charge) where: n = number of series cells. When charging begins on a depleted battery pack, the voltage is below Voff, and may even stay below Von for some time. This means the pack is under constant charge, with no pulsing, for some part of the charge cycle. As the voltage on the cells rises, it crosses the Voff theshold (or the Vmax threshold if Voff is disabled), and the charge FET turns off. Initially, the off time is short, since the cells are only barely over the threshold and is quickly relaxed to below Von. As the cell voltages rises, the off times become longer and the on times shorter. This effect, in combination with the reduced current drawn by the cells, results in a gradually declining charge current. Eventually, this current falls below the taper current, and the pack detects the full charge condition and stops charging. The pulse-charging control operates during normal charging conditions and are overridden in case of a fault condition. Charging is stopped for any fault conditions which may occur, such as overtemperature or overcurrent, without regard to the voltage thresholds or time limits. Primary Charge Termination The bq2084 terminates charge if it detects a charge-termination condition based on current taper. A charge-termination condition includes the following: 18 www.ti.com SLUS550C − DECEMBER 2002 − REVISED JULY 2004 The bq2084 detects a current taper termination when the pack voltage is greater than Charging Voltage (DF 0x3a−0x3b) minus Current Taper Qualification Voltage (DF 0x4d−0x4e) and the AverageCurrent() is below the Current Taper Threshold (DF 0x4b−0x4c), but greater than the Charge Detection Current in DF 0x113−0x114, for a period of Current Taper Window (DF 0x4f). Once the bq2084 detects a Primary Charge Termination, the bq2084 sets the TERMINATE_CHARGE_ ALARM and FULLY_CHARGED bits in BatteryStatus( ), and turns off the charge FET via the bq29312. The charge FET is turned on when discharge current is detected and is greater than Discharge Detection Current (DF 0x115−0x116), to minimize IR losses. The TERMINATE_CHARGE_ ALARM charge current is no longer detected or the pack is removed, but returns if charging is attempted while the FULLY_CHARGED bit is set. The bq2084 clears the FULLY_CHARGED bit when RelativeStateOfCharge( ) is less than the programmed Fully Charged Clear %. See Table 13 for a summary of BatteryStatus( ) alarm and status bit operation. Cell Balancing The bq2084 balances the cells during charge by discharging those cells above the threshold set in Cell Balance Threshold DF 0xe8–0xe9, if the maximum difference in cell voltages exceeds the value programmed in Cell Balance Min DF 0xec. For cell balancing, the bq2084 measures the cell voltages at an interval set in Cell Balance Interval DF 0xed. On the basis of the cell voltages, the bq2084 either selects the appropriate cell to discharge or adjusts the cell balance threshold up by the value programmed in Cell Balance Window 0xea–0xeb when all cells exceed the cell balance threshold or the highest cell exceeds the cell balance threshold by the cell balance window. The cell balance threshold is reset to the value in Cell Balance Threshold at the start of every charge cycle. The threshold is only adjusted once during any balance interval. If the cells are severely imbalanced during charging, where VCELL(MAX) – VCELL(MIN) > Cell Imbalance Threshold, then the CIM bit in PF Status is set. Table 6. Cell Balancing Programming NAME DESCRIPTION Cell Balance Threshold 0xe8–0xe9 Sets the maximum voltage in mV that each cell must achieve to initiate cell balancing. Programming Cell Balance Threshold to 65,535 disables cell balancing. Cell Balance Min 0xec Sets in mV the cell differential that must exist to initiate cell balancing Cell Balance Window 0xea–0xeb Sets in mV the amount that the cell balance threshold can increase Cell Balance Interval 0xed Sets the cell balancing time interval in seconds. Cell Imbalance Threshold 0xee−0xef Sets the severe imbalance fault limit Display Port General The display port drives a 3-, 4-, or 5-LED bar-graph display. The display is activated by a logic signal on the DISP input. The bq2084 can display RM in either a relative or absolute mode with each LED representing a percentage of the full-battery reference. In relative mode, the bq2084 uses FCC as the full-battery reference; in absolute mode, it uses Design Capacity (DC). The DMODE bit in Pack Configuration DF 0x28 programs the bq2084 for the absolute or relative display mode. The LED bits program the 3-, 4-, or 5-LED option. Activation The display may be activated at any time by a high-to-low transition on the DISP input. This is usually accomplished with a pullup resistor and a pushbutton switch. Detection of the transition activates the display and starts a 4-s display timer. Reactivation of the display requires that the DISP input return to a logic-high state and then transition low again. The second high-to-low transition can be detected only after the display timer expires. If unused, the DISP input must be pulled up to VCC. If the EDV0 bit is set, the bq2084 disables the LED display. 19 www.ti.com SLUS550C − DECEMBER 2002 − REVISED JULY 2004 Display Modes In relative mode, each LED output represents 20%, 25%, or 33% of the RelativeStateOfCharge( ) value. In absolute mode, each LED output represents 20%, 25% or 33% of the AbsoluteStateOfCharge( ) value. Table 7 shows the display options for 5 LEDs for 4 LEDs, Table 8 and Table 9 for 3 LEDs. In either mode, the bq2084 blinks the LED display if RemainingCapacity( ) is less than Remaining CapacityAlarm( ). The display is disabled if EDV0 = 1. Table 7. Display Mode for Five LEDs CONDITION RELATIVE OR ABSOLUTE FIVE-LED DISPLAY OPTION STATEOFCHARGE() LED1 LED2 LED3 LED4 LED5 EDV0 = 1 OFF OFF OFF OFF OFF <20% ON OFF OFF OFF OFF ≥20%, < 40% ON ON OFF OFF OFF ≥40%, < 60% ON ON ON OFF OFF ≥60%, < 80% ON ON ON ON OFF ≥80% ON ON ON ON ON Table 8. Display Mode for Four LEDs CONDITION RELATIVE OR ABSOLUTE FOUR-LED DISPLAY OPTION STATEOFCHARGE() LED1 LED2 LED3 LED4 EDV0 = 1 OFF OFF OFF OFF <25% ON OFF OFF OFF ≥25%, < 50% ON ON OFF OFF ≥50%, < 75% ON ON ON OFF ≥75% ON ON ON ON Table 9. Display Mode for Three LEDs CONDITION RELATIVE OR ABSOLUTE THREE-LED DISPLAY OPTION STATEOFCHARGE() LED1 LED2 LED3 EDV0 = 1 OFF OFF OFF <34% ON OFF OFF ≥34%, < 67% ON ON OFF ≥67% ON ON ON Li-Ion Protection The bq2084 in conjunction with the bq29312 provides protection for Li-Ion batteries, as shown in Table 10. The bq2084 measures temperature and current and uses the bq29312 to measure individual cell voltage. The bq2084 uses this information to determine protection requirements, control the safety FETs or SAFE output as necessary. It is recommended that the bq2084 protection control be validated by two successive measurements by setting VOD=1 in Misc Configuration. The bq29312 can independently detect and protect the load from an overload (OL) or short circuit in charge (SCC) or discharge (SCD). The bq29312 sets the appropriate FET state and then alerts the bq2084 with the XALERT output when ever a protection threshold is breached and its associated delay time has expired. The bq2084 then determines if and when the FETs should be turned back on. 20 www.ti.com SLUS550C − DECEMBER 2002 − REVISED JULY 2004 Table 10. CVOV and CVUV Flags in PackStatus( ) FLAG SET CONDITION DSG FET CHG FET Voltage( ) = ChargingVoltage( ) + Over Voltage Margin ON OFF (see Note 2) Voltage( ) < ChargingVoltage( ) VCELL(ANY) = Cell Over Voltage ON OFF (see Note 2) VCELL(ALL) < Cell Over Voltage Reset Voltage( ) Terminate Voltage OFF (see Note 3) ON (see Note 1) Voltage( ) > Terminate Voltage VCELL(ANY) = Cell Under Voltage OFF (see Note 3) ON AverageCurrent( ) < − Over Load Current OFF (see Note 3) ON CVOV CVUV CLEAR CONDITION (see Note 4) VCELL(ALL) > Cell Under Voltage Reset AverageCurrent( ) < − Current Fault Clear Threshold (1) State determined by bq29312 (2) On if there is a discharge current 150 mA (3) On if there is a charge current 50 mA (4) Clear is detected and controlled by the bq2084. Protection Configuration 1st Level Cell Voltage Thresholds The cell undervoltage (VUV) and overvoltage (VOV) limits are programmed in Cell Under Voltage and Cell Over Voltage DF 0x65–0x66, DF 0x63–0x64, respectively. Both values are stored in mV. Cell Over Voltage Reset DF 0xe0−0xe1 and Cell Under Voltage Reset 0xe2–0xe3 set the reset points in mV for these safety parameters. Safety Overvoltage Threshold The safety voltage threshold is programmed in Safety Over Voltage DF 0x6b–0x6c. It is stored in mV. Exceeding the Safety Voltage causes permanent failure if enabled by PFConfig. Overcurrent Thresholds Discharge current threshold is programmed in Discharge OC Threshold DF 0x12d−0x12e. The discharge overcurrent must exist for time programmed in Discharge OC Time DF 0x12f. When an discharge overcurrent condition is detected the discharge FET is turned off. Similarly, a charge overcurrent is programmed in Charge OC Threshold DF 0x12a−0x12b. The charge overcurrent must exist for the time programmed in Charge OC Time DF 0x12c or Charge OC Time DF 0x12c. When a charge overcurrent condition is detected the charge FET is turned off. Temperature Thresholds The Safety Over Temperature in Charge (SOTC) threshold is programmed in Safety Over Temperature in Charge DF 0x75–0x76 and Safety Over Temperature in Discharge (SOTD) threshold is programmed in Safety Over Temperature in Discharge DF 0x77−0x78. SOTC is stored as Safety Over Temperature in Charge = SOTC/0.1 (°C) as an unsigned integer SOTD is stored as Safety Over Temperature in Discharge = SOTD/0.1 (°C) as an unsigned integer. Exceeding the Safety Temperatures causes permanent failure if enabled by PFConfig. There are also temperature thresholds to disable both charge and discharge FETs and to set the SBS Battery Status Overtemperature bit. The thresholds are set according to whether discharge or charging is detected. The Charge Suspend Temp High threshold is stored in DF 0x6d−0x6e with the reset threshold stored in DF 0x6f−0x70. Likewise the Over Temperature Discharge threshold is stored in DF 0x71−0x72 with the reset threshold stored in DF 0x73−0x74. The Charge Suspend Temp Low threshold (CSTL) is stored in Charge Suspend Temp Low DF 0x79−0x7a and is stored as Charge Suspend Temp Low = CSTL/0.1 (°C) as a signed integer. A Charge Suspend Temp Low turns off the charge FET. The maximal value of Charge Suspend Temp Low setting is 12.7 °C. 21 www.ti.com SLUS550C − DECEMBER 2002 − REVISED JULY 2004 AFE Configuration The AFE protection limits are programmed as specified in the bq29312 data sheet. AFE Over Load DF 0xc5 sets the AFE overload protection threshold. AFE Over Load Delay DF 0xc6 sets the delay timing for overload protection. AFE Short Circuit in Charge DF 0xc7 sets the AFE short circuit in charge protection threshold and delay time. AFE Short Circuit in Discharge DF 0xc8 sets the AFE short circuit in discharge protection threshold and delay time. SMBus command 0x46 can be used to string read the AFE RAM with the AFE address 0x00 first, if the bq2084 is not sealed as indicated by bit 5 of PackStatus. Table 11. Overcurrent Protection FAILURE FET STATUS CLEAR CONDITIONS NR=1 AFE OLV CHG on, ZVCHG off, DSG off Same AFE SCD AFE SCC CHG off, ZVCHG off, DSG on Average Current ()< Clear Fail Current (DF 0x61/2) for Fault Reset Time (DF 0x130), or disharge current > discharge detection current (DF 0x115/6) AFE SCD CHG on, ZVCHG off, DSG off Average Current () ≥ −Clear Fail Current (DF 0x61/2) for Fault Reset Time (DF 0x130), or charge current > charge detection current (DF 0x113/4) GG Charge OC (set by DF 0x12a to 0x12c) CHG off, ZVCHG off, DSG on Same AFE SCC GG Discharge OC (set by DF 0x12d to 0x12f) CHG on, ZVCHG off, DSG off Same AFE SCD NR=0 FAILURE FET STATUS EXIT CONDITIONS AFE OLV All FETs off RRES=high AFE SCC All FETs off PRES=high AFE SCD All FETs off PRES=high GG Charge OC (set by DF 0x12a to 0x12c) All FETs off PRES=high GG Discharge OC (set by DF 0x12d to 0x12f) All FETs off PRES=high AFE Integrity Check The bq2084 checks the programming of the AFE registers at a period determined by AFE Check Time DF 0xfb. The units of the check period are seconds unless the bq2084 is in sleep mode, in which case the period is AFE Check Time x Sleep Current Multiplier (DF 0xfd). If the data is not correct, the bq2084 increments an internal counter until it reaches the AFE Fail Limit (DF 0xe4). Setting AFE Check Time to 0 disables this function. When the internal AFE Fail counter reaches AFE Fail Limit, then the AFE bit in PF Status is set. AFE Watchdog Fault and Clear The bq29312 has a feature where the 32 kHz output (CLKOUT, pin 35) of the bq2084 is used to drive its internal clock. If this clock fails, a fault is declared in the AFE. See the bq29312 data sheet for further details. The fault is cleared automatically on return of the 32-kHz input via the bq2084 CLKOUT pin. Permanent Failure Mode (SAFE Output) The SAFE output of the bq2084 provides an additional level of safety control. The active low safety output can blow a fuse or control another switch on the basis of temperature, pack-voltage cell-voltage, CHG FET Failure, severe cell imbalance or an integrity check of the AFE and Data Flash configuration registers. The bq2084 can also activate the SAFE output and set the PF Flag based on the PFIN input. If this pin is low for PFIN Time seconds ±1 s then the PFIN bit in PF Status is set. 22 www.ti.com SLUS550C − DECEMBER 2002 − REVISED JULY 2004 The SAFE output can be driven low in any of the following conditions and the bq2084 sets the PF Flag register (DF 0x11e) to 0x66 (011001100). The activation of the SAFE output and the setting of the PF Flag can be enabled or disabled for different safety option per the PF Config (DF 0x11f) register settings. The SAFE output and PF Flag register can only be cleared using a series of ManufacturerAccess( ) commands. Table 12. SAFE Activation Conditions CONDITION ACTIONS Voltage() > Safety Over Voltage (DF 0x6b and 0x6c), SOV and PF set Temperature() > Safety Over Temperature in Charge (DF 0x75 and 0x76) SOTC and PF set Temperature() > Safety Over Temperature in Discharge (DF 0x77 and 0x78) SOTD and PF set When Miscellaneous Configuration (0x2a) bit 13 AC is set, and the number of AFE failures has reached the AFE Fail Limit (DF 0xe4) AFE and PF set When VCELL(MAX) – VCELL(MIN) > Cell Imbalance Threshold (DF 0xee, 0xef) during charging CIM and PF set If charge FET is off, and charge current greater than FET Fail charge current stored in DF 0x125−0x126 for the time determined by FET Fail time in DF 0x129, or if discharge FET is off and discharge current greater than FET Fail discharge current stored in DF 0x127−0x128 for the time determined by FET Fail time in DF 0x129. The PFIN input has detected a low state for PFIN Time in consecutive seconds, as determined by DF 0x120 NOTE: SAFE output activated and PF Flag set only if enabled by PF Config (DF 0x0x11f) FETF and PF set PFIN, PF set Permanent Failure Status (PF Status) PF Status DF 0x11d contains the flags for the cause of the permanent failure mode. b7 b6 b5 b4 b3 b2 b1 b0 PFF PFIN FETF CIM AFE SOTD SOTC SOV SOV The SOV bit indicates a safety overvoltage occurred which if enabled by PF Config would cause the SAFE output to activate. 0 SOV fault not detected (default) 1 SOV fault detected SOTC The SOTC bit indicates a safety overtemperature in charge occurred which if enabled by PF Config would cause the SAFE output to activate. 0 SOTC fault not detected (default) 1 SOTC fault detected SOTD The SOTD bit indicates a safety overtemperature in discharge occurred which if enabled by PF Config would cause the SAFE output to activate. 0 SOTD fault not detected (default) 1 SOTD fault detected AFE The AFE bit indicates an AFE integrity fault state occurred which if enabled by PF Config would cause the SAFE output to activate. 0 AFE is operating correctly (default) 1 AFE Integrity check fail limit reached CIM The CIM bit indicates that a severe cell imbalance occurred during charging, which if enabled by PF Config, would cause the SAFE output to activate. 0 All cells are within the Cell Imbalance Threshold (default) 1 There is a severe cell imbalance 23 www.ti.com SLUS550C − DECEMBER 2002 − REVISED JULY 2004 FETF The FETF bit indicates a FET or FET driver failure occurred, which if enabled by PF Config would cause the SAFE output to activate. 0 The FETs are operating normally (default) 1 The FETs or FET drivers have a fault PFIN The PFIN bit is used to indicate that the output of the 2nd level protector has activated. 0 The PFIN input is high (default) 1 The PFIN input drive and held low by 2nd level protector output PFF The PFF bit is used to indicate that current has been detected when the fuse has been set to be blown. 0 Current not detected with fuse blown 1 Current detected with fuse blown Permanent Failure Configuration (PF Config) PF Config DF 0x11f contains the enable/disable configuration that determines if the SAFE output is activated and the PF Flag set for each possible failure mode. b7 b6 b5 b4 b3 b2 b1 b0 − XPFIN XFETF XCIM XAFE XSOTD XSOTC XSOV XSOV The XSOV bit enables or disables the activation of SAFE and the setting of the PF Flag when PF Status SOV is set. 0 Activation disabled (default) 1 Activation enabled XSOTC The XSOTC bit enables or disables the activation of SAFE and the setting of the PF Flag when PF Status SOTC is set. 0 Activation disabled (default) 1 Activation enabled XSOTD The XSOTD bit enables or disables the activation of SAFE and the setting of the PF Flag when PF Status SOTD is set. 0 Activation disabled (default) 1 Activation enabled XAFE The XAFE bit enables or disables the activation of SAFE and the setting of the PF Flag when PF Status AFE is set. Bit 13 of Miscellaneous Config DF 0x2a also needs to be set for activation. 0 Activation disabled (default) 1 Activation enabled XCIM The XCIM bit enables or disables the activation of SAFE and the setting of the PF Flag when PF Status CIM is set. 24 0 Activation disabled (default) 1 Activation enabled www.ti.com SLUS550C − DECEMBER 2002 − REVISED JULY 2004 XFETF The XFETF bit enables or disables the activation of SAFE and the setting of the PF Flag when PF Status FETF is set. 0 Activation disabled (default) 1 Activation enabled XPFIN The XPFIN bit enables or disables the activation of SAFE and the setting of the PF Flag when PF Status PFIN is set. 0 Activation disabled (default) 1 Activation enabled Permanent Failure Flag (PF Flag) PF Flag DF 0x11e contains the flag indicating if the /SAFE output has been activated. STATE b7 b6 b5 b4 b3 b2 b1 b0 Clear 0 0 0 0 0 0 0 0 Set 0 1 1 0 0 1 1 0 PF Flag The PF Flag indicates that the SAFE output of the bq2084 has been activated. 0x00 SAFE output high (default) 0x66 SAFE output activated An example circuit using the SAFE output to blow a fuse is shown in Figure 2. Figure 2. Example SAFE Circuit Implementation Low-Power Modes The bq2084 enters sleep mode when the charge and discharge current is less than the threshold programmed in Sleep Current Threshold DF 0xfc, the SMBus lines are low for at least 2s, and bit 12 of Misc. Configuration DF 0x2a is set to zero. Additionally, PRES must be pulled high if the NR bit in Misc Config is set to 0. The bq2084 wakes up periodically to monitor voltage and temperature and to apply self-discharge adjustment. The sleep period is set in Sleep Timer DF 0xfe. The bq2084 wakes up at a period set by Sleep Current Multiplier DF 0xfd multiplied by Sleep Time to measure current. The bq2084 comes out of sleep when either of the SMBus lines go high or when the current is measured and it is greater than the Sleep Current Threshold. The sleep current threshold, SLP (mA), is stored in Sleep Current Thresh DF 0xfc as: Sleep Current Thresh = SLP(mA)/0.5 25 www.ti.com SLUS550C − DECEMBER 2002 − REVISED JULY 2004 The wake-up period for current measurement, WAT(s), is set using the following formula: Sleep Current Multiplier x Sleep Time = WAT(s) During sleep mode both charge and discharge FETs are turned off if the NR bit in Misc Config is cleared. If the bq2084 is in Non-Removable mode where NR=1, then the discharge FET remains on during sleep. Shutdown Mode The bq2084 goes into shutdown, in which all FETs are turned off and the pack electronics are powered down (including the bq2084), when SBS.Voltage() falls below Shutdown Voltage DF 0x7c−0x7d and Voltage at the Pack pin is less than VPACK threshold (DF 0x131, 0x132). Vpack is programmed in units of 0.935 mV/count, and has tolerance of ±6%. For example, to set 12 V as Vpack Threshold, the program value should be 12000/0.935 = 12834. When the DSG FET is turned on, the pack voltage is very close to the battery voltage even with no charger attached. Therefore, to enter the shutdown. The Vpack threshold should be set higher than the shutdown threshold plus the tolerance. The bq2084 can also be instructed to enter Shutdown mode via the ManufacturerAccess( ) command. When the command is sent to the bq2084, the bq29312 is instructed to enter shutdown mode by the bq2084. This forces the chipset into its lowest power mode. The bq2084 does not issue a shutdown command to the AFE unless the pack voltage is less than the Vpack Threshold. Program the Vpack threshold higher than the SBS.Voltage() when ship command is issued. Exit from this mode is only achieved by application of a charger. After exiting shutdown mode, the bq2084 does not enter the shutdown mode again until the Shutdown Timer (DF 0x133, units are seconds) has expired even if the correct conditions are present. After the Shutdown Timer has expired, the SMBus command or voltage and current conditions enables the bq2084 to enter shutdown mode. 26 www.ti.com SLUS550C − DECEMBER 2002 − REVISED JULY 2004 Normal Operation SBS.VCELLx( ) Measured SBS.PackVoltage( ) Measured SBS.Voltage( ) calculated SBS.Voltage( ) <= DF.Shutdown Threshold ? No Yes No SBS.Current( ) <= 0? Yes SBS.PackVoltage( ) < DF.Vpack Threshold ? No Yes No Has Time since exit from last Shutdown > DF.Shutdown Timer? Yes bq2084 Enters Shutdown Figure 3. Shutdown Flow Chart in Normal Operation Defaults Non−Removable Pack DF.ShutdownVoltage = 2.8 V x Number of Series cells DF.ShutdownTimer = 2 s Note: VpackThreshold must be greater than Shutdown voltage + 6%. Removable Pack DF.ShutdownVoltage = 2.8 V x Number of Series cells DF.ShutdownTimer = 20 s Note: VpackThreshold must be greater than Shutdown voltage + 6%. 27 www.ti.com SLUS550C − DECEMBER 2002 − REVISED JULY 2004 SBS MAC command 0x05 received No SBS.Current( ) <= 0? Yes No Pack voltage < Vpack threshold ? Yes bq2084 Enters Shutdown Figure 4. Shutdown Flow Chart in SBS MAC Reset Conditions On power up, the entire IC is reset and data is loaded from Data Flash to configure the SBS Data and the battery management solution. On a partial reset (loss of VCC but RBI holds RAM valid), a limited number of locations are taken. These actions are the following: D D D D The AFE registers are rewritten. PackStatus() EDV2 flag is cleared. BatteryStatus() DISCHARGING flag is cleared. The charger and alarm broadcast period is set to 10 seconds between broadcasts. Communication The bq2084 includes an SMBus communication port. The SMBus interface is a 2-wire bidirectional protocol using the SMBC (clock) and SMBD (data) pins. The communication lines are isolated from VCC and may be pulled up higher than VCC. Also, the bq2084 does not pull these lines low if VCC to the part is zero. The communication ports allow a host controller, an SMBus compatible device, or other processor to access the memory registers of the bq2084. In this way a system can efficiently monitor and manage the battery. 28 www.ti.com SLUS550C − DECEMBER 2002 − REVISED JULY 2004 SMBus The SMBus interface is a command-based protocol. A processor acting as the bus master initiates communication to the bq2084 by generating a start condition. A start condition consists of a high-to-low transition of the SMBD line while the SMBC is high. The processor then sends the bq2084 device address of 0001011 (bits 7−1) plus a R/W bit (bit 0) followed by an SMBus command code. The R/W bit (LSB) and the command code instruct the bq2084 to either store the forthcoming data to a register specified by the SMBus command code or output the data from the specified register. The processor completes the access with a stop condition. A stop condition consists of a low-to-high transition of the SMBD line while the SMBC is high. With SMBus, the most-significant bit (MSB) of a data byte is transmitted first. In some instances, the bq2084 acts as the bus master. This occurs when the bq2084 broadcasts charging requirements and alarm conditions to device addresses 0x12 (SBS Smart Charger) and 0x10 (SBS Host Controller.) SMBus Protocol The bq2084 supports the following SMBus protocols: D Read word D Write word D Block read A processor acting as the bus master uses the three protocols to communicate with the bq2084. The bq2084 acting as the bus master uses the write word protocol. The SMBD and SMBC pins are open drain and require external pullup resistors. A 1-MΩ pulldown resistor in the battery pack on SMBC and SMBD is required to assure the detection of the SMBus off-state, the performance of automatic offset calibration, and the initiation of the low-power sleep mode when the battery pack is removed. SMBus Packet Error Checking The bq2084 supports packet error checking as a mechanism to confirm proper communication between it and another SMBus device. Packet error checking requires that both the transmitter and receiver calculate a packet error code (PEC) for each communication message. The device that supplies the last byte in the communication message appends the PEC to the message. The receiver compares the transmitted PEC to its PEC result to determine if there is a communication error. PEC Protocol The bq2084 can receive or transmit data with or without PEC. Figure 5 shows the communication protocol for the read word, write word, and read block messages without PEC. Figure 6 includes PEC. In the read word protocol, the bq2084 receives the PEC after the last byte of data from the host. If the host does not support PEC, the last byte of data is followed by a stop condition. After receipt of the PEC, the bq2084 compares the value to its calculation. If the PEC is correct, the bq2084 responds with an ACKNOWLEDGE (ACK). If it is not correct, the bq2084 responds with a NOT ACKNOWLEDGE (NACK) and sets an error code. In the write word and block read, the host generates an ACK after the last byte of data sent by the bq2084. The bq2084 then sends the PEC and the host acting as a master-receiver generates a NACK and a stop condition. 29 www.ti.com SLUS550C − DECEMBER 2002 − REVISED JULY 2004 Gas Gauge Figure 5. SMBus Communication Protocol Without PEC Gas Gauge Figure 6. SMBus Communication Protocol With PEC 30 www.ti.com SLUS550C − DECEMBER 2002 − REVISED JULY 2004 PEC Calculation The basis of the PEC calculation is an 8-bit cyclic redundancy check (CRC−8) based on the polynomial C(X) = X8 + X2 + X1 + 1. The PEC calculation includes all bytes in the transmission, including address, command, and data. The PEC calculation does not include ACKNOWLEDGE, NOT ACKNOWLEDGE, start, stop, and repeated start bits. For example, the host requests RemainingCapacity( ) from the bq2084. This includes the host following the read word protocol. The bq2084 calculates the PEC based on the following 5 bytes of data, assuming the remaining capacity of the battery is 1001 mAh. D D D D Battery Address with R/W = 0: 0x16 Command Code for RemainingCapacity( ): 0x0f Battery Address with R/W = 1: 0x17 RemainingCapacity( ): 0x03e9 For 0x160f17e903, the bq2084 transmits a PEC of 0xe8 to the host. PEC Enable in Master Mode The PEC for master mode broadcasts to the charger, host, or both can be enabled/disabled with the combination of the bits HPE and CPE in Pack Configuration DF 0x28. SMBus On- and Off-State The bq2084 detects whether the SMBus enters the Off State by monitoring the SMBC and SMBD lines. When both signals are continually low for at least 2.0 s, the bq2084 detects the Off State. When the SMBC and SMBD lines go high, the bq2084 detects the On State and can begin communication within 1 ms. One-MΩ pulldown resistors on SMBC and SMBD are recommended for reliable Off State detection. Command Codes The SMBus command codes are in ( ). Temperature( ), Voltage( ), Current( ), and AverageCurrent( ), performance specifications are at bq29312 regulated VCC (V(REG)) and a temperature of −20°C to 85°C. Manufacturer Access( ) (0x00) Description: This function provides writable command codes to control the bq2084 during normal operation and pack manufacture. Writing the command code to SMB command 0x00 causes following reads with the SMB command 0x00 to return the word indicated in the table. The following commands are available: COMMAND CODE NAME DESCRIPTION 0x0001 Device Type Returns IC part number so it can be read, i.e., 2084 (0x0824) 0x0002 Firmware Rev Returns firmware version so it can be read 0x0003 EDV Level Returns the pending end-of-discharge voltage level so it can be read 0x0004 Manufacturer Status Returns the battery system status so it can read 0x0005 SHIP Command Instructs the bq2084 to instruct the bq29312 to enter ship mode 0x062b Seal Instructs the bq2084 to restrict access to those functions listed in Table 3. The bq2084 completes the seal function and clears ManufacturerAccess( ). The Manufacture Status word is defined as: B15 B14 B13 B12 B11 B10 B9 B8 FET1 FET0 PF1 PF0 STATE3 STATE2 STATE1 STATE0 b7 b6 b5 b4 b3 b2 b1 b0 0 0 0 0 1 0 1 0 FET1, FET0 Indicated the state of the charge and discharge FETs 0,0 Both charge and discharge FETs are on. 0,1 Charge FET is off, discharge FET is on. 31 www.ti.com SLUS550C − DECEMBER 2002 − REVISED JULY 2004 1,0 Both charge and discharge FETs are off. 1,1 Charge FET is on, discharge FET is off. PF1, PF0 Indicates permanent failure cause when permanent failure indicated by STATE3−STATE0 0,0 Fuse is blown 0,1 Cell imbalance failure 1,0 Safety voltage failure 1,1 FET failure STATE3, STATE2, STATE1, STATE0 Indicates battery state as defined in the State and Status bit Summary. Purpose: The ManufacturerAccess( ) function provides the system host access to bq2084 functions that are not defined by the SBD. SMBus protocol: Read or write word Input/Output: Word 32 www.ti.com SLUS550C − DECEMBER 2002 − REVISED JULY 2004 Table 13. State and Status Bit Summary STATE MAC MODE (MSB) CC( ) CV( ) 0 0 FUSE POWER MODE ok normal CV on on(3) on(4) ok normal CV off on off ok normal CV off on off ok normal CV on on off ok normal 0 0 off on off ok normal precharge 0x03 Precharge PC chargesusp 0x04 Charge suspension FC terminatecharge 0x07 Charge Terminate normalcharge 0x05 Charge MC FC(5) normaldischarge ZVCHG FET on 0x00 Wake up 0x01 Normal DSG FET off(2) off(2) wakeup provisionalcharge CHG FET(1) FC CV on on off ok normal depleted PC CV off off ok normal depleted_ac PC CV off off off off(4) ok normal FC CV off off off ok normal FC CV off off off ok normal battfail_overcharge 0 0 off on off ok normal battfail_lowtemp 0 0 off on off ok normal 0 0 off off ok normal off off(6) on off(6) off ok normal off off(6) off ok normal off ok normal off off ok normal off ok normal off ok low off blow low overheatdischarge overheatcharge battfail_chargeterminate 0x0e System Present 0x08 Fault Charge Terminate battfail_afe_chg battfail_afe_dsg 0x0c Battery Failure battfail_chg battfail_dsg 0x0a Over Current 0 0 FC CV 0 0 FC CV off off(6) FC CV off removed 0x0f Battery Out sleep 0x0d Sleep 0 0 off off off(7) permanent_failure 0x09 Permanent Failure 0 0 off off PC−precharge current, FC−fast charge current, CV−charge voltage (1) CHG FET always on if discharge current greater than Discharge Detection Current (DF 0x115, 0x116) (2) On if FET Config = 01 (Common precharge, charge FET) (3) ZVCHG FET on, OD FET off if FET Config = 00 or 02 (ZVCHG FET or precharge FET) (4) ZVCHG FET on, OD FET off if FET Config = 00 (ZVCHG FET), or ZVCHG FET off, OD FET on if FET Config = 02 (precharge FET) (5) 0 if CVOV or PC is not CVOV and minimum cell voltage is less than the precharge cell voltage threshold (6) If MiscConfig.Nonremoveable Battery is set then FET is on. (7) Discharge FET is on if NR of Misc Config is set to 1. RemainingCapacityAlarm( ) (0x01) Description: Sets or gets the low-capacity threshold value. Whenever the RemainingCapacity( ) falls below the low-capacity value, the bq2084 sends AlarmWarning( ) messages to the SMBus host with the REMAINING_CAPACITY_ALARM bit set. A low-capacity value of 0 disables this alarm. The bq2084 initially sets the low-capacity value to Remaining Capacity Alarm value programmed in DF 0x02–0x03. The low-capacity value remains unchanged until altered by the RemainingCapacityAlarm( ) function. The low-capacity value may be expressed in either current (mA) or power (10 mWh) depending on the setting of the BatteryMode( ) CAPACITY_MODE bit. Purpose: The RemainingCapacityAlarm( ) function can be used by systems that know how much power they require to save their operating state. It enables those systems to more finely control the point at which they transition into suspend or hibernate state. The low-capacity value can be read to verify the value in use by the bq2084 low-capacity alarm. SMBus protocol: Read or write word Input/Output: Unsigned integer-value below which Low Capacity messages are sent. 33 www.ti.com SLUS550C − DECEMBER 2002 − REVISED JULY 2004 BATTERY MODES CAPACITY_MODE BIT = 0 CAPACITY_MODE BIT = 1 Units mAh at C/5 10 mWh at P/5 Range 0–65,535 mAh 0–65,535 10 mWh Granularity Not applicable Accuracy See RemainingCapacity() RemainingTimeAlarm( ) (0x32) Description: Sets or gets the Remaining Time Alarm value. Whenever the AverageTimeToEmpty( ) falls below the remaining time value, the bq2084 sends AlarmWarning( ) messages to the SMBus host with the REMAINING_TIME_ALARM bit set. A remaining time value of 0 effectively disables this alarm. The bq2084 initially sets the remaining time value to the Remaining Time Alarm value programmed in DF 0x00–0x01. The remaining time value remains unchanged until altered by the RemainingTimeAlarm( ) function. Purpose: The RemainingTimeAlarm( ) function can be used by systems that want to adjust when the remaining time alarm warning is sent. The remaining time value can be read to verify the value in use by the bq2084 RemainingTimeAlarm( ). SMBus protocol: Read or write word Input/Output: Unsigned integer—the point below which remaining time messages are sent. Units: Minutes Range: 0 to 65,535 minutes Granularity: Not applicable Accuracy: See AverageTimeToEmpty( ). BatteryMode( ) (0x03) Description: Selects the various battery operational modes and reports the battery’s mode and requests. Defined modes include D Whether the battery capacity information is specified in units of mAh or 10 mWh (CAPACITY_MODE bit) D Whether the ChargingCurrent( ) and ChargingVoltage( ) values are broadcast to the smart battery charger when the CHARGER_MODE bit is set. D Whether all broadcasts to the smart battery charger and host are disabled The defined request condition is the battery requesting a conditioning cycle (RELEARN_FLAG). Purpose: The CAPACITY_MODE bit allows power management systems to best match their electrical characteristics with those reported by the battery. For example, a switching power supply represents a constant power load, whereas a linear supply is better represented by a constant current model. The CHARGER_MODE bit allows a SMBus host or smart battery charger to override the smart battery desired charging parameters by disabling the bq2084 broadcasts. The RELEARN_FLAG bit allows the bq2084 to request a conditioning cycle. SMBus protocol: Read or write word Input/Output: Unsigned integer—bit mapped—see below. Units: Not applicable Range: 0−1 Granularity: Not applicable Accuracy: Not applicable The BatteryMode( ) word is divided into two halves, the MSB (bits 8−15) which is read/write and the LSB (bits 0−7) which is read only. The bq2084 forces bits 0−6 to zero and prohibits writes to bit 7. 34 www.ti.com SLUS550C − DECEMBER 2002 − REVISED JULY 2004 Table 14 summarizes the meanings of the individual bits in the BatteryMode( ) word. Specified default values, where applicable, are noted. INTERNAL_CHARGE_CONTROLLER bit is not used by the bq2084. PRIMARY_BATTERY_SUPPORT bit is not used by the bq2084. RELEARN_FLAG bit set indicates that the bq2084 is requesting a capacity relearn cycle for the battery. The bq2084 sets the RELEARN_FLAG on a full reset and if it detects 20-cycle counts without an FCC update. The bq2084 clears this flag after a learning cycle has been completed. CHARGE_CONTROLLER_ENABLED bit is not used by the bq2084. The bq2084 forces this bit to zero. PRIMARY_BATTERY bit is not used by the bq2084. The bq2084 forces this bit to zero. Table 14. Battery Mode Bits and Values BATTERY MODE() BITS INTERNAL_CHARGE_CONTROLLER PRIMARY_BATTERY_SUPPORT Reserved BITS USED FORMAT 0 Read only bit flag 1 – always one 1 Read only bit flag 0 – always zero 2–6 ALLOWABLE VALUES 0 – always zero RELEARN_FLAG 7 Read only bit flag 0—Battery OK 1—Relearn cycle requested CHARGE_CONTROLLER_ENABLED 8 R/W bit flag Not used 9 R/W bit flag Not used PRIMARY_BATTERY Reserved 10–12 0 – always zero ALARM_MODE 13 R/W bit flag 0—Enable alarm broadcast (default) 1—Disable alarm broadcast CHARGER_MODE 14 R/W bit flag 0—Enable charging broadcast (default) 1—Disable charging broadcast CAPACITY_MODE 15 R/W bit flag 0—Report in mA or mAh (default) 1—Report in 10 mW or 10 mWh ALARM_MODE bit is set to disable the bq2084’s ability to master the SMBus and send AlarmWarning( ) messages to the SMBus host and the smart battery charger. When set, the bq2084 does not master the SMBus, and AlarmWarning( ) messages are not sent to the SMBus host and the smart battery charger for a period of no more than 60 s and no less than 59 s. When cleared (default), the smart battery sends the AlarmWarning( ) messages to the SMBus host and the smart battery charger any time an alarm condition is detected. D The ALARM broadcast does not occur more often than once every 10 s. Whenever the BATTERY_MODE command is received, the bq2084 resets the bit and starts or restarts a 60-s (nominal) timer. After the timer expires, the bq2084 automatically enables alarm broadcasts to ensure that the accidental deactivation of broadcasts does not persist. An SMBus host that does not want the bq2084 to be a master on the SMBus must therefore continually set this bit at least once per 59 s to keep the bq2084 from broadcasting alarms. D The ALARM_MODE bit defaults to a cleared state when the bq2084 enters SLEEP mode. D The condition of the ALARM-MODE bit does not affect the operation or state of the CHARGER_MODE bit, which is used to prevent broadcasts of ChargingCurrent( ) and ChargingVoltage( ) to the smart battery charger. CHARGER_MODE bit enables or disables the bq2084’s transmission of ChargingCurrent( ) and ChargingVoltage( ) messages to the smart battery charger. When set, the bq2084 does not transmit ChargingCurrent( ) and ChargingVoltage( ) values to the smart battery charger. When cleared, the bq2084 transmits the ChargingCurrent( ) and ChargingVoltage( ) values to the smart battery charger. The CHARGER_MODE bit defaults to a cleared state when the bq2084 enters SLEEP mode. CAPACITY_MODE bit indicates if capacity information is reported in mA/mAh or 10 mW/10 mWh. When set, the bq2084 reports capacity information in 10 mW/10 mWh as appropriate. When cleared, the bq2084 reports capacity information in mA/mAh as appropriate. The CAPACITY_MODE bit defaults to a cleared state when the bq2084 enters SLEEP mode. The following functions are changed to accept or return values in mA/mAh or 10 mW/10 mWh depending on the CAPACITY_MODE bit: 35 www.ti.com SLUS550C − DECEMBER 2002 − REVISED JULY 2004 D D D D D RemainingCapacityAlarm( ) AtRate( ) RemainingCapacity( ) FullChargeCapacity( ) DesignCapacity( ) The following functions are calculated on the basis of capacity and may be calculated differently depending on the CAPACITY_MODE bit: D AtRateOK( ) D AtRateTimeToEmpty( ) D AtRateTimeToFull( ) D RunTimeToEmpty( ) D AverageTimeToEmpty( ) D AverageTimeToFull( ) D Remaining Time Alarm( ) D BatteryStatus( ) The bq2084 updates the non-AtRate related register values immediately after changing the state of the CAPACITY_MODE bit. The AtRate( ) values are updated after the next AtRate value is written to the bq2084 (or after the next 1-s scheduled refresh calculation). AtRate( ) (0x04) Description: The AtRate( ) function is the first half of a two-function call-set used to set the AtRate value used in calculations made by the AtRateTimeToFull( ), AtRateTimeToEmpty( ), and AtRateOK( ) functions. The AtRate value may be expressed in either current (mA) or power (10 mW) depending on the setting of the BatteryMode( ) CAPACITY_MODE bit. Purpose: Since the AtRate( ) function is the first half of a two-function call-set, it is followed by the second function of the call-set that calculates and returns a value based on the AtRate value and the battery’s present state. D When the AtRate( ) value is positive, the AtRateTimeToFull( ) function returns the predicted time to full-charge at the AtRate value of charge. D When the AtRate( ) value is negative, the AtRateTimeToEmpty( ) function returns the predicted operating time at the AtRate value of discharge. D When the AtRate( ) value is negative, the AtRateOK( ) function returns a Boolean value that predicts the battery’s ability to supply the AtRate value of additional discharge energy (current or power) for 10 seconds. The default value for AtRate( ) is zero. SMBus protocol: Read or write word Input/Output: Signed integer-charge or discharge; the AtRate( ) value is positive for charge, negative for discharge, and zero for neither (default). BATTERY MODES Units Charge range Discharge range Granularity Accuracy 36 CAPACITY_MODE BIT = 0 CAPACITY_MODE BIT = 1 mA 10 mW 1 to 32,767 mA 1 to 32,767 10 mW –1 to –32,768 mA –1 to –32,768 10 mW 1 Unit NA www.ti.com SLUS550C − DECEMBER 2002 − REVISED JULY 2004 IAtRateTimeToFull( ) (0x05) Description: Returns the predicted remaining time to fully charge the battery at the AtRate( ) value (mA). Purpose: The AtRateTimeToFull( ) function is part of a two-function call-set used to determine the predicted remaining charge time at the AtRate value in mA. The bq2084 updates AtRateTimeToFull( ) within 5 ms after the SMBus host sets the AtRate value. The bq2084 automatically updates AtRateTimeToFull( ) based on the AtRate( ) value every 1 s. SMBus protocol: Read word Output: Unsigned integer—predicted time in minutes to fully charge the battery. Units: Minutes Range: 0 to 65,534 min Granularity: 2 min or better Accuracy: ± MaxError( ) * FullChargeCapacity( )/|AtRate( )| Invalid Data Indication: 65,535 indicates the AtRate = 0. AtRateTimeToEmpty( ) (0x06) Description: Returns the predicted remaining operating time if the battery is discharged at the AtRate( ) value. Purpose: The AtRateTimeToEmpty( ) function is part of a two-function call-set used to determine the remaining operating time at the AtRate( ) value. The bq2084 updates AtRateTimeToEmpty( ) within 5 ms after the SMBus host sets the AtRate( ) value. The bq2084 automatically updates AtRateTimeToEmpty( ) based on the AtRate() value every 1 s. SMBus protocol: Read word Output: Unsigned integer—estimated operating time left. Units: Minutes Range: 0 to 65,534 min Granularity: 2 min or better Accuracy: −0,+MaxError( ) × FullChargeCapacity/|AtRate( )| Invalid Data Indication: 65,535 indicates AtRate = 0. AtRateOK( ) (0x07) Description: Returns a Boolean value that indicates whether or not the battery can deliver the AtRate()value of additional energy for 10 s. If the AtRate value is zero or positive, the AtRateOK( ) function ALWAYS returns OK (logic 1). Purpose: The AtRateOK( ) function is part of a two-function call-set used by power management systems to determine if the battery can safely supply enough energy for an additional load. The bq2084 updates AtRateOK() within 5 ms after the SMBus host sets the AtRate( ) value. The bq2084 automatically updates AtRateOK( ) based on the At Rate( ) value every 1 second. SMBus protocol: Read word Output: Boolean—indicates if the battery can supply the additional energy requested. Units: Boolean Range: 1, 0 Granularity: Not applicable Accuracy: Not applicable Temperature( ) (0x08) Description: Returns the temperature (K) measured by the bq2084. Purpose: The Temperature( ) function provides accurate cell temperatures for use by battery chargers and thermal management systems. A battery charger can use the temperature as a safety check. Thermal management systems may use the temperature because the battery is one of the largest thermal sources in a system. 37 www.ti.com SLUS550C − DECEMBER 2002 − REVISED JULY 2004 SMBus protocol: Read word Output: Unsigned integer—cell temperature in tenth-degree Kelvin increments. Units: 0.1°K Range: 0 to +6553.5°K {real range} Granularity: 0.1°K Accuracy: ±1.5°K (from ideal Semitec 103AT thermistor performance, after calibration) Voltage( ) (0x09) Description: Returns the cell-pack voltage (mV). Purpose: The Voltage( ) function provides power management systems with an accurate battery terminal voltage. Power management systems can use this voltage, along with battery current information, to characterize devices they control. This ability helps enable intelligent, adaptive power-management systems. SMBus protocol: Read word Output: Unsigned integer—battery terminal voltage in mV. Units: mV Range: 0 to 20,000 mV Granularity: 1 mV Accuracy: ±0.25% (after calibration) Current( ) (0x0a) Description: Returns the current being supplied (or accepted) by the battery (mA). Purpose: The Current( ) function provides a snapshot for the power management system of the current flowing into or out of the battery. This information is of particular use in power-management systems because they can characterize individual devices and tune their operation to actual system power behavior. SMBus protocol: Read word Output: Signed integer—charge/discharge rate in mA increments: positive for charge, negative for discharge. Units: mA Range: –32,768 to 32,767 mA Granularity: 1 mA Accuracy: 0.25% or 5 mA, whichever is greater AverageCurrent( ) (0x0b) Description: Returns a value that approximates a one-minute rolling average of the current being supplied (or accepted) through the battery terminals (mA). AverageCurrent( ) is implemented as a single pole IIR filter with a 14.5-s time constant. Purpose: The AverageCurrent( ) function provides the average current flowing into or out of the battery for the power management system. SMBus protocol: Read word Output: Signed integer—charge/discharge rate in mA increments: positive for charge, negative for discharge. Units: mA Range: –32,768 to 32,767 mA Granularity: 1 mA Accuracy: 0.25% or 5 mA, whichever is greater MaxError( ) (0x0c) Description: Returns the expected margin of error (%) in the state of charge calculation. For example, when MaxError( ) returns 10% and RelativeStateOfCharge( ) returns 50%, the Relative StateOfCharge( ) is more likely between 50% and 60%. The bq2084 sets MaxError( ) to 100% on a full reset. The bq2084 sets MaxError() 38 www.ti.com SLUS550C − DECEMBER 2002 − REVISED JULY 2004 to 2% on completion of a learning cycle, unless the bq2084 limits the learning cycle to the +512/−256 mAh maximum adjustment values. If the learning cycle is limited, the bq2084 sets MaxError( ) to 8% unless MaxError( ) was already below 8%. In this case, MaxError( ) does not change. The bq2084 increments MaxError( ) by 1% after four increments of CycleCount( ) without a learning cycle. If voltage-based corrections are applied to the coulomb counter, MaxError( ) is set to 25%. Purpose: The MaxError( ) function has real value in two ways: first, to give the user a confidence level about the state of charge and second, to give the power management system information about how aggressive it should be, particularly as the battery nears the end of its life. SMBus protocol: Read word Output: Unsigned integer—percent uncertainty for selected information. Units: % Range: 2–100% Granularity: 1% Accuracy: Not applicable RelativeStateOfCharge( ) (0x0d) Description: Returns the predicted remaining battery capacity expressed as a percentage of FullChargeCapacity( ) (%). Purpose: The RelativeStateOfCharge( ) function is used to estimate the amount of charge remaining in the battery relative to the last learned capacity. SMBus protocol: Read word Output: Unsigned integer-percent of remaining capacity. Units: % Range: 0–100% Granularity: 1% Accuracy: −0, +MaxError( ) AbsoluteStateOfCharge( )(0x0e) Description: Returns the predicted remaining battery capacity expressed as a percentage of DesignCapacity() (%). Note that AbsoluteStateOfCharge( ) can return values greater than 100%. Purpose: The AbsoluteStateOfCharge( ) function is used to estimate the amount of charge remaining in the battery relative to the nominal or DesignCapacity( ). SMBus protocol: Read word Output: Unsigned integer—percent of remaining capacity. Units: % Range: 0–100+% Granularity: 1% Accuracy: −0, +MaxError( ) RemainingCapacity( ) (0x0f) Description: Returns the predicted charge or energy remaining in the battery. The RemainingCapacity( ) value is expressed in either charge or energy, depending on the setting of the BatteryMode( ) CAPACITY_MODE bit. Purpose: The RemainingCapacity( ) function returns the battery’s remaining capacity. This information is a numeric indication of remaining charge or energy given by the Absolute or Relative StateOfCharge( ) functions and may be in a better form for use by power management systems. SMBus protocol: Read word 39 www.ti.com SLUS550C − DECEMBER 2002 − REVISED JULY 2004 Output: Unsigned integer—remaining charge in units of mAh or 10 mWh. BATTERY MODES CAPACITY_MODE BIT = 0 CAPACITY_MODE BIT = 1 Units mAh 10 mWh Range 0–65,535 mAh 0–65,535 10 mWh Granularity mAh 10 mWh Accuracy –0, +MaxError() * FullCharageCapacity() FullChargeCapacity( ) (0x10) Description: Returns the predicted pack capacity when it is fully charged. The FullChargeCapacity( ) value is expressed in either current (mAh at a C/5 discharge rate) or power (10 mWh at a P/5 discharge rate) depending on the setting of the BatteryMode( ) CAPACITY_MODE bit. Purpose: The FullChargeCapacity( ) function provides a means of understanding the tank size of the battery. This information, along with information about the original capacity of the battery, indicates battery wear. SMBus protocol: Read word Output: Unsigned integer—estimated full-charge capacity in units of mAh or 10 mWh. BATTERY MODES CAPACITY_MODE BIT = 0 CAPACITY_MODE BIT = 1 Units mAh 10 mWh Range 0–65,535 mAh 0–65,535 10 mWh mAh 10 mWh Granularity Accuracy –0, +MaxError() × FullCharageCapacity() RunTimeToEmpty( ) (0x11) Description: Returns the predicted remaining battery life at the present rate of discharge (minutes). TheRunTimeToEmpty( ) value is calculated based on either current or power depending on the setting of theBatteryMode( ) CAPACITY_MODE bit. Purpose: The RunTimeToEmpty( ) provides the power management system with information about the relative gain or loss in remaining battery life in response to a change in power policy. This information is not the same as the AverageTimeToEmpty( ), which is not suitable to determine the effects that result from a change in power policy. SMBus protocol: Read word Output: Unsigned integer—minutes of operation left. Units: Minutes Range: 0 to 65,534 min Granularity: 2 min or better Accuracy: –0, +MaxError( ) × FullChargeCapacity( ) / Current( ) Invalid Data Indication: 65,535 indicates battery is not being discharged. AverageTimeToEmpty( ) (0x12) Description: Returns a predicted remaining battery life (minutes), based on AverageCurrent. TheAverageTimeToEmpty( ) value is calculated based on either current or power depending on the setting of the BatteryMode( ) CAPACITY_MODE bit. Purpose: The AverageTimeToEmpty( ) displays state-of-charge information in a more useful way. It averages the instantaneous estimations so the remaining time does not appear to jump around. SMBus protocol: Read word Output: Unsigned integer—minutes of operation left. 40 www.ti.com SLUS550C − DECEMBER 2002 − REVISED JULY 2004 Units: Minutes Range: 0 to 65,534 min Granularity: 2 min or better Accuracy: –0, +MaxError( ) * FullChargeCapacity( ) / AverageCurrent( ) Invalid Data Indication: 65,535 indicates battery is not being discharged. AverageTimeToFull( ) (0x13) Description: Returns a predicted remaining time until the battery reaches full charge (minutes), based on AverageCurrent. Purpose: The AverageTimeToFull( ) function can be used by the SMBus host’s power management system to aid in its policy. It may also be used to find out how long the system must be left on to achieve full charge. SMBus protocol: Read word Output: Unsigned integer—remaining time in minutes. Units: Minutes Range: 0 to 65,534 minutes Granularity: 2 minutes or better Accuracy: –0, +MaxError( ) * FullChargeCapacity( ) / AverageCurrent( ) Invalid Data Indication: 65,535 indicates the battery is not being charged. ChargingCurrent( ) (0x14) Description: Returns the desired charging rate in mA. Purpose: The ChargingCurrent( ) function sets the maximum charge current of the battery. TheChargingCurrent( ) value should be used in combination with the ChargingVoltage( ) value to set the charger’s operating point. Together, these functions permit the bq2084 to dynamically control the charging profile (current/voltage) of the battery. The bq2084 can effectively turn off a charger by returning a value of 0 for this function. The charger may be operated as a constant-voltage source above its maximum regulated current range by returning a ChargingCurrent( ) value of 65,535. SMBus protocol: Read word Output: Unsigned integer—maximum charger output current in mA. Units: mA Range: 0 to 65,535 mA Granularity: 1 mA Accuracy: Not applicable Invalid Data Indication: 65,535 indicates that a charger should operate as a voltage source outside its maximum regulated current range. ChargingVoltage( ) (0x15) Description: Returns the desired charging voltage in mV. Purpose: The ChargingVoltage( ) function sets the maximum charge voltage of the battery. The ChargingVoltage( ) value should be used in combination with the ChargingCurrent( ) value to set the charger’s operating point. Together, these functions permit the bq2084 to dynamically control the charging profile (current/voltage) of the battery. The charger may be operated as a constant-current source above its maximum regulated voltage range by returning a ChargingVoltage( ) value of 65,535. SMBus protocol: Read word Output: Unsigned integer—charger output voltage in mV. Units: mV Range: 0 to 65,535 mV 41 www.ti.com SLUS550C − DECEMBER 2002 − REVISED JULY 2004 Granularity: 1 mV Accuracy: Not applicable Invalid Data Indication: 65,535 indicates the charger should operate as a current source outside its maximum regulated voltage range. BatteryStatus( ) (0x16) Description: Returns the bq2084 status word (flags). Some of the BatteryStatus( ) flags (REMAINING_CAPACITY_ALARM and REMAINING_TIME_ALARM) are calculated on the basis of either current or power depending on the setting of the BatteryMode( ) CAPACITY_MODE bit. This is important because use of the wrong calculation mode may result in an inaccurate alarm. Purpose: The BatteryStatus( ) function is used by the power management system to get alarm and status bits, as well as error codes from the bq2084. This is basically the same information broadcast to both the SMBus host and the smart battery charger by the AlarmWarning( ) function except that the AlarmWarning() function sets the error code bits all high before sending the data. SMBus protocol: Read word Output: Unsigned Integer-status register with alarm conditions bit mapped as follows: ALARM BITS 0x8000 OVER_CHARGED_ALARM 0x4000 TERMINATE_CHARGE_ALARM 0x2000 Reserved 0x1000 OVER_TEMP_ALARM 0x0800 TERMINATE_DISCHARGE_ALARM 0x0400 Reserved 0x0200 REMAINING_CAPACITY_ALARM 0x0100 REMAINING_TIME_ALARM STATUS BITS 0x0080 Initialized 0x0040 DISCHARGING 0x0020 FULLY_CHARGED 0x0010 FULLY_DISCHARGED ERROR CODES 42 0x0007 Unknown Error 0x0006 BadSize 0x0005 Overflow/Underflow 0x0004 AccessDenied 0x0003 UnsupportedCommand 0x0002 ReservedCommand 0x0001 Busy 0x0000 OK www.ti.com SLUS550C − DECEMBER 2002 − REVISED JULY 2004 Alarm Bits OVER_CHARGED_ALARM bit is set whenever the bq2084 detects that the battery is being charged beyond the maximum overcharge limit, which is full capacity plus Maximum Overcharge DF 0x51−0x52. This bit is cleared when the bq2084 detects that the battery is no longer being charged and there are 2 mAh of continuous discharge (i.e., the bq2084 detects discharge activity or no activity above the digital filter). TERMINATE_CHARGE_ALARM bit is set when the bq2084 detects a primary charge termination. This bit is cleared when the bq2084 detects that the battery is no longer being charged. OVER_TEMP_ALARM bit is set when the bq2084 detects that the internal battery temperature is greater than or equal to the OverTemperature Charge threshold while charging or OverTemperature Discharge threshold while discharging. This bit is cleared when the internal temperature falls back below the OverTemperature Charge Reset or OverTemperature Discharge Reset as appropiate.. TERMINATE_DISCHARGE_ALARM bit is set when RM = 0, Voltage( ) = Terminate Voltage DF 0x67−0x68, the battery temperature is less than or equal to the Charge Suspend Temp Low DF 0x79 or the CVUV bit in pack status is set indicating that a Li-Ion cell voltage has dropped below the limit programmed in Cell Under. The bit is cleared when Voltage( ) > Terminate Voltage, RM( ) > 0, and the CVUV bit is cleared. REMAINING_CAPACITY_ALARM bit is set when the bq2084 detects that RemainingCapacity( ) is less than that set by the RemainingCapacityAlarm( ) function. This bit is cleared when either the value set by the RemainingCapacityAlarm( ) function is lower than the RemainingCapacity( ) or when the RemainingCapacity() is increased by charging. REMAINING_TIME_ALARM bit is set when the bq2084 detects that the estimated remaining time at the present discharge rate is less than that set by the RemainingTimeAlarm( ) function. This bit is cleared when either the value set by the RemainingTimeAlarm( ) function is lower than the AverageTimeToEmpty( ) or when the AverageTimeToEmpty( ) is increased by charging. Status Bits The initialized bit is set when the bq2084 has detected a valid load of data flash at full or partial reset. It is cleared when the bq2084 detects an improper data flash load. DISCHARGING bit is set when the bq2084 determines that the battery is not being charged. This bit is cleared when the bq2084 detects that the battery is being charged. FULLY_CHARGED bit is set when the bq2084 detects a primary charge termination or an Overcharge condition. It is cleared when RelativeStateOfCharge( ) is less than the programmed Fully Charged Clear % in DF 0x4a. FULLY_DISCHARGED bit is set when Voltage( ) or VCELL is less than the EDV2 threshold and Current( ) < Overload Current or when RelativeStateOfCharge( ) < Battery Low %. This bit is cleared when RelativeStateOfCharge( ) is greater than or equal to 20%. Error Codes ERROR CODES DESCRIPTION OK The bq2084 processed the function code without detecting any errors. Busy The bq2084 is unable to process the function code at this time. Reserved The bq2084 detected an attempt to read or write to a function code reserved by this version of the specification. The bq2084 detected an attempt to access an unsupported optional manufacturer function code. Unsupported The bq2084 does not support this function code which is defined in this version of the specification. AccessDenied The bq2084 detected an attempt to write to a read-only function code. Over/Underflow The bq2084 detected a data overflow or underflow. BadSize The bq2084 detected an attempt to write to a function code with an incorrect data block. UnknownError The bq2084 detected an unidentifiable error. 43 www.ti.com SLUS550C − DECEMBER 2002 − REVISED JULY 2004 CycleCount( )(0x17) Description: Returns the number of cycles the battery has experienced. The mAh value of each count is determined by programming the Cycle Count Threshold value in DF 0x38−0x39. The bq2084 saves the cycle count value to Cycle Count DF 0x0c−0x0d after an update to CycleCount( ). Purpose: The CycleCount( ) function provides a means to determine the battery wear. It may be used to give advance warning that the battery is nearing its end of life. SMBus protocol: Read word Output: Unsigned integer—count of total charge removed from the battery over its life. Units: cycle Range: 0 to 65,534 cycles; 65,535 indicates battery has experienced 65,535 or more cycles. Granularity: 1 cycle Accuracy: Absolute count DesignCapacity( ) (0x18) Description: Returns the theoretical or nominal capacity of a new pack. The DesignCapacity( ) value isexpressed in either current (mAh at a C/5 discharge rate) or power, (10 mWh at a P/5 discharge rate) depending on the setting of the BatteryMode( ) CAPACITY_MODE bit. Purpose: The DesignCapacity( ) function is used by the SMBus host’s power management in conjunction with FullChargeCapacity( ) to determine battery wear. The power management system may present this information to the user and also adjust its power policy as a result. SMBus protocol: Read word Output: Unsigned integer—battery capacity in units of mAh or 10 mWh. BATTERY MODES CAPACITY_MODE BIT = 0 CAPACITY_MODE BIT = 1 Units mAh 10 mWh Range 0–65,535 mAh 0–65,535 10 mWh Granularity Not applicable Not applicable Accuracy Not applicable Not applicable DesignVoltage( ) (0x19) Description: Returns the theoretical voltage of a new pack (mV). The bq2084 sets DesignVoltage( ) to the value programmed in Design Voltage DF 0x04–0x05. Purpose: The DesignVoltage( ) function can be used to give additional information about a particular smart battery expected terminal voltage. SMBus protocol: Read word Output: Unsigned integer—the battery’s designed terminal voltage in mV Units: mV Range: 0 to 65,535 mV Granularity: Not applicable Accuracy: Not applicable SpecificationInfo( ) (0x1a) Description: Returns the version number of the smart battery specification the battery pack supports, as well as voltage and current scaling information in a packed unsigned integer. Power scaling is the product of the voltage scaling times the current scaling. The SpecificationInfo( ) is packed in the following fashion: (SpecID_H × 0x10 + SpecID_L) + (VScale + IPScale × 0x10) × 0x100. The bq2084 VScale (voltage scaling) and IPScale (current scaling) should always be set to zero. The bq2084 sets SpecificationInfo( ) to the value programmed in Specification Information DF 0x06−0x07. 44 www.ti.com SLUS550C − DECEMBER 2002 − REVISED JULY 2004 Purpose: The SpecificationInfo( ) function is used by the SMBus host’s power management system to determine what information the smart battery can provide. SMBus protocol: Read word Output: Unsigned integer—packed specification number and scaling information: FIELD BITS USED FORMAT ALLOWABLE VALUES SpecID_L 0...3 4-bit binary value 0–15 SpecID_H 4...7 4-bit binary value 0–15 VScale 8...11 4-bit binary value 0 (multiplies voltage by 10^ VScale) IPScale 12...15 4-bit binary value 0 (multiplies current by 10 ^ IPScale) ManufactureDate( ) (0x1b) Description: This function returns the date the cell pack was manufactured in a packed integer. The date is packed in the following fashion: (year−1980) * 512 + month * 32 + day. The bq2084 sets ManufactureDate() to the value programmed in Manufacture Date DF 0x08–0x09. Purpose: The ManufactureDate( ) provides the system with information that can be used to uniquely identify a particular battery pack when used in conjunction with SerialNumber( ). SMBus protocol: Read word Output: Unsigned integer-packed date of manufacture: FIELD BITS USED FORMAT Day 0...4 5-bit binary value 0–31 (corresponds to date) ALLOWABLE VALUES Month 5...8 4-bit binary value 1–12 (corresponds to month number) Year 9...15 7-bit binary value 0–127 (corresponds to year biased by 1980) SerialNumber( ) (0x1c) Description: This function is used to return a serial number. This number, when combined with the ManufacturerName( ), the DeviceName( ), and the ManufactureDate( ), uniquely identifies the battery (unsigned integer). The bq2084 sets SerialNumber( ) to the value programmed in Serial Number DF 0x0a–0x0b. Purpose: The SerialNumber( ) function can be used to identify a particular battery. This may be important in systems that are powered by multiple batteries where the system can log information about each battery that it encounters. SMBus protocol: Read word Output: Unsigned integer ManufacturerName( ) (0x20) Description: This function returns a character array containing the battery manufacturer’s name. For example, MyBattCo identifies the smart battery manufacturer as MyBattCo. The bq2084 sets ManufacturerName( ) to the value programmed in Manufacturer Name DF 0x0e–0x19. Purpose: The ManufacturerName( ) function returns the name of the smart battery manufacturer. The manufacturer’s name can be displayed by the SMBus host’s power management system display as both an identifier and as an advertisement for the manufacturer. The name is also useful as part of the information required to uniquely identify a battery. SMBus protocol: Read block Output: String—character string with maximum length of 11 characters (11 + length byte). 45 www.ti.com SLUS550C − DECEMBER 2002 − REVISED JULY 2004 DeviceName( ) (0x21) Description: This function returns a character string that contains the battery name. For example, a DeviceName( ) of bq2084 indicates that the battery is a model bq2084. The bq2084 sets DeviceName( ) to the value programmed in Device Name DF 0x1a−0x21. Purpose: The DeviceName( ) function returns the battery name for identification purposes. SMBus protocol: Read block Output: String—character string with maximum length of 7 characters (7 + length byte). DeviceChemistry( ) (0x22) Description: This function returns a character string that contains the battery chemistry. For example, if the DeviceChemistry( ) function returns NiMH, the battery pack contains nickel metal hydride cells. The bq2084 sets DeviceChemistry( ) to the value programmed in Device Chemistry DF 0x22–0x26. Purpose: The DeviceChemistry( ) function gives cell chemistry information for use by charging systems. The bq2084 does not use DeviceChemisty( ) values for internal charge control or fuel gauging. SMBus protocol: Read block Output: String—character string with maximum length of 4 characters (4 + length byte). The following is a partial list of chemistries and their expected abbreviations. These abbreviations are not case sensitive. CHEMISTRY ABBREVIATIONS Lead acid PbAc Lithium ion LION Nickel cadmium NiCd Nickel metal hydride NiMH Nickel zinc NiZn Rechargeable alkaline-manganese RAM Zinc air ZnAr The ManufacturerData( ) (0x23) Description: This function allows access to the manufacturer data contained in the battery (data). The bq2084 stores seven critical operating parameters in this data area. Purpose: The ManufacturerData( ) function may be used to access the manufacturer’s data area. The data fields of this command reflect the programming of eight critical data flash locations and can be used to facilitate evaluation of the bq2084 under various programming sets. The ManufacturerData( ) function returns the following information in order: Pack Configuration, Gauge Configuration, Misc Configuration (2 bytes), Digital Filter, Self Discharge Rate, Pack Load Estimate, Battery Low%, and Near Full (2 bytes) AFE Status, and the pending EDV threshold voltage (low byte and high byte). SMBus protocol: Read block Output: Block data—data that reflects data flash programming as assigned by the manufacturer with maximum length of 13 characters (13 + length byte). Pack Status and Pack Configuration (0x2f) This function returns the pack status and pack configuration registers. The pack status register contains a number of status bits relating to bq2084 operation. The pack status register is the least significant byte of the word. The pack configuration register reflects how the bq2084 is configured as defined by the value programmed in Pack Configuration in DF 0x28. 46 www.ti.com SLUS550C − DECEMBER 2002 − REVISED JULY 2004 The pack status register consists of the following bits: b7 b6 b5 b4 b3 b2 b1 b0 PRES EDV2 SS VDQ AFEFAIL PF CVOV CVUV PRES The PRES bit indicates that the bq2084 has been inserted into the system. 0 bq2084 is out of the system 1 bq2084 is inserted into a system EDV2 The EDV2 bit indicates that pack or cell voltage (program option) is less than the EDV2 threshold. 0 Voltage > EDV2 threshold (discharging) 1 Voltage = EDV2 threshold SS The SS bit indicates the seal state of the bq2084. 0 The bq2084 is in the unsealed state 1 The bq2084 is in the sealed state AFEFAIL The AFEFAIL bit indicates that AFE commuunications has failed. 0 AFE communications okay 1 AFE communications have failed VDQ The VDQ bit indicates if the present discharge cycle is valid for an FCC update. 0 Discharge cycle not valid 1 Discharge cycle valid PF The PF bit indicates that the bq2084 PF Flag has been set. It is cleared only when the PF Flag has been cleared 0 bq2084 PF Flag = 0x00 1 bq2084 PF Flag = 0x66 CVOV The CVOV bit indicates that a protection limit has been exceeded including Prolonged Overcurrent, Overvoltage, or Overtemperature conditions. The bit is not latched and merely reflects the present fault status. 0 No secondary protection limits exceeded 1 A secondary protection limit exceeded CVUV The CVUV bit indicates that a protection limit has been exceeded including overload or overdischarge conditions. The bit is not latched and merely reflects the present fault status. 0 No secondary protection limits exceeded 1 A secondary protection limit exceeded 47 www.ti.com SLUS550C − DECEMBER 2002 − REVISED JULY 2004 VCELL4−VCELL1 (0x3c−0x3f) These functions return the calculated individual cell voltages in mV. Data Flash General The bq2084 accesses the internal data flash during reset and when storing historical data. The data flash stores basic configuration information for use by the bq2084. The data flash must be programmed correctly for proper bq2084 operation. Memory Map The following table shows the memory map for the data flash. It shows the default programming for the bq2084. The default programming reflects example data for a 3s2p Li-Ion battery pack with a 0.02-Ω sense resistor. The data flash must be reprogrammed to meet the requirements of individual applications. DATA FLASH ADDRESS 48 DATA NAME LI-ION EXAMPLE 0x01 Remaining Time Alarm 0x03 Remaining Capacity Alarm 0x04 0x05 Design Voltage 0x06 0x07 0x08 0x09 0x0a 0x0c HIGH BYTE LOW BYTE MSB LSB 0x00 0x02 10 minutes 00 0a 360 mAh 01 68 14400 mV 38 40 Specification Information v1.1/PEC 00 31 Manufacture Date 1/1/2003=11809 2e 21 0x0b Serial Number 1 00 01 0x0d Cycle Count 0 00 00 0x0e Manufacturer Name Length 11 0b 0x0f Character 1 T 54 0x10 Character 2 e 45 0x11 Character 3 x 58 0x12 Character 4 a 41 0x13 Character 5 s 53 0x14 Character 6 0x15 Character 7 I 49 0x16 Character 8 n 4e 0x17 Character 9 s 53 0x18 Character 10 t 54 20 0x19 Character 11 . 2e 0x1a Device Name Length 6 06 0x1b Character 1 b 42 0x1c Character 2 q 51 0x1d Character 3 2 32 0x1e Character 4 0 30 0x1f Character 5 8 38 0x20 Character 6 4 34 0x21 Character 7 — 00 0x22 Device Chemistry Length 4 04 0x23 Character 1 L 4c 0x24 Character 2 I 49 0x25 Character 3 O 4f 0x26 Character 4 N 4e 0x27 Manufacturer Data Length 9 09 0x28 Pack Configuration DMODE, 4-LEDs, 4-CELL c3 0x29 Gauge Configuration CSYNC, OTVC 41 www.ti.com SLUS550C − DECEMBER 2002 − REVISED JULY 2004 DATA FLASH ADDRESS DATA NAME LI-ION EXAMPLE Misc Configuration OT, VOD 0x2c Digital Filter (Dead Band) 9860 nV 22 0x2d Self-Discharge Rate 0.2% 14 0x2e Electronics Load 0 mA 00 HIGH BYTE LOW BYTE 0x2a 0x2b 0x2f MSB LSB 0b 00 Battery Low % 7.03% 0x30 0x31 Near Full 200 mAh 00 12 c8 0x32 0x33 Design Capacity 7200 mAh 1c 20 0x34 0x35 Reserved 0 00 00 0x36 0x37 Full Charge Capacity 7200 mAh 1c 20 0x38 0x39 Cycle Count Threshold 5200 mAh 14 50 0x3a 0x3b Charging Voltage 16800 mV 41 a0 0x3c 0x3d Precharge Voltage 2500 mV 09 c4 0x3e 0x3f Fast-Charging Current 2500 mA 09 c4 0x40 0x41 Maintenance Charging Current 0 mA 00 00 0x42 0x43 00 64 Precharge Current 100 mA 0x44 Precharge Temperature 9.6°C 60 0x45 Precharge Temperature Hysteresis 3.0°C 1e 0x46 Charge Inhibit Temp Low 0.0°C Charge Inhibit Temp High 50.0°C 0x49 Fast Charge Termination % 100% ff 0x4a Fully Charged Clear % 95% 5f 0x47 0x48 00 01 0x4b 0x4c Current Taper Threshold 240 mA 00 0x4d 0x4e 01 Current Taper Qual Voltage 300 mV 0x4f Current Taper Window 40s 0x50 Reserved 0x51 0x52 Maximum Overcharge 0x53 Reserved 0x54 Charge Efficiency 0x55 Reserved 0x56 0x57 0x58 f4 f0 2c 28 40 300 mAh 01 2c 02 100% ff 64 Reserved 02 Reserved 22 32 0x59 0x5a Reserved 01 ae 0x5b 0x5c Overload Current 0x5d 0x5e Over Voltage Margin 5000 mA 13 88 700 mV 02 0x5f 0x60 Reserved bc 01 f4 0x61 0x62 Clear Fail Current 0x63 0x64 Cell Over Voltage 256 mA 01 00 4350 mV 10 0x65 0x66 Cell Under Voltage 2300 mV fe 08 fc 0x67 0x68 Terminate Voltage 11300 mV 0x69 0x6a Reserved 0x6b 0x6c Safety Over Voltage 0x6d 0x6e Charge Suspend Temp High 0x6f 0x70 0x71 0x73 0x75 2c 24 00 00 15000 mV 3a 98 60°C 02 58 Charge Suspend Temp High Reset 55°C 02 26 0x72 Over Temperature Discharge 70°C 02 bc 0x74 Over Temperature Discharge Reset 60°C 02 58 0x76 Safety OverTemperature Charge 75°C 02 ee 49 www.ti.com SLUS550C − DECEMBER 2002 − REVISED JULY 2004 DATA FLASH ADDRESS LI-ION EXAMPLE Safety OverTemperature Discharge 75°C 0x79 Charge Suspend Temp Low 0°C 00 0x7a Reserved 0x7b Current Deadband 3 mA 03 HIGH BYTE LOW BYTE 0x77 0x78 MSB LSB 02 ee ef 0x7c 0x7d Shutdown Voltage 8800 mV 22 60 0x7e 0x7f VOC75 15848 mV 3d e8 0x80 Reserved bf 0x81 Reserved 56 0x82 Reserved 40 0x83 0x84 VOC50 15240 mV 3b 88 0x85 Reserved 7f 0x86 Reserved 3d 0x87 0x88 Reserved 0x89 VOC25 27 15024 mV 3a b0 0x8a Reserved 3f 0x8b Reserved 24 0x8c Reserved 0e 0x8d Reserved 0x8e Voltage Average Time 1s Correction Current Limit 64 mA 0x8f 14 01 40 0x90 0x91 Reserved 0b e1 0x92 0x93 Reserved 0b 68 0x95 0x96 EMF/EDV0 3000 mV 0b b8 0x97 0x98 EDV C0 Factor/EDV1 3250 mV 0c b2 0x99 0x9a EDV R0 Factor/EDV2 3400 mV 0d 48 0x9b 0x9c EDV T0 Factor 0 00 00 0x9d 0x9e 00 00 0x94 Reserved 19 EDV R1 Factor 0 0x9f EDV TC Factor 0 00 0xa0 EDV C1 Factor 0 00 0xa1 Reserved 08 0xa2 Reserved 9b 0xa3 Reserved c7 0xa4 Reserved 64 0xa5 Reserved 14 0xa6 0xa7 Reserved 02 00 0xa8 0xa9 Reserved 01 00 0xaa Reserved 0xab Reserved 0xac Learning Low Temp 0xad 50 DATA NAME 08 02 11.9°C 77 Reserved 0a 0xae 0xaf Reserved 01 80 0xb0 0xb1 Reserved 01 00 0xb2 Reserved 08 0xb3 Reserved 18 0xb4 Reserved 14 www.ti.com SLUS550C − DECEMBER 2002 − REVISED JULY 2004 DATA FLASH ADDRESS DATA NAME LI-ION EXAMPLE HIGH BYTE LOW BYTE MSB LSB 0xb5 0xb6 TS Const 1 91 83 0xb7 0xb8 TS Const 2 51 70 0xb9 0xba TS Const 3 e2 8f 0xbb 0xcc TS Const 4 0f ac 0xbd 0xce TS Const 5 00 00 0xbf 0xc0 Reserved 0f 0xc1 ac Reserved 02 0xc2 AFE State Control 00 0xc3 AFE Function Control 00 0xc4 AFE Cell Select 0xc5 AFE Overload 140 mV 12 0xc6 AFE Overload Delay 31 ms 0f 00 0xc7 AFE Short Circuit Charge 17 0xc8 AFE Short Circuit Discharge 17 0xc9 0xca AFE Vref* 9750 mV 26 16 0xcb 0xcc Sense Resistor Gain* 0.02 & 3b d0 0xcd 0xce CC Delta* 0.0000323 mAh 92 0a 0xcf 0xd0 CC Delta* 16 00 0xd1 0xd2 Reserved 0xd3 fa CC Offset* 49701 0xd4 DSC Offset* 38 c2 25 26 0xd5 ADC Offset* 38 26 0xd6 Temperature Offset* 0 00 0xd7 Board Offset* 0 00 0xd8 0xd9 Reserved 00 40 0xda 0xdb Reserved 01 00 0xdc 0xdd Reserved 0xde 0xdf Version 05 1.0 Reserved 01 00 00 32 0xe0 0xe1 Cell Over Voltage Reset 4150 mV 10 36 0xe2 0xe3 Cell Under Voltage Reset 3000 mV 0b b8 0xe4 0xe5 AFE Fail Limit 2 counts 00 02 0xe6 0xe7 Reserved ff ff 0xe8 0xe9 Cell Balance Thresh 3900 mV 0f 3c 0xea 0xeb Cell Balance Window 100 mV 00 64 0xec Cell Balance Min 40 mV 0xed Cell Balance Interval 20 s 28 14 0xee 0xef Cell Imbalance Threshold 01 f4 0xf0 0xf1 Balance Vcell Max 10 36 0xf2 0xf3 Balance Imax 00 9e 0xf4 0xf5 Reserved a5 5a 0xf6 0xf7 Reserved 7a 43 0xf8 0xf9 Reserved 20 83 0xfa Reserved 0xfb AFE Check Time 0s 00 00 0xfc Sleep Current Thresh 2 mA 04 51 www.ti.com SLUS550C − DECEMBER 2002 − REVISED JULY 2004 DATA FLASH ADDRESS HIGH BYTE LOW BYTE 0xfd 0xfe DATA NAME LI-ION EXAMPLE Sleep Current Multiplier 5 counts Sleep Time 20 s MSB LSB 05 14 0xff 0x100 Manufacturer Info 1 00 00 0x101 0x102 Manufacturer Info 2 00 00 0x103 0x104 Manufacturer Info 3 00 00 0x105 0x106 Vmax Charge Voltage 4280 mv 10 b8 0x107 0x108 Voff Charge Voltage 4280 mv 10 b8 0x109 0x10a Von Charge Voltage 4200 mv 10 68 0x10b 0x10c Pulse Max On Time 60 s 01 e0 0x10d 0x10e Pulse Min Off Time 0.125 s 00 01 0x10f 0x110 Max Charge Time 7200 s 1c 20 0x111 0x112 Precharge Detection Current 10 mA 00 0a 0x113 0x114 Charge Detection Current 100 mA 00 64 0x115 0x116 Discharge Detection Current −150 mA ff 6a 0x117 0x118 Reserved 10 68 0x119 0x11a Reserved 10 36 0x11b 0x11c Reserved 00 0x11d Permanent Fail Status 0 00 0x11e Permanent Fail Flag 0 00 0x11f Permanent Fail Config 0 00 0x120 Permanent Fail Input Time 0 0x121 0x122 0x123 0x124 Reserved 0x125 0x126 FET Fail Charge Current 20 mA 0x127 0x128 FET Fail Discharge Current −20 mA FET Fail Time 20 s 0x12b Charge OC Threshold 4000 mA Charge OC Time 6s 0x12e Discharge OC Threshold 10970 mA Discharge OC Time 10 s Fault Reset Time 30 s 0x129 0x12a 0x12c 0x12d 0x12f 0x130 0x131 0x133 0x132 Reserved VPACK Threshold Shutdown Timer 00 17 12 26 73 00 20 ff ec 14 0f 06 2a da 00 1e 07 20 s a0 d0 14 NOTE: Reserved locations must be set as shown. Locations marked with an * are typical calibration values that can be adjusted for maximum accuracy. For these locations the table shows the appropriate default or initial setting. 52 www.ti.com SLUS550C − DECEMBER 2002 − REVISED JULY 2004 ADDITIONAL PROGRAMMING INFORMATION Additional Data Flash Programming The following sections describe the function of each data flash location and how the data is to be stored. Fundamental Parameters Sense Resistor Value The 32-bit CC Delta DF 0xcd–0xd0 corrects the coulomb counter for sense resistor variations. It represents the gain factor for the coulomb counter. The 16-bit Sense Resistor Gain in DF 0xcb−0xcc scales each integrating converter conversion to mAh. The Current( ) related measurement Sense Resistor Gain is based on the resistance of the series sense resistor. The following formula computes a nominal or starting value for Sense Resistor Gain from the sense resistor value (in Ω). Sense Resistor Gain = 306.25/Rs RSNS VALUE (mΩ) SENSE RESISTOR GAIN 5 61250 10 30625 20 15312 CC offset CC offset DF 0xd2−0xd3, contains the offset for the coulomb counter. It is automatically updated when the pack has met the conditions for sleep, before it enters sleep mode. DSC offset DSC offset DF 0xd4, contains the offset for the pack ground reference. It is automatically updated when the pack has met the conditions for sleep, before it enters sleep mode. ADC offset ADC offset DF 0xd5, contains the offset for the a/d converter. It is automatically updated when the pack has met the conditions for sleep, before it enters sleep mode. Digital Filter The desired digital filter threshold, VDF (V), is set by the value stored in Digital Filter DF 0x2c. Digital Filter = VDF / 290 nV 53 www.ti.com SLUS550C − DECEMBER 2002 − REVISED JULY 2004 Cell and Pack Characteristics Battery Pack Capacity and Voltage Pack capacity in mAh units is stored in Design Capacity, DF 0x32–0x33. In mAh mode, the bq2084 copies Design Capacity to DesignCapacity( ). In mWh mode, the bq2084 multiplies Design Capacity by Design Voltage DF 0x04–0x05 to calculate DesignCapacity( ) scaled to 10 mWh. Design Voltage is stored in mV. The initial value for Full Charge Capacity, in mAh, is stored in DF 0x36–0x37. Full Charge Capacity is modified over the course of pack usage to reflect cell aging under the particular use conditions. The bq2084 updates Full Charge Capacity in mAh after a capacity learning cycle. Remaining Time and Capacity Alarms Remaining Time Alarm in DF 0x00–0x01 and Remaining Capacity Alarm in DF 0x02–0x03 set the alarm thresholds used in the SMBus command codes 0x01 and 0x02, respectively. Remaining Time Alarm is stored in minutes and Remaining Capacity Alarm in units of mAh or 10 mWh, depending on the BatteryMode( ) setting. Cycle Count Initialization Cycle Count DF 0x0c−0x0d stores the initial value for the CycleCount( ) function. It should be programmed to 0x0000. Cycle Count Threshold Cycle Count Threshold 0x37–0x38 sets the number of mAh that must be removed from the battery to increment CycleCount( ). Cycle Count threshold is a 16-bit value stored in mAh. Charge Efficiency The bq2084 applies the efficiency factor, EFF%, to all charge added to the battery. EFF% is encoded in Charge Efficiency DF 0x54 according to equation 16: Charge Efficiency = (EFF% • 2.56–1) Pack Options Pack Configuration Pack Configuration DF 0x28 contains bit-programmable features. b7 b6 b5 b4 b3 b2 b1 b0 DMODE LED1 LED0 HPE CPE SM CC1 CC0 DMODE The DMODE bit determines whether the LED outputs indicate AbsoluteStateOfCharge( ) or RelativeStateOfCharge( ). 0 LEDs reflect AbsoluteStateOfCharge( ) 1 LEDs reflect RelativeStateOfCharge( ) LED1–LED0 The LED bits set the number of LEDs for Remaining Capacity ( ) indication. 54 0−0 Configures the bq2084 for five LEDs 0−1 Configures the bq2084 for three LEDs 1−0 Configures the bq2084 for four LEDs 1−1 Configures the bq2084 for five LEDs www.ti.com SLUS550C − DECEMBER 2002 − REVISED JULY 2004 HPE The HPE bit enables/disables PEC transmissions to the smart battery host for master mode alarm messages. 0 No PEC byte on alarm warning to host 1 PEC byte on alarm warning to host CPE The CPE bit enables/disables PEC transmissions to the smart battery charger for master mode messages. 0 No PEC byte on broadcasts to charger 1 PEC byte on broadcasts to charger SM The SM bit enables/disables master mode broadcasts by the bq2084. 0 Broadcasts to host and charger enabled 1 Broadcasts to host and charger disabled If the SM bit is set, modifications to bits in BatteryMode( ) do not re-enable broadcasts. CC1–CC0 The CC bits configure the bq2084 for the number of series cells in the battery pack. 1−1 Configures the bq2084 for four series cells 1−0 Configures the bq2084 for three series cells 0−1 Configures the bq2084 for two series cells Gauge Configuration Gauge Configuration DF 0x29 contains bit−programmable features: b7 b6 b5 b4 b3 b2 b1 b0 0 CSYNC SC CEDV EDVV OVSEL VCOR OTVC CSYNC In usual operation of the bq2084, the CSYNC bit is set so that the coulomb counter is adjusted when a fast charge termination is detected. In some applications, especially those where an externally controlled charger is used, it may be desirable not to adjust the coulomb counter. In these cases the CSYNC bit should be cleared. 0 The bq2084 does not alter RM at the time of a valid charge termination. 1 The bq2084 updates RM with a programmed percentage of FCC at a valid charger termination. SC The SC bit enables learning cycle optimization for a Smart Charger or independent charge. 1 Learning cycle optimized for independent charger 0 Learning cycle optimized for Smart Charger CEDV The CEDV bit determines whether the bq2084 implements automatic EDV compensation to calculate the EDV0, EDV1, and EDV2 thresholds base on rate, temperature, and capacity. If the bit is cleared, the bq2084 uses the fixed values programmed in data flash for EDV0, EDV1, and EDV2. If the bit is set, the bq2084 calculates EDV0, EDV1, and EDV2. 0 EDV compensation disabled 1 EDV compensation enabled 55 www.ti.com SLUS550C − DECEMBER 2002 − REVISED JULY 2004 EDVV The EDVV bit selects whether EDV termination is to be done with regard to Voltage ( ) or the lowest single-cell voltage. 0 EDV conditions determined on the basis of the lowest single-cell voltage 1 EDV conditions determined on the basis of Voltage( ) OVSEL The OVSEL bit determines if Safety Over Voltage is based on Voltage ( ) or highest cell voltages. 0 Safety overvoltage based on Voltage ( ) 1 Safety overvoltage based on highest cell voltage multiplied by the number of cells and then compared to the safety voltage. VCOR The VCOR bit enables the midrange voltage correction algorithm. When it is set, the bq2084 compares the pack voltage to RM and may adjust RM according to the values programmed in VOC25, VOC50, and VOC75. 0 Continuous midrange corrections disabled 1 Continuous midrange corrections enabled OTVC The OTVC bit programs the bq2084 to perform a midrange voltage one time after a device reset 0 One-time midrange correction disabled 1 One-time midrange correction enabled Miscellaneous Configuration Misc Configuration DF 0x2a (high) and 0x2b (low) contains additional bit programmable features. Misc Configuration (high) DF 0x2a b15 b14 b13 b12 b11 b10 b9 b8 IT 0 AFEDET DS OT ECLED 1 VOD IT The IT bit configures the bq2084 to use its internal temperature sensor. The DF constants 0xb5−0xc0 need to match the required thermistor on internal temperature sensor. See the Data Flash Settings for Internal or External Temperature Sensor Table. 0 bq2084 requires an external thermistor. 1 bq2084 uses its internal temperature sensor. AFEDET The AFEDET bit programs the bq2084 to look for errors with I2C communications and the AFE and enables the detection of the AFE permanent failure if bit 3 of PF Config 0x11f is set. 0 Does not verify AFE communications. 1 Does verify AFE communications. DS The DS bit programs the bq2084 to enter sleep mode on SMBus inactivity. 0 bq2084 enters sleep mode when the SMBus is low for 2 s. 1 bq2084 does not enter sleep mode. OT The OT bit programs the bq2084 to turn off the discharge FET when the bq2084 detects an overtemperature condition. Charge FET is always turned off in overtemperature conditions. 56 0 bq2084 does not turn off the discharge FET on overtemperature. 1 bq2084 turns off the discharge FET on overtemperature. www.ti.com SLUS550C − DECEMBER 2002 − REVISED JULY 2004 ECLED The ECLED bit programs the LED activity during charging (DSG bit = 0). 0 The LEDs are not enabled during charging. 1 The LEDs are enabled during charging. VOD The VOD bit enables a 1-s time delay in the setting of the CVOV and CVUV bits in PackStatus. 0 No delay 1 1-s delay Misc Configuration (low) DF 0x2b b7 b6 b5 b4 b3 b2 b1 b0 LEDRCA PFET1 PFET0 NR CHGFET 0 0 0 LEDRCA The LEDRCA bit programs the LED to blink when there is a RemainingCapacityAlarm. 0 The LEDs blink when there is a RemainingCapacityAlarm. 1 The LEDs are off there is a RemainingCapacityAlarm. PFET1, PFET0 The PFETx bits define the precharge FET operation. See the bq29312 data sheet for more detail. 0,0 The bq29312 ZVCHG FET is turned on for precharge. Assumes charger has precharge function. 0,1 The charge FET is turned on for precharge. Assumes charger has precharge function. 1,0 The bq29312 OD FET is turned on for precharge. Assumes charger does not have precharge function. 1,1 Not defined, unpredictable operation NR The NR bit defines whether the bq2084 is to be used with a nonremovable system battery. If set to indicate a nonremovable system battery there are additional clear conditions for a battery failure due to overcharge, overcurrent, and overload. The additional conditions besides battery removal (defined as the loss system present pin going high) are either detection of an opposite current of that that caused the failure or when AverageCurrent() is less than Clear Fail Current DF 0x61, 0x62 for a time defined by Fault Reset Time DF 0x130. Also, for a nonremovable battery the charge FET is left on for discharge current failures and the discharge FET is left on for charge current failures. 0 Removable battery, battery fail conditions cleared by battery removal only. 1 Nonremovable system battery. CHGFET The CHGFET bit programs the charge FET to remain on even after a charge terminate condition. 0 The charge FET is turned off after a charge termination condition. 1 The charge FET is turned on after a charge termination condition. 57 www.ti.com SLUS550C − DECEMBER 2002 − REVISED JULY 2004 Constants and String Data Specification Information Specification Information DF 0x06–0x07 stores the default value for the SpecificationInfo( ) function. It is stored in data flash in the same format as the data returned by the SpecificationInfo( ). Manufacture Date Manufacture Date DF 0x08–0x09 stores the default value for the ManufactureDate( ) function. It is stored in data flash in the same format as the data returned by the ManufactureDate( ). Serial Number Serial Number DF 0x0a–0x0b stores the default value for the SerialNumber( ) function. It is stored in data flash in the same format as the data returned by the SerialNumber( ). Manufacturer Name Data Manufacturer Name Length DF 0x0e stores the length of the desired string that is returned by the ManufacturerName( ) function. Locations DF 0x0f–0x19 store the characters for ManufacturerName( ) in ASCII code. Device Name Data Device Name Length DF 0x1a stores the length of the desired string that is returned by the DeviceName() function. Locations DF 0x1b–0x21 store the characters for DeviceName( ) in ASCII code. Device Chemistry Data Device Chemistry Length DF 0x22 stores the length of the desired string that is returned by the DeviceChemistry( ) function. Locations DF 0x23–0x26 store the characters for DeviceChemistry( ) in ASCII code. Manufacturers Data Length Manufacturers Data Length DF 0x27 stores the length of the desired number of bytes that is returned by the ManufacturersData( ) function. It should be set to 9. Temperature Limits The limits described below are extensions to those limits detailed in the safety and charging sections of this data sheet. Charge Suspend Temp Low Charge Suspend Temp Low DF 0x79 sets the lowest temperature, in degrees C/10, at which normal operation is allowed. If the temperature falls below this limit, the pack goes into a temporary failure state, the charge FET is turned off, and the MAC status is set to system present. It is cleared when the pack warms, or the pack is removed. Charge Inhibit Temp Low Charge Inhibit Temp Low DF 0x46 inhibits charging by setting ChargingCurrent( ) and ChargingVoltage( ) to 0 and turn off the CHG FET. It is programmed in degrees C/10 and the range of −12.8°C to 12.7°C. Charge Inhibit Temp High Charge Inhibit Temp High DF 0x47 − 0x48 inhibits charging by setting ChargingCurrent( ) and ChargingVoltage( ) to 0 Charge Suspend Temp High Charge Suspend Temp High DF 0x6d−0x6e sets the highest temperature, in degrees C/10, at which charging will be allowed to continue. If this temperature is exceeded during charging, the pack goes into a temporary failure state, and the MAC status is set to system present. It is cleared when the pack cools below OverTemperature Charge Reset, or ac adapter is removed, or the pack is removed. Charging can only resume when the temperature returns to within the charge start temperature limits. 58 www.ti.com SLUS550C − DECEMBER 2002 − REVISED JULY 2004 Charge Suspend Temp High Reset Charge Suspend Temp High Reset DF 0x6f−0x70 sets the temperature, in degrees C/10, at which the pack recovers from Charge Suspend Temp High fault. Over Temperature Discharge Over Temperature Discharge DF 0x71−0x72 sets the highest temperature, in degrees C/10, at which discharging will be allowed. If the pack exceeds this temperature, charge and discharge FETs are turned off, and MAC status is set to system present. The pack returns to normal operation when the temperature falls below Over Temperature Discharge Reset, or if the pack is removed. Over Temperature Discharge Reset Over Temperature Discharge Reset DF 0x73−0x74 sets the temperature, in degrees C/10, at which the pack will recover from Over Temperature Discharge. Failure Detection Thresholds Safety OverTemperature Charge Safety OverTemperature Charge DF 0x75−0x76 sets the temperature, in degrees C/10, above which, during charging, the pack enters permanent failure, if the XSOTC bit in Permanent Failure Configuration is set. Safety OverTemperature Discharge Safety OverTemperature Discharge DF 0x77−0x78 sets the temperature, in degrees C/10, above which, during discharging, the pack enters permanent failure, if the XSOTD bit in Permanent Failure Configuration is set. Charge Detection Current Charge Detection Current DF 0x113−0x114 sets the threshold in milliamperes for detecting charge current. This is a signed value and is positive. This threshold is used for detecting cross-conduction, and ensuring that charge termination is not improperly detected due to loss of charging current. Discharge Detection Current Discharge Detection Current DF 0x115−0x116 sets the threshold in milliamperes for detecting discharge current. This is a signed value and is negative. This threshold is used for detecting cross-conduction and determining that the charge FET should be turned on during discharge to reduce IR losses. FET Fail Charge Current FET Fail Charge Current DF 0x125−0x126 sets the threshold in milliamperes for detecting current in a charge FET which is turned off. This is a signed value and is positive. FET Fail Discharge Current FET Fail Discharge Current DF 0x127−0x128 sets the threshold in milliamperes for detecting current in a discharge FET which is turned off. This is a signed value and is negative. FET Fail Time FET Fail Time DF 0x129 sets the time in seconds that current must be detected in a FET which is turned off, in order to determine that the FET has failed. Terminate Voltage Terminate Voltage DF 0x67−0x68, sets the threshold below which the Terminate Discharge Alarm is set. The alarm is cleared when the voltage rises above this threshold, if the CVUV bit in Pack Status is not set. 59 www.ti.com SLUS550C − DECEMBER 2002 − REVISED JULY 2004 Offsets and Limits Temperature offset Temperature offset DF 0xd6, contains a signed offset for the pack’s temperature measurements, in degrees C/10. It is set at board test during pack calibration. Board offset Board offset DF 0xd7, contains a signed offset for the pack’s coulomb counter measurements. If used, it is set at board design time. Current Deadband Current Deadband DF 0x7b, sets the threshold in mA below which a current measurement will not be detected. Shutdown Voltage Shutdown Voltage DF 0x7c−0x7d sets the pack voltage below which the pack’s electronics, including the bq2084, is shut down to conserve power. All FETs are turned off by the AFE. APPLICATION INFORMATION Figure 7 shows a typical bq2084−based battery pack application. The circuit consists of the bq29312 analog front end (AFE) IC, bq29400 second level protection IC, LED, temperature measurement network, data flash connections, serial port and the sense resistor. The data flash stores basic battery pack configuration information and measurement calibration values. The data flash must be programmed properly for bq2084 operation. 60 BATIN X4 X5 1 2 3 4 BAT1P X3 1 1 1k R6 R2 100 R7 C6 C5 0.1 µ F R8 100 R9 100 C7 R10 100 0.1 µ F 1 2 3 4 R11 100 8 7 6 5 D1 JP1 3 Q3 BAT54LT1 D3 100 k R12 100 k R45 VCC 23 7 6 5 4 3 19 2 1 2N7002 3 Q1 1 R43 2 1 100 k C12 0.1 µ F 2N7002 3 Q2 1 BAV99 D2 BAV99 BSS84 U1 bq29400 VC1 OUT VC2 VDD VC3 CD GND VC4 C1 C2 C8 C9 C10 C11 0.1 µ F 0.1 µ F 0.1 µ F 0.1µ F 0.1 µ F 1 µ F 50 V .020 75 PPM BAT2P X2 R1 BAT4P BAT3P X1 1k R5 C4 0.1 µ F 1 k 0.1 µ F 100 1k R4 R3 0.1 µ F C3 R17 5k 321 4.7µ F D4 BAT54LT1 4 300 1W R22 100 k 4 C21 0.47µ F R44 100 k R42 VCC 8 7 65 R16 100 R15 100 C19 0.1 µ F 0.1µ F 0.1 µ F 2 C16 C18 0.1 µ F 1 1 21 2 20 R21 61.9 k VCC DSG ZVCHG CHG BAT PACK 22 RT1 C17 4.7µ F REG 18 10 k SLEEP TOUT 17 VC1 24 R19 1 OD U2 VC2 8.45 k SCLK 13 VC3 bq29312 SDATA 14 VC4 XALERT 16 VC5 WDI 10 R20 100 CELL 11 PMS SR1 SR2 GND GND 8 9 15 12 C20 R14 5k R13 R18 1M 5k 2 F1 6A 8 7 65 Q5 Si4435DY 321 C14 0.1µ F Q4 Si4435DY 1M R23 C22 R24 0.47µ F 1M R27 10 R28 3 SW1 0.1 µ F 100 4 2 3 1 100 k R35 VCC D6 4 D7 R37 R39 100 100 1 GREEN 2 1 PACK− C29 150 pF C30 2200 pF GREEN 2 1 D9 SMBD SMBC Sys Pres X8 X7 X10 R46 R47 X9 1M 1M 100 D11 AZ23C5V6 R41 R40 AZ23C5V6 D10 61.9 k D8 R36 100 100 R38 GREEN 2 1 GREEN 2 1 470 470 470 470 470 100 k 1 GREEN 2 D5 VCC R30 R31 R32 R33 R34 C28 68 PF C27 0.47µ F R25 8 31 VDDD VDDA 30 11 VSSD VSSA 19 VSSD VSSA 29 38 VSSD OC 3 18 PFIN VSSA/XCK1 34 12 33 ROSC/XCK2 SAFE 15 37 NC SMBC 2 TS 16 U3 SMBD 6 SCLK bq2084 32 10 SDATA FLT 36 NC NC 7 25 EVENT LED5 20 35 CLKOUT LED4 21 1 LED3 22 VIN 5 k 4 PU LED2 23 5 PRES LED1 24 28 SR1 NC 14 27 SR2 MRST RBI NC DISP 26 9 13 17 R29 C26 C25 68 PF VCC C24 0.47µ F 4 Q6 Si4435DY 8 765 C13 321 0.1µ F www.ti.com SLUS550C − DECEMBER 2002 − REVISED JULY 2004 Figure 7. bq2084-Based Battery Pack Schematic 61 MECHANICAL DATA MPDS019D – FEBRUARY 1996 – REVISED FEBRUARY 2002 DBT (R-PDSO-G**) PLASTIC SMALL-OUTLINE PACKAGE 30 PINS SHOWN 0,50 0,27 0,17 30 16 0,08 M 0,15 NOM 4,50 4,30 6,60 6,20 Gage Plane 0,25 1 15 0°–ā8° 0,75 0,50 A Seating Plane 0,15 0,05 1,20 MAX PINS ** 0,10 20 24 28 30 38 44 50 A MAX 5,10 6,60 7,90 7,90 9,80 11,10 12,60 A MIN 4.90 6,40 7,70 7,70 9,60 10,90 12,40 DIM 4073252/E 02/02 NOTES: A. B. C. D. All linear dimensions are in millimeters. This drawing is subject to change without notice. Body dimensions do not include mold flash or protrusion. Falls within JEDEC MO-153 POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 IMPORTANT NOTICE Texas Instruments Incorporated and its subsidiaries (TI) reserve the right to make corrections, modifications, enhancements, improvements, and other changes to its products and services at any time and to discontinue any product or service without notice. Customers should obtain the latest relevant information before placing orders and should verify that such information is current and complete. All products are sold subject to TI’s terms and conditions of sale supplied at the time of order acknowledgment. TI warrants performance of its hardware products to the specifications applicable at the time of sale in accordance with TI’s standard warranty. Testing and other quality control techniques are used to the extent TI deems necessary to support this warranty. Except where mandated by government requirements, testing of all parameters of each product is not necessarily performed. TI assumes no liability for applications assistance or customer product design. Customers are responsible for their products and applications using TI components. To minimize the risks associated with customer products and applications, customers should provide adequate design and operating safeguards. TI does not warrant or represent that any license, either express or implied, is granted under any TI patent right, copyright, mask work right, or other TI intellectual property right relating to any combination, machine, or process in which TI products or services are used. Information published by TI regarding third-party products or services does not constitute a license from TI to use such products or services or a warranty or endorsement thereof. Use of such information may require a license from a third party under the patents or other intellectual property of the third party, or a license from TI under the patents or other intellectual property of TI. Reproduction of information in TI data books or data sheets is permissible only if reproduction is without alteration and is accompanied by all associated warranties, conditions, limitations, and notices. Reproduction of this information with alteration is an unfair and deceptive business practice. TI is not responsible or liable for such altered documentation. Resale of TI products or services with statements different from or beyond the parameters stated by TI for that product or service voids all express and any implied warranties for the associated TI product or service and is an unfair and deceptive business practice. TI is not responsible or liable for any such statements. Following are URLs where you can obtain information on other Texas Instruments products and application solutions: Products Applications Amplifiers amplifier.ti.com Audio www.ti.com/audio Data Converters dataconverter.ti.com Automotive www.ti.com/automotive DSP dsp.ti.com Broadband www.ti.com/broadband Interface interface.ti.com Digital Control www.ti.com/digitalcontrol Logic logic.ti.com Military www.ti.com/military Power Mgmt power.ti.com Optical Networking www.ti.com/opticalnetwork Microcontrollers microcontroller.ti.com Security www.ti.com/security Telephony www.ti.com/telephony Video & Imaging www.ti.com/video Wireless www.ti.com/wireless Mailing Address: Texas Instruments Post Office Box 655303 Dallas, Texas 75265 Copyright 2004, Texas Instruments Incorporated