TI BQ2084

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