Please be aware that an important notice concerning availability, standard warranty, and use in critical applications of Texas Instruments
查询BQ20851供应商
www.ti.com
SLUS575 − AUGUST 2003
FEATURES
DProvides Accurate Measurement of Available
Charge in Li-Ion and Li-Polymer Batteries
DSupports the Smart Battery Specification
(SBS) V1.1
DIntegrated Time Base Removes Need for
External Crystal
DWorks With the TI bq29311 Analog Front End
(AFE) Protection IC to Provide Complete Pack
Electronics for 10.8-V or 14.4-V Battery Packs
With Few External Components
DBased on a Powerful Low-Power RISC CPU
Core With High-Performance Peripherals
DIntegrated Flash Memory Eliminates the Need
for External Configuration EEPROM
DMeasures Charge Flow Using a High
Resolution 16-Bit Integrating Converter
− Better Than 3-nVh of Resolution
− Self-Calibrating
− Offset Error Less Than 1-µV
DUses 16-Bit Delta Sigma Converter for
Accurate Voltage and Temperature
Measurements
DProgrammable Cell Modeling for Maximum
Battery Fuel Gauge Accuracy
DDrives 3-, 4-, or 5-Segment LED Display for
Remaining Capacity Indication
D38-Pin TSSOP (DBT)
APPLICATIONS
DNotebook PCs
DESCRIPTION
The bq20851−V1P2 SBS-compliant gas gauge IC for
battery pack installation maintains an accurate record of
available charge in Li-ion or Li-polymer batteries. The
bq20851−V1P2 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 bq29311 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
bq20851−V1P2, the host controller can manage
remaining battery power to extend the system run time as
much as possible.
BLOCK DIAGRAM
Pack+
SMBus
Temp
Sensor
512 Bytes
Config.
Flash
EPROM
Pack−
semiconductor products and disclaimers thereto appears at the end of this data sheet.
The bq20851−V1P2 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 3-nVh
and an offset measurement error of less than 1-µV
(typical). For voltage and temperature reporting, the
bq20851−V1P2 uses a 16-bit A-to-D converter. In
conjunction with the bq29311, the onboard ADC also
monitors individual cell voltages in a battery pack and
allows the bq20851−V1P2 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 bq20851−V1P2 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
bq20851−V1P2 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.
The bq20851−V1P2 contains 512 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 bq20851−V1P2 also
automatically calibrates or learns the true battery capacity
in the course of a discharge cycle from programmable near
full to near empty levels.
www.ti.com
The bq29311 AFE protection IC provides power to the
bq20851−V1P2 from a 3 or 4 series Li-ion cell stack,
eliminating the need for an external regulator circuit.
TSSOP PACKAGE
(TOP VIEW)
VIN
1
TS
2
LED5
LED4
LED3
SCLK
VDDD
SDATA
VSSD
SAFE
SMBC
SMBD
DISP
EVENT
VSSD
NC − No internal connection
T
A
−20°C to 85°Cbq20851DBT−V1P2
(1)
The bq20851−V1P2 is available taped and reeled. Add an R suffix
to the device type (e.g., bq20851DBTR−V1P2) to order tape and
reel version.
LED display segments that each may drive an external LED
Connections for a small-value sense resistor to monitor the battery charge- and discharge-current flow
www.ti.com
SLUS575 − AUGUST 2003
Terminal Functions
TERMINAL
NAMENo.
CLKOUT35I32.768-kHz output to the bq29311
DISP17IDisplay control for the LED drivers LED1 through LED5
FILT32IAnalog input connected to the external PLL filter
EVENT18IInput from bq29311 XALER T output
LED137O
LED236O
LED35O
LED44O
LED53O
MRST26IMaster reset input that forces the device into reset when held high
N/C
RBI9I
ROSC33IInternal time base bias input
SAFE12OOutput for additional level of safety protection; e.g., fuse blow.
SCLK6OCommunication clock to the bq29311
SDATA10I/OData transfer to and from bq29311
SMBC15I/OSMBus clock open-drain bidirectional pin used to clock the data transfer to and from the bq20851−V1P2
SMBD16I/OSMBus data o p e n - d r ain bidirectional pin used to transfer address and data to and from the bq20851−V1P2
SR128I
SR227I
TS2IThermistor voltage input connection to monitor temperature
VDDA31IPositive supply for analog circuitry
VDDD8IPositive supply for digital circuitry and I/O pins
VIN1ISingle cell voltage input from the bq29311
VSSA30, 34INegative supply for analog circuitry
VSSD11, 19, 38INegative supply for digital circuitry
VSSP29INegative supply for output circuitry
20−24, 7, 13,
14, 25,
LED display segments that each may drive an external LED
−No connection
Register backup that provides backup potential to the bq20851−V1P2 data registers during periods of low
operating voltage. RBI accepts a storage capacitor or a battery input.
3
ESD rating
SLUS575 − AUGUST 2003
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.
www.ti.com
ABSOLUTE MAXIMUM RATINGS
(2)
, and V
(1)
UNITS
−0.3 V to 6 V
−0.3 V to 6 V
−0.3 V to VDD + 0.3 V
−20°C to 85°C
−65°C to 150°C
(SSP).
over operating free-air temperature (unless otherwise noted)
Supply voltage range, VDD relative to V
Open-drain I/O pins, V
Input voltage range to all other pins, VI relative to VSS
Operating free-air temperature range, T
Storage temperature range, T
HBM1.5 kV
ESD rating
(1)
Stresses beyond those listed under “absolute maximum ratings” may cause permanent damage to the device. These are stress ratings only , a nd
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
CDM1.5 kV
MM50 V
relative to VSS
(IOD)
stg
SS
A
(SSA)
(2)
(2)
, V
(SSD)
ELECTRICAL CHARACTERISTICS
VDD = 3.0 V to 3.6 V , TA = −20°C to 85°C (unless otherwise noted)
PARAMETERTEST CONDITIONSMINTYPMAXUNIT
V
DD
I
DD
I
(SLP)
V
(OLS)
V
IL
V
IH
V
OL
V
(ILS)
V
(IHS)
V
(AI)
Z
(AI1)
Z
(AI2)
Power-On Reset (see Figure 1)
V
IT−
V
hys
Supply voltageV
Operating currentNo flash programming350µA
Low-power storage mode currentHibernate mode1µA
Output voltage low: (LED1−LED5)I
Input voltage low DISP−0.30.8V
Input voltage high DISP2VCC + 0.3V
Output voltage low SMBC, SMBD, SDATA, SCLK,
EVENT, SAFE
Input voltage low SMBC, SMBD, SDATA, SCLK,
EVENT, SAFE
Input voltage high SMBC, SMBD, SDATA, SCLK,
Negative-going voltage input2.12.32.5V
Power-on reset hysteresis50125210mV
and V
DDA
(OLS)
IOL = 0.5 mA0.4V
DDD
= 10 mA0.4V
3.03.33.6V
−0.30.8V
1.76V
4
www.ti.com
f
Frequency error
(1)
2.50
SLUS575 − AUGUST 2003
POR BEHAVIOR
vs
FREE-AIR TEMPERATURE
150
2.45
2.40
2.35
2.30
2.25
2.20
− Negative-Going Input Threshold Voltage − V
2.15
IT−
V
2.10
−20−5102540557085
V
IT−
TA − Free-Air Temperature − °C
V
hys
145
140
135
130
125
120
115
110
− Hysteresis Voltage − mV
hys
V
Figure 1
INTEGRATING ADC CHARACTERISTICS
VDD = 3.0 V to 3.6 V , TA = −20°C to 85°C (unless otherwise noted)
PARAMETERTEST CONDITIONSMINTYPMAX UNIT
V
(SR)
V
(SROS)
INLIntegral nonlinearity error0.003%0.009%
Input voltage range, V
Input offset1µV
(SR2)
and V
(SR1)
VSR = V
(SR2)
– V
(SR1)
–0.31.0V
PLL SWITCHING CHARACTERISTICS
VDD = 3.0 V to 3.6 V , TA = −20°C to 85°C (unless otherwise noted)
PARAMETERTEST CONDITIONSMINTYPMAXUNIT
t
Start-up time
(sp)
(1)
The frequency error is measured from 32.768 Hz.
Internal Oscillator
VDD = 3.0 V to 3.6 V , TA = −20°C to 85°C (unless otherwise noted)
(exo)
f
Start-up time
(sxo)
(1)
The frequency error is measured from 32.768 Hz.
(2)
The start-up time is defined as the time it takes for the oscillator output frequency to be ±1%.
(1)
PARAMETERTEST CONDITIONSMINTYPMAXUNIT
(2)
±0.5% frequency error25ms
VDD = 3.3 V−1%1%
−2%2%
275µs
5
t
Data hold time
ns
SLUS575 − AUGUST 2003
SMBUS TIMING SPECIFICATIONS
VDD = 3.0 V to 3.6 V , TA = −20°C to 85°C (unless otherwise noted)
PARAMETERTEST CONDITIONSMINTYPMAXUNIT
f
SMB
f
MAS
t
BUF
t
hd(STA)
t
su(STA)
t
su(STO)
hd(DAT)
t
su(DA)
t
TIMEOUT
t
low
t
high
t
low(SEXT)
t
low(MEXT)
t
f
t
r
(1)
The bq20851−V1P2 times out when any clock low exceeds t
(2)
t
Max. is minimum bus idle time. SMBC = 1 for t > 125 ms causes reset of any transaction involving bq20851−V1P2 that is in progress.
high
(3)
t
low(SEXT)
(4)
t
low(MEXT
(5)
Rise time, tr = (V
(6)
Fall time, tf = 0.9 VDD to (V
SMBus operating frequencySlave mode, SMBC 50% duty cycle10100kHz
SMBus master clock frequencyMaster mode, no clock low slave extend51.2kHz
Bus free time between start and stop4.7µs
Hold time after (repeated) start4.0µs
Repeated start setup time4.7µs
Stop setup time4.0µs
Clock/data fall timeSee Note 5300ns
Clock/data rise timeSee Note 61000ns
TIMEOUT
is the cumulative time a slave device is allowed to extend the clock cycles in one message from initial start to the stop.
) is the cumulative time a master device is allowed to extend the clock cycles in one message from initial start to the stop.
ILMAX
− 0.15 V) to (V
ILMAX
− 0.15 V)
IHMIN
+ 0.15 V)
www.ti.com
DATA FLASH MEMORY SWITCHING CHARACTERISTICS
VDD = 3.0 V to 3.6 V , TA = −20°C to 85°C (unless otherwise noted)
PARAMETERTEST CONDITIONSMINTYPMAXUNIT
t
(RETENSION)
t
(WORDPROG)
I
(DDPROG)
(1)
Specified by design. Not production tested.
Register Backup
I
(RBI)
V
(RBI)
(1)
Specified by design. Not production tested.
Data retentionSee Note 110Years
Flash programming write-cyclesSee Note 110
Word programming timeSee Note 12ms
Flash-write supply currentSee Note 11416mA
PARAMETERTEST CONDITIONSMINTYPMAXUNIT
RBI data-retention input current (1)VRB > 3.0 V , VDD < V
RBI data-retention voltage1.3V
5
IT
10100nA
Cycles
6
www.ti.com
SMBUS TIMING DIAGRAMS
SLUS575 − AUGUST 2003
SCLK
SDATA
(1)
SCLK
t
low
t
hd(STA)
t
hd(DAT)
t
PS
is the acknowledge-related clock pulse generated by the master.
ACK
BUF
SCLK
SDATA
Start
t
r
t
low(MEXT)
t
high
SCLK
t
low(SEXT)
(ACK)
t
f
t
su(STA)
t
su(DAT)
(1)
t
low(MEXT)
t
hd(STA)
t
su(STO)
SP
Stop
(ACK)
(1)
t
low(MEXT)
SCLK
Figure 2. SMBus Timing Diagram
FUNCTIONAL DESCRIPTION
Internal Oscillator
The internal oscillator performance is additionally dependent on the tolerance of the 113k resistor connected between
RSOC (pin 33) and VSSA (pin 34). It is recommended that this resistor be as close to the bq20851−V1P2 as possible and
that it have a specification of ±0.1% tolerance and ±50 ppm temperature drift or better. The layout of the PCBA is also an
additional contributing factor to 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).
General Operation
The bq20851−V1P2 determines battery capacity by monitoring the amount of charge input or removed from a rechargeable
battery. In addition to measuring charge and discharge, the bq20851−V1P2 measures battery voltage, temperature, and
current, estimates battery self-discharge, and monitors the battery for low-voltage thresholds. The bq20851−V1P2
measures charge and discharge activity by monitoring the voltage across a small-value series sense resistor between the
battery’s 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 bq20851−V1P2 interfaces with the bq29311 to perform battery protection, cell balancing, and voltage translation
functions.
The bq20851−V1P2 can accept any NTC thermistor (default is Semitec 103AT) for temperature measurement or can be
configured to use its internal temperature sensor. The bq20851−V1P2 uses temperature to monitor the battery pack and
to compensate the self-discharge estimate.
Measurements
The bq20851−V1P2 uses an integrating sigma-delta analog-to-digital converter (ADC) for current measurement and a
second sigma delta ADC for battery voltage and temperature measurement. Voltage, current, and temperature
measurements are made every second.
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 as shown in the schematic. The integrating ADC measures bipolar signals from −0.3 to
1.0 V. The bq20851−V1P2 detects charge activity when VSR = V
(SR1)–V(SR2)
is positive and discharge activity when
7
SLUS575 − AUGUST 2003
www.ti.com
VSR = V
(SR1)–V(SR2)
is negative. The bq20851−V1P2 continuously integrates the signal over time, using an internal
counter. The fundamental rate of the counter is 2.6 nVh. The bq20851−V1P2 updates Remaining Capacity() with the
charge or discharge accumulated in this internal counter once every second.
Offset Calibration
The bq20851−V1P2 provides an autocalibration feature to cancel the voltage offset error across SR1 and SR2 for maximum
charge measurement accuracy. The bq20851−V1P2 performs autocalibration when the SMBus lines stay low for a
minimum of 20 s. The bq20851−V1P2 is capable of automatic offset calibration down to 1µV.
Digital Filter
The bq20851−V1P2 does not measure charge or discharge counts below the digital filter threshold. The digital filter
threshold is programmed in the Digital Filter DF 0x2b 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 bq20851−V1P2 monitors the individual series cell
voltages through the bq2931 1. The bq20851−V1P2 configures the bq29311 to present the selected cell to the VCELL pin
of the bq29311 which should be connected to VIN of the bq20851−V1P2. The internal ADC of the bq20851−V1P2 then
measures the voltage and scales it appropriately. The bq20851−V1P2 then reports the Voltage( ) and the individual cell
voltages in VCELL1, VCELL2, VCELL3, and VCELL4 located in 0x3c−0x3f.
Current
The bq20851−V1P2 uses the SR1 and SR2 inputs to measure and calculate the battery charge and discharge current as
represented in the data register Current().
Temperature
The TS input of the bq20851−V1P2 in conjunction with an NTC thermistor measures the battery temperature as shown
in the schematic. The bq20851−V1P2 reports temperature in Temperature( ).
The bq20851−V1P2 can also be configured to use its internal temperature sensor by setting the IT bit in Misc Configuration
DF 0x2a. Data flash locations DF 0xa4 through DF 0xad 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
Temp = [(A3 × AD × 2^ − 16 + A2) × AD × 2 ^ −16 + A1] × AD × 2 ^ −16 + A0
8
www.ti.com
SLUS575 − AUGUST 2003
Gas Gauge Operation
General
The operational overview in Figure 3 illustrates the gas gauge operation of the bq20851−V1P2. Table 3 describes the
bq20851−V1P2 registers.
Inputs
Main Counters and
Capacity Reference (FCC)
Outputs
Charge
Current
Charge
Efficiency
Compensation
Battery Electronics
Load Estimate
− −
−++
Remaining
+
Capacity
(RM)
Chip-Controlled
Available Charge
LED Display
≤
Discharge
Current
Full
Charge
Capacity
(FCC)
Temperature, Other Data
Two-Wire
Serial Port
Qualified
Transfer
Self-Discharge
Timer
Temperature
Compensation
+
Discharge
Count
Register
(DCR)
Figure 3. bq20851−V1P2 Operational Overview
The bq20851−V1P2 accumulates a measure of charge and discharge currents and estimates self-discharge of the battery.
The bq20851−V1P2 compensates the charge current measurement for temperature and state-of-charge of the battery . Th e
bq20851−V1P2 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 bq20851−V1P2 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 full discharge of the battery. It is used as the battery
full-charge reference for relative capacity indication. The bq20851−V1P2 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 bq20851−V1P2
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 bq20851−V1P2 learns the true discharge capacity of the battery under system use conditions.
Main Gas-Gauge Registers
The gas-gauge register functions are described in Table 3.
9
(1)
www.ti.com
SLUS575 − AUGUST 2003
RemainingCapacity( ) (RM)
RM represents the remaining capacity in the battery. The bq20851−V1P2 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 FCC and down during discharge and self-discharge to a minimum of
0. In addition to charge and self-discharge compensation, the bq20851−V1P2 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.
DesignCapacity( ) (DC)
DC is the user-specified battery full capacity. It is calculated from Pack Capacity DF 0x31-0x32 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 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 bq20851−V1P2 sets FCC to the value stored in Last Measured Discharge DF
0x35-0x36. During subsequent discharges, the bq20851−V1P2 updates FCC with the last measured discharge capacity
of the battery. The last measured discharge of the battery is based on the value in the DCR register after a qualified
discharge occurs. Once updated, the bq20851−V1P2 writes the new FCC value to data flash in mAh to Last MeasuredDischarge. FCC represents the full battery reference for the relative display mode and relative state of charge 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 increment. The bq20851−V1P2 initializes DCR, at the beginning of a discharge, to FCC − RM when
RM is within the programmed value in Near Full DF 0x2f. 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 bq20851−V1P2 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:
Battery Low % = ((value stored in DF 0x2e [MSByte] and 0xE3[LSByte]) x 2.56)/655.36
A qualified discharge occurs if the battery discharges from RM ≥ FCC – Near Full to the EDV2 voltage threshold with the
following conditions:
DNo valid charge activity occurs during the discharge period. A valid charge is defined as a charge of 10 mAh into the
battery.
DNo more than 256 mAh of self-discharge or battery load estimation occurs during the discharge period.
DThe temperature does not drop below the low temperature thresholds programmed in Learning Low Temp DF 0x9b
during the discharge period.
DThe 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 bq20851−V1P2 detected EDV2.
DNo midrange voltage correction occurs during the discharge period.
DCurrent remains ≥ 3C/32 when EDV2 or Battery Low % level is reached.
DNo overload condition exists when EDV2 threshold is reached or if RM( ) has dropped to Battery Low% *FCC.
The bq20851−V1P2 sets VDQ=1 in pack status when qualified discharge begins. The bq20851−V1P2 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 bq20851−V1P2 saves the new FCC value to the data flash immediately.
10
www.ti.com
SLUS575 − AUGUST 2003
End-of-Discharge Thresholds and Capacity Correction
The bq20851−V1P2 monitors each cell for four low-voltage thresholds. From highest to lowest, these are EDV2, EDV1,
EDV0 and Cell Under Voltage. EDV2 and EDV1 are calculated as a function of the various CEDV coefficients along with
the present discharge rate, temperature and relative state of charge (RSOC). EDV2 is the variable voltage threshold that
corresponds to the RSOC value stored in Battery Low %. This is typically 3−4%. EDV1 is the variable voltage threshold
that corresponds to RSOC = 0%. EDV0 and Cell Under Voltage are typically fixed at 3.0 V and 2.75 V respectively. EDV0
sets the Terminate Discharge Alarm (TDA) bit. Cell Under Voltage causes shutdown of both the bq20851−V1P2 and the
bq29311. The various low-voltage thresholds are determined on the basis of the lowest single-cell voltage.
The bq20851−V1P2 disables EDV detection if Current( ) exceeds the Overload Current threshold programmed in DF 0x58
− DF 0x59. The bq20851−V1P2 resumes EDV threshold detection after Current( ) drops below the Overload Current
threshold. Any EDV threshold detected is reset after charge is applied and VDQ is cleared after 10 mAh of charge.
Table 2. State of Charge Based on Low Battery Voltage
The bq20851−V1P2 uses the EDV thresholds to apply voltage-based corrections to the RM register according to Table 2.
The bq20851−V1P2 adjusts RM as it detects each threshold. If the voltage threshold is reached before the corresponding
capacity on discharge, the bq20851−V1P2 reduces RM to the appropriate amount as shown in Table 2. If RM reaches the
capacity level before the voltage threshold is reached on discharge, the bq20851−V1P2 prevents RM from decreasing
further until the battery voltage reaches the corresponding threshold.
If 0% RSOC occurs before the EDV1 threshold voltage is reached, then the Fully Discharged (FD) bit will be set. This is
to accommodate the case of a partial charge/discharge cycle. When a partial charge is performed, the portion of the cell
lattice structure that receives the charge has a lower series resistance than the sections that are charged later in the charge
cycle. The subsequent discharge therefore provides a higher voltage as a function of remaining capacity than would be
the case after a full charge. The coulometric value is more accurate than the voltage in this case.
The bq20851−V1P2 estimates the self-discharge of the battery to maintain an accurate measure of the battery capacity
during periods of inactivity. The bq20851−V1P2 makes self-discharge adjustments to RM( ) every 1/4 seconds when
awake and periodically when in sleep mode. The period is determined by Sleep Timer DF 0xe7.
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. The following table 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 0x2c).
Table 4. Self-Discharge for Rate Programmed
TEMPERATURE
(°C)
Temp < 101/4 Y% per day
10 ≤ Temp <201/2 Y% per day
20 ≤ Temp <30Y% per day
30 ≤ Temp <402Y% per day
40 ≤ Temp <504Y% per day
50 ≤ Temp <608Y% per day
60 ≤ Temp <7016Y% per day
70≤ Temp32Y% per day
SELF-DISCHARGE RATE
12
www.ti.com
SLUS575 − AUGUST 2003
CAPACITY
vs
TIME
1200
1000
800
600
Capacity − mAh
400
200
TA = 35°C
0
010203040
TA = 45°C
TA = 15°C
TA = 25°C
506070
t − Time − Days
Figure 4. Self-Discharge at 2.5%/Day at 25°C
Figure 4 illustrates how the self-discharge estimate algorithm adjusts RemainingCapacity( ) versus temperature.
Battery Electronic Load Compensation
The bq20851−V1P2 can be configured to compensate for a constant load (as from battery electronics) present in the battery
pack at all times. The bq20851−V1P2 applies the compensation continuously when the charge or discharge is below the
digital filter . The bq20851−V1P2 applies the compensation in addition to self-discharge. The compensation occurs at a rate
determined by the value stored in Electronics Load DF 0x2d. The compensation range is 0 µA–765 µA in steps of
approximately 3 µA.
Midrange Capacity Corrections
The bq20851−V1P2 applies midrange capacity corrections when the VCOR bit is set in Gauge Configuration DF 0x29. The
bq20851−V1P2 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 for each threshold.
For the midrange corrections to occur, the temperature must be in the range of 19°C to 31°C inclusive and the Current( )
and AverageCurrent() must both be between −64 mA and 0. The bq20851−V1P2 makes midrange corrections as shown
in Table 5. For a correction to occur, the bq20851−V1P2 must detect the need for correction twice during subsequent 20-s
intervals. Wit h t h e V COR bit set, the bq20851−V1P2 makes midrange corrections whenever conditions permit. If the OTVC
bit in Gauge Configuration DF 0x29 is set and VCOR = 0, the bq20851−V1P2 makes a single attempt of mid-range
correction immediately after device reset and does not require a second validation.
Table 5. Midrange Corrections
CONDITIONRESULT
Voltage() ≥ 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%
13
www.ti.com
SLUS575 − AUGUST 2003
Charge Control
Charging Voltage and Current Broadcasts
The bq20851−V1P2 supports SBS charge control by broadcasting the ChargingCurrent( ) and ChargingVoltage( ) to the
Smart Charger address. The bq20851−V1P2 broadcasts the requests every 10 seconds. The bq20851−V1P2 updates the
values used in the charging current and voltage broadcasts based on the battery’s state of charge, voltage, and
temperature. The charge voltage is programmed in Charging Voltage DF 0x039-0x3a. The charge current may take any
of four different values: Fast Charging Current DF (0x3d–0x3c), Maintenance Charging Current (DF 0x3f), Precharge
Current (0x41), or 0. The charge current depends on charge state and operating conditions.
The bq20851−V1P2 internal charge control is compatible with the constant current/constant voltage profile for Li-Ion. The
bq20851−V1P2 detects primary charge termination on the basis of the tapering charge current during the constant-voltage
phase.
Alarm Broadcasts to Smart Charger and Host
If any of the bits 8−15 in BatteryStatus( ) are set, the bq20851−V1P2 broadcasts an AlarmWarning( ) message to the Host
address. If any of the bits 12−15 in BatteryStatus( ) are set, the bq20851−V1P2 also sends an AlarmWarning( ) message
to the Smart Charger address. The bq20851−V1P2 repeats the AlarmWarning() messages every 10 seconds until the
alarm bits are cleared.
Precharge Qualification
The bq20851−V1P2 sets ChargingCurrent( ) to the precharge rate as programmed in Precharge Current DF 0x41 under
the following conditions:
DVoltage: The bq20851−V1P2 requests the precharge charge rate when Voltage( ) drops below the precharge threshold
or when the EDV0 threshold is detected. Once requested, a precharge rate remains until Voltage( ) increases above
the precharge threshold and the EDV0 condition does not exist. The precharge threshold is programmed in PrechargeVoltage DF 0x3b−0x3c.
DTemperature: The bq20851−V1P2 requests the precharge rate when Temperature( ) is between 0°C and the precharge
threshold programmed in Precharge Temp 0x43. Temperature( ) must be equal to or greater than the precharge
threshold to allow the fast-charge rate.
Charge Suspension
The bq20851−V1P2 may temporarily suspend charge if it detects a charging fault. A charging fault includes the following
conditions.
DOvercurrent: An overcurrent condition exists when the bq20851−V1P2 measures the charge current to be equal to or
greater than Overcurrent Margin plus ChargingCurrent( ). Overcurrent Margin is programmed in DF 0x5c−0x5d. On
detecting an overcurrent condition, the bq20851−V1P2 sets the ChargingCurrent( ) to zero and sets the
TERMINATE_CHARGE_ALARM bit in Battery Status( ). The overcurrent condition and TERMINATE_
CHARGE_ALARM are cleared when the measured current drops below Overcurrent Margin.
DOvervoltage: An overvoltage condition exists when the bq20851−V1P2 measures the battery voltage to be more than
Over Voltage Margin plus ChargingV oltage(), or when a cell voltage has exceeded the overvoltage limit programmed
in Cell Over Voltage. Over Voltage Margin is programmed in DF 0x5a−0x5b and Cell Over Voltage in DF 0x60. On
detecting an overvoltage condition, the bq20851−V1P2 sets the ChargingCurrent( ) to zero and sets the
TERMINATE_CHARGE_ALARM bit in BatteryStatus( ). The bq20851−V1P2 clears the TERMINATE_
CHARGE_ALARM bit when it detects that the battery is no longer being charged (DISCHARGING bit set in
BatteryStatus( )). The bq20851−V1P2 continues to broadcast zero charging current until the overvoltage condition is
cleared. The overvoltage condition is cleared when the measured battery voltage drops below the ChargingVoltage( )
plus the Over Voltage Margin and all cell voltages are less than the Cell Over V oltage Reset threshold in DF 0xcf, 0xd0.
DOvertemperature: An overtemperature condition exists when Temperature( ) is greater than or equal to the Max
Temperature value programmed in DF 0x53, 0x54. On detecting an overtemperature condition, the bq20851−V1P2
sets the ChargingCurrent( ) to zero and sets the OVER_TEMP_ALARM and TERMINATE_CHARGE_ ALARM bit in
BatteryStatus( ) and the CVOV bit in pack status. The overtemperature condition is cleared when Temperature( ) is
equal to or below (Max Temperature − Temperature Hysteresis DF 0x55, 0x56) or 43°C.
DOvercharge: An overcharge condition exists if the battery is charged more than the Maximum Overcharge value after
RM = FCC. Maximum Overcharge is programmed in DF 0x4e-0x4f. On detecting an overcharge condition, the
bq20851−V1P2 sets the ChargingCurrent( ) to zero and sets the OVER_CHARGED_ALARM,
TERMINATE_CHARGE_ ALARM, and FULLY_CHARGED bits in BatteryStatus( ). The bq20851−V1P2 clears the
14
www.ti.com
SLUS575 − AUGUST 2003
TERMINATE_CHARGE_ ALARM when it detects that the battery is no longer being charged and clears the
OVER_CHARGED_ALARM when 2mAh of discharge are measured. The FULLY_CHARGED bit remains set and the
bq20851−V1P2 continues to broadcast zero charging current until RelativeStateOfCharge( ) is less than FullyCharged Clear% programmed in DF 0x47. The counter used to track overcharge capacity is reset with 2 mAh of
discharge.
DUndertemperature: An undertemperature condition exists if Temperature( ) < 0°C. On detecting an under temperature
condition, the bq20851−V1P2 sets ChargingCurrent( ) to zero. The bq20851−V1P2 sets ChargingCurrent( ) to the
appropriate precharge rate or fast-charge rate when Temperature( ) ≥ 0°C.
Primary Charge Termination
The bq20851−V1P2 terminates charge if it detects a charge-termination condition based on current taper. A
charge-termination condition includes the following:
For current taper, ChargingVoltage( ) must be set to the pack voltage desired during the constant-voltage phase of
charging. The bq20851−V1P2 detects a current taper termination when the pack voltage is greater than or equal to
ChargingVoltage( ) minus Current Taper Qual Voltage in DF 0x4a and the charging current is below a threshold
determined by Current Taper Threshold in DF 0x48−0x49 and above 22.5 mA for two consecutive 40-second intervals.
Once the bq20851−V1P2 detects a Primary Charge Termination, the bq20851−V1P2 sets the
TERMINATE_CHARGE_ALARM and FULLY_CHARGED bits in BatteryStatus( ), and sets the ChargingCurrent( ) to
the maintenance charge rate as programmed in Maintenance Charging Current DF 0x3f, 0x40. On termination, the
bq20851−V1P2 also sets RM to a programmed percentage of FCC, provided that RelativeStateOfCharge( ) is below
the desired percentage of FCC and the CSYNC bit in Gauge Configuration DF 0x29 is set. The programmed
percentage of FCC, Fast Charge Termination %, is set in DF 0x46. The bq20851−V1P2 clears the FULLY_CHARGED
bit when RelativeStateOfCharge( ) is less than the programmed Fully Charged Clear %. The bq20851−V1P2
broadcasts the fast-charge rate when the FULLY_CHARGED bit is cleared and voltage and temperature permit. The
bq20851−V1P2 clears the TERMINATE_CHARGE_ALARM when it no longer detects that the battery is being charged
or it no longer detects the termination condition. See Table 6 for a summary of BatteryStatus( ) alarm and status bit
operation.
The bq20851−V1P2 balances the cells during charge by discharging those cells above the threshold set in Cell Balance
Threshold DF 0xd7−0xd8, if the maximum dif ference in cell voltages exceeds the value programmed in Cell Balance Min
DF 0xdb. For cell balancing, the bq20851−V1P2 measures the cell voltages at an interval set in Cell Balance Interval DF
0xdc. On the basis of the cell voltages, the bq20851−V1P2 either selects the appropriate cell to discharge or adjusts the
cell balance threshold up by the value programmed in Cell Balance Window 0xd9−0xda 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
can be adjusted no more than once during a balance interval.
DISPLAY PORT
General
The display port drives a 5-LED bar-graph display. The display is activated by a logic signal on the DISP input. The
bq20851−V1P2 can display RemainingCapacity() in either a relative or absolute mode with each LED representing a
percentage o f the full-battery reference. In relative mode, the bq20851−V1P2 uses FullChargeCapacity() as the full-battery
reference; in absolute mode, it uses Design Capacity (DC). The DMODE bit in Pack Configuration DF 0x28 programs the
bq20851−V1P2 for the absolute or relative display mode.
Activation
Activation is usually accomplished with a pullup resistor and a pushbutton switch. Detection of the transition activates the
display. 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 t o VCC. The DISP input is ignored if the bq20851−V1P2 detect charge activity , see charging mode below for further
information.
FC = 1, TCA = 1
CC() = Maintenance
ChargingCurrent
FD = 1RSOC() = 20%
AC() < 0 mA
V() < CV() + Over Voltage Margin
VCELL(all) = Cell Over Voltage Reset
T() = Max T emperature –Temperature
Hysteresis or T()= 43°C
DISCHARGING = 1, and 2 mAh of discharge is
measured
RSOC() < Fully Charged Clear%
STATUS CLEAR CONDITION
16
www.ti.com
SLUS575 − AUGUST 2003
Display Modes
In relative mode, each LED output represents a % of the RelativeStateOfCharge( ) value. In absolute mode, each LED
output represents a% of the AbsoluteStateOfCharge( ) value. In either mode, the bq20851−V1P2 blinks the LED display
if RemainingCapacity( ) is less than Remaining CapacityAlarm( ). The display is disabled if EDV0 = 1. The default condition
is all LEDs off.
Discharging Mode
The bq20851−V1P2 display port is in this mode when the battery is in the system but not charging or removed from the
system. On activation of the DISP input in this mode the active LEDs with turn on sequentially with a LED_DELAY, DF 0xe8
(default = 50 ms) delay between the illumination of each active LEDs. When all active LEDs are ON they will remain on
for the LED HOLD time, which is programmable in DF 0xeb, 0xec, and then all LEDs will turn OFF together. When State
of Charge < 10% then LED1 will repeatedly flash at a rate of on for LED_FLASH, DF 0xe9 (default = 50 ms) then off for
LED_FLASH.
STATE OF CHARGELED1LED2LED3LED4LED5
0%OFFOFFOFFOFFOFF
0% to 10%FlashOFFOFFOFFOFF
11% to 30%ONOFFOFFOFFOFF
31% to 50%ONONOFFOFFOFF
51% to 70%ONONONOFFOFF
71% to 88%ONONONONOFF
89% to 100%ONONONONON
Charging Mode
The bq20851−V1P2 display port is in this mode when the battery is in the system and is being charged but the battery is
not full. When the battery is full then all LEDs are OFF. The DISP input is ignored until the battery is full (100% where all
LEDs are OFF. When charging is activated all active LEDs are sequenced ON and then the LED representing the portion
of capacity being charged will blink at a rate of ON for LED_BLINK, DF 0xea (default = 750 mS) and then OFF for
LED_BLINK indicating charge behavior.
STATE OF CHARGELED1LED2LED3LED4LED5
0% to 30%BlinkOFFOFFOFFOFF
31% to 50%ONBlinkOFFOFFOFF
51% to 70%ONOFFBlinkOFFOFF
71% to 88%ONONONBlinkOFF
89% to 100%ONONONONBlink
Li-Ion Protector Control
The bq20851−V1P2 provides protection for Li-Ion batteries, as shown in Table 7. The bq20851−V1P2 uses the bq29311
to measure and report individual series cell voltages. The bq20851−V1P2 determines if a voltage protection condition has
been breached and turns off the respective control FET via I2C communication to the bq2931 1. It is recommended that the
bq20851−V1P2 protection control be validated by two successive measurements by setting VOD=1 in Misc Configuration.
The bq29311 can detect and protect the load from an overcurrent (OC) or short circuit (SC). The bq29311 alerts the
bq20851−V1P2 with the XALERT output when ever an overcurrent or short circuit threshold is breached in either the charge
or discharge directions.
The bq20851−V1P2 asserts CVOV and instructs the bq29311 to turn off the charge FET if an Overvoltage or
Overtemperature condition exists, or if AverageCurrent( ) ≥ Fast-Charging Current + Over Current Margin (Prolonged
Overcurrent condition in Table 6). The bq20851−V1P2 does not turn off the charge FET if there is a discharge current >
50 mA. The bq20851−V1P2 instructs the bq29311 to turn on the charge FET when Overvoltage and Overtemperature
conditions no longer exist, and AverageCurrent() < 256 mA (if Prolonged Overcurrent generated the fault condition).
The bq20851−V1P2 asserts CVUV and instructs the bq29311 to turn off the discharge FET if an Overdischarged condition
exists, or if AverageCurrent() ≤ − overload current (Overload). The bq20851−V1P2 does not turn off the discharge FET
if there is a charge current ≥ 50 mA. The bq20851−V1P2 instructs the bq29311 to turn on the discharge FET when the
Overdischarged condition no longer exists and AverageCurrent( ) > −256 mA (if Overload generated the fault condition).
17
www.ti.com
SLUS575 − AUGUST 2003
Table 7. bq20851−V1P2 to bq29311 Interface (FET Protection Control)
Battery State (Table 6)DISCHARGING FETCHARGING FET
Over LoadAFE Over Curr Dsg (DF 0xb2) is breached for Over Curr Delay (DF 0xb4)AverageCurrent() = 0 mA
Over CurrentAFE Over Curr Chg (DF 0x0b3) is breached for Over Curr Delay (DF 0xb4)AverageCurrent() = 0 mA
Short Circuit, DischargeAFE Short Circ Thresh (DF 0xb6) is breached for AFE Short Circuit Delay (DF 0xb7,
lower nibble)
Short Circuit, ChargeAFE Short Circ Thresh (DF 0xb6) is breached for AFE Short Circuit Delay (DF 0xb7,
upper nibble)
(4)
Clear is detected and controlled by the bq20851−V1P2.
SAFE Output
The SAFE output of the bq20851−V1P2 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 level, a cell-voltage, or an integrity check of the
AFE registers.
(2)
Off
(2)
Normal
(1)
Normal
AverageCurrent() = 0 mA
AverageCurrent() = 0 mA
(4)
The SAFE output is driven low in any of the following 4 conditions if the AC bit in Misc Configuration (DF 0x2a) is set. If
the SAFE output activates, the bq20851−V1P2 sets the SOV bit in pack status. SOV remains set until the bq20851−V1P2
is reset. The SAFE output can be pulled high (cleared) by a POR of the bq20851−V1P2 only .
SAFE activation conditions:
DWhen CVOV = 1 AND after a minimum of 1s Voltage() > Safety Over Voltage (DF 0x68 and 0x69), or
DWhen CVOV = 1 AND after a minimum of 1s the Temperature() > Safety Temperature (DF 0x6a and 0x6b)
DWhen Miscellaneous Configuration (0x2a) bit 5 AC is set, and the AFE has failed at least AFE Fail Times (DF 0xd3,
d4)
The bq20851−V1P2 checks the programming of the AFE registers at a period determined by AFE Check Time DF 0xe4.
The units of the check period are seconds unless the bq20851−V1P2 is in sleep mode, in which case the period is AFECheck Time x Sleep Current Time (DF 0xe7). If the data is not correct, the bq20851−V1P2 increments an internal counter .
The CVOV flag in PackStatus() (x2f) is set in any of the following ways:
DVoltage() ≥ ChargingVoltage() + OverVoltageMargin (DF 0x5a, 0x5b)
DAverageCurrent() ≥ FastCurrent + OvercurrentMargin (DF 0x5c, 0x5d)
DAny cell voltage ≥ CellOverVoltage (DF 0x60, 0x61)
DThe BatteryStatus() Over temperature bit is set
An example circuit using the SAFE output to blow a fuse is shown in Figure 5.
18
www.ti.com
SLUS575 − AUGUST 2003
FUSE
V
CC
Cell 4
BAT+
1 MΩ
100 kΩ
SAFE
0.1 µF
BSS84
2N7002
1 MΩ
Figure 5. Example SAFE Circuit Implementation
Low-Power Modes
The bq20851−V1P2 enters sleep mode when the charge and discharge current is less than the threshold programmed in
Sleep Current Threshold DF 0xe5, the SMBus lines are low for at least 2 s, and bit 4 of Misc. Configuration DF 0x2a is set
to zero. The bq20851−V1P2 wakes up periodically to monitor voltage and temperature and to apply self-discharge
adjustment. The sleep period is set in Sleep Timer DF 0xe7. The bq20851−V1P2 wakes up at a period set by Sleep CurrentTime DF 0xe6 to measure current. The bq20851−V1P2 comes out of sleep when the SMBus lines go high or if the current
is greater than Sleep Current Threshold. A rising edge on SMBC or SMBD restores the bq20851−V1P2 to the full operating
mode.
When any cell voltage reaches the Cell Under Voltage Threshold voltage, the bq20851−V1P2 turns off the DSG FET via
the bq2931 1 and writes the SHUTDOWN threshold voltage of the bq29311 to 10.975 V. If the battery is already below this
voltage threshold then the bq29311 will enter its SHUTDOWN mode causing the battery electronics to enter an ultra low
power mode when the bq20851−V1P2 is powered down.
Reset Conditions
On power-up the entire IC is reset and data is loaded from Data Flash to configure the SBS Data and the system. On a
partial reset (loss of VCC but RBI holds RAM valid) then a limited number of locations are taken.
These actions are the following:
DThe AFE registers are rewritten.
DPackStatus() VDQ flag is cleared (the proposed change is not to clear VDQ).
DPackStatus() EDV2 flag is cleared.
DBatteryStatus() DISCHARGING flag is cleared.
DThe charger and alarm broadcast period is set to 10 seconds between broadcasts.
COMMUNICATION
The bq20851−V1P2 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 bq20851−V1P2 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 bq20851−V1P2. In this way a system can efficiently monitor and manage the battery.
19
www.ti.com
SLUS575 − AUGUST 2003
SMBus
The SMBus interface is a command-based protocol. A processor acting as the bus master initiates communication to the
bq20851−V1P2 b y 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 bq20851−V1P2 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 bq20851−V1P2 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 bq20851−V1P2 acts as the bus master. This occurs when the bq20851−V1P2 broadcasts charging
requirements and alarm conditions to device addresses 0x12 (SBS Smart Charger) and 0x10 (SBS Host Controller).
SMBus Protocol
The bq20851−V1P2 supports the following SMBus protocols:
DRead word
DWrite word
DBlock read
A processor acting as the bus master uses the three protocols to communicate with the bq20851−V1P2. The
bq20851−V1P2 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 offstate, 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 bq20851−V1P2 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 bq20851−V1P2 can receive or transmit data with or without PEC. Figure 6 shows the communication protocol for the
read word, write word, and read block messages without PEC. Figure 7 includes PEC.
In the read word protocol, the bq20851−V1P2 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 bq20851−V1P2 compares
the value to its calculation. If the PEC is correct, the bq20851−V1P2 responds with an ACKNOWLEDGE. If it is not correct,
the bq20851−V1P2 responds with a NOT ACKNOWLEDGE and sets an error code.
In the write word and block read, the host generates an ACKNOWLEDGE after the last byte of data sent by the
bq20851−V1P2. The bq20851−V1P2 then sends the PEC and the host acting as a master-receiver generates a NOT
ACKNOWLEDGE and a stop condition.
20
www.ti.com
ÓÓ
ÓÓ
Battery Address
S
0001011
SLUS575 − AUGUST 2003
11818181171
0ACommand CodeAData Byte LowA Data Byte HighAP
Write Word
117181171
Battery Address
S
0001011
0ACommand CodeABattery AddressA1
818
Data Byte LowData Byte High
A
1
S
1
A
P
Read Word
1
Battery Address
S0A Command CodeABattery AddressA1
0001011
S
1818
Byte Count = NData Byte 1AA
AA
117181171
1818
1
PData Byte 2Data Byte N
Block Read
Host Processor
A − ACKNOWLEDGE
A − NOT ACKNOWLEDGE
bq2083
S − START
P − STOP
Figure 6. SMBus Communication Protocol Without PEC
21
ÓÓ
SLUS575 − AUGUST 2003
www.ti.com
Battery Address
S
0001011
Battery Address
S
0001011
Battery Address
S
0001011
Byte Count = NData Byte 1AA
Host Processor
bq2083
0A Command Code AData Byte LowPECA Data Byte High AAP
Write Word
1
0A Command Code ABattery AddressA1
1118818
A
0A Command Code ABattery AddressA1
AA
A − ACKNOWLEDGE
A − NOT ACKNOWLEDGE
S − ST ART
P −
AA
Read Word
1818
Block Read
STOP
S
1
S
PData Byte LowData Byte HighPEC
117181171
117181171
1818
8111818181171
811
APData Byte 2Data Byte NPEC
Figure 7. SMBus Communication Protocol With PEC
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 bq20851−V1P2. This includes the host following the read
word protocol. The bq20851−V1P2 calculates the PEC based on the following 5 bytes of data, assuming the remaining
capacity of the battery is 1001 mAh.
DBattery Address with R/W = 0: 0x16
DCommand Code for RemainingCapacity( ): 0x0f
DBattery Address with R/W = 1: 0x17
DRemainingCapacity( ): 0x03e9
For 0x160f17e903, the bq20851−V1P2 transmits a PEC of 0xe8 to the host.
PEC Enable in Master Mode
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 bq20851−V1P2 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 bq20851−V1P2 detects the off state. When the SMBC and SMBD lines
go high, the bq20851−V1P2 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.
22
www.ti.com
SLUS575 − AUGUST 2003
COMMAND CODES
The SMBus command codes are in ( ). Temperature( ), Voltage( ), Current( ), and AverageCurrent( ), performance
specifications are at bq29311 regulated VCC (V
ManufacturerAccess( ) (0x00)
Description: This function provides writable command codes to control the bq20851−V1P2 during normal operation and
pack manufacture. The following commands are available:
0x0001 Device Type instructs the bq20851−V1P2 to return the IC part number; i.e., 20851 to Manufacture Access( ) so
it can be read.
0x0002 Firmware Revision instructs the bq20851−V1P2 to return the firmware revision.
0x0003 EDV Level instructs the bq20851−V1P2 to return the pending end-of-discharge voltage level so it can be read.
0x062b SEAL instructs the bq20851−V1P2 to restrict access to those functions listed in Table 3. The bq20851−V1P2
completes the seal function and clears ManufacturerAccess( ).
Purpose: The ManufacturerAccess( ) function provides the system host access to bq20851−V1P2 functions that are not
defined by the SBD.
SMBus protocol: Read or write word
Input/Output: Word
RemainingCapacityAlarm( ) (0x01)
) and a temperature of 0-70_C.
(REG)
Description: Sets or gets the low-capacity threshold value. Whenever the RemainingCapacity( ) falls below the low
capacity value, the bq20851−V1P2 sends AlarmWarning() messages to the SMBus host with the
REMAINING_CAPACITY_ALARM bit set. A low-capacity value of 0 disables this alarm. The bq20851−V1P2 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 bq20851−V1P2 low-capacity alarm.
SMBus protocol: Read or write word
Input/Output: Unsigned integer-value below which Low Capacity messages are sent.
BATTERY MODES
CAPACITY_MODE
BIT = 0
UnitsmAh at C/510 mWh at P/5
Range0–65,535 mAh0–65,535 10 mWh
GranularityNot applicable
AccuracySee RemainingCapacity()
CAPACITY_MODE
BIT = 1
RemainingTimeAlarm( ) (0x02)
Description: Sets or gets the Remaining Time Alarm value. Whenever the AverageTimeToEmpty( ) falls below the
remaining time value, the bq20851−V1P2 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 bq20851−V1P2 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 bq20851−V1P2
RemainingTimeAlarm().
SMBus protocol: Read or write word
Input/Output: Unsigned integer—the point below which remaining time messages are sent.
Units: Minutes
23
www.ti.com
SLUS575 − AUGUST 2003
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
DWhether the battery capacity information is specified in units of mAh or 10 mWh (CAPACITY_MODE bit)
DWhether the ChargingCurrent( ) and ChargingVoltage( ) values are broadcast to the smart battery charger when the
CHARGER_MODE bit is set.
DWhether 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 bq20851−V1P2 broadcasts. The
RELEARN_FLAG bit allows the bq20851−V1P2 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 bq20851−V1P2 forces bits 0-6 to zero and prohibits writes to bit 7.
Table 9 summarizes the meanings of the individual bits in the BatteryMode( ) word and specifies the default values, where
applicable, are noted.
INTERNAL_CHARGE_CONTROLLER bit is not used by the bq20851−V1P2.
PRIMARY_BATTERY_SUPPORT bit is not used by the bq20851−V1P2.
RELEARN_FLAG bit set indicates that the bq20851−V1P2 is requesting a capacity relearn cycle for the battery. The
bq20851−V1P2 sets the RELEARN_FLAG on a full reset and if it detects 20 cycle counts without an FCC update. The
bq20851−V1P2 clears this flag after a learning cycle has been completed.
CHARGE_CONTROLLER_ENABLED bit is not used by the bq20851−V1P2. The bq20851−V1P2 forces this bit to zero.
PRIMARY_BATTERY bit is not used by the bq20851−V1P2. The bq20851−V1P2 forces this bit to zero.
INTERNAL_CHARGE_CONTROLLER0Read only bit flag
PRIMARY_BATTERY_SUPPORT1Read only bit flag
Reserved2–6
RELEARN_FLAG7Read only bit flag
CHARGE_CONTROLLER_ENABLED8R/W bit flag
PRIMARY_BATTERY9R/W bit flag
Reserved10–12
ALARM_MODE13R/W bit flag
CHARGER_MODE14R/W bit flag
CAPACITY_MODE15R/W bit flag
ALARM_MODE bit is set to disable the bq20851−V1P2’s ability to master the SMBus and send AlarmWarning() messages
to the SMBus host and the smart battery charger. When set, the bq20851−V1P2 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
seconds and no less than 59 seconds. 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.
0—Report in mA or mAh (default)
1—Report in 10mW or 10 mWh
DThe ALARM broadcast does not occur more often than once every 10 s. Whenever the BATTERY_MODE command
is received, the bq20851−V1P2 resets the bit and starts or restarts a 60-seconds (nominal) timer. After the timer
expires, the bq20851−V1P2 automatically enables alarm broadcasts to ensure that the accidental deactivation of
broadcasts does not persist. An SMBus host that does not want the bq20851−V1P2 to be a master on the SMBus must
therefore continually set this bit at least once per 59 seconds to keep the bq20851−V1P2 from broadcasting alarms.
DThe ALARM_MODE bit defaults to a cleared state when the bq20851−V1P2 enters SLEEP mode.
DThe 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 bq20851−V1P2’s transmission of ChargingCurrent( ) and
ChargingVoltage( ) messages to the smart battery charger. When set, the bq20851−V1P2 does not transmit
ChargingCurrent( ) and ChargingVoltage( ) values to the smart battery charger. When cleared, the bq20851−V1P2
transmits the ChargingCurrent( ) and ChargingVoltage() values to the smart battery charger. The CHARGER_MODE bit
defaults to a cleared state when the bq20851−V1P2 enters SLEEP mode.
CAPACITY_MODE bit indicates if capacity information is reported in mA/mAh or 10mW/10 mWh. When set, the
bq20851−V1P2 reports capacity information in 10 mW/10 mWh as appropriate. When cleared, the bq20851−V1P2 reports
capacity information in mA/mAh as appropriate. The CAPACITY_MODE bit defaults to a cleared state when the
bq20851−V1P2 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:
The bq20851−V1P2 updates the non-AtRate related register values within 1 s of changing the state of the
CAPACITY_MODE bit. The AtRate( ) values are updated after the next AtRate value is written to the bq20851−V1P2 (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 mad e b y t h e A t R a t e TimeToFull( ), 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.
DWhen the AtRate( ) value is positive, the AtRateTimeToFull( ) function returns the predicted time to full-charge at the
AtRate value of charge.
DWhen the AtRate( ) value is negative, the AtRateTimeToEmpty( ) function returns the predicted operating time at the
AtRate value of discharge.
DWhen 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
CAPACITY_MODE
BIT = 0
UnitsmA10 mW
Charge range1 to 32,767 mA1 to 32,767 10 mW
Discharge range−1 to −32,768 mA−1 to −32,768 10 mW
Granularity1 Unit
AccuracyNA
CAPACITY_MODE
BIT = 1
AtRateTimeToFull( ) (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 bq20851−V1P2 updates AtRateT imeToFull( ) within 5 ms after the SMBus host
sets the AtRate value. The bq20851−V1P2 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
26
www.ti.com
SLUS575 − AUGUST 2003
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 bq20851−V1P2 updates AtRateTimeToEmpty( ) within 5 ms after the SMBus host sets the
AtRate( ) value. The bq20851−V1P2 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 seconds. 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 bq20851−V1P2 updates AtRateOK( ) within 5
ms after the SMBus host sets the AtRate( ) value. The bq20851−V1P2 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 bq20851−V1P2.
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.
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).
27
www.ti.com
SLUS575 − AUGUST 2003
Purpose: The V oltage() 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). The AverageCurrent( ) function returns values equivalent to Current( ) during the
battery’s first minute of operation.
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 bq20851−V1P2 sets MaxError( ) to 100% on a full reset. The bq20851−V1P2 sets MaxError( ) to 2% on
completion of a learning cycle, unless the bq20851−V1P2 limits the learning cycle to the +512/-256 mAh maximum
adjustment values. If the learning cycle is limited, the bq20851−V1P2 sets MaxError( ) to 8% unless MaxError( ) was
already below 8%. In this case MaxError( ) does not change. The bq20851−V1P2 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
28
www.ti.com
SLUS575 − AUGUST 2003
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 RelativeStateOfCharge( ) functions and may be in a
better form for use by power management systems.
SMBus protocol: Read word
Output: Unsigned integer—remaining charge in units of mAh or 10 mWh.
BATTERY MODES
CAPACITY_MODE
BIT = 0
UnitsmAh10 mWh
Range0–65,535mAh0–65,535 10 mWh
GranularitymAh10 mWh
Accuracy−0, +MaxError( ) * FullCharageCapacity( )
CAPACITY_MODE
BIT = 1
29
www.ti.com
SLUS575 − AUGUST 2003
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
UnitsmAh10 mWh
Range0–65,535 mAh0–65,535 10 mWh
GranularitymAh10 mWh
Accuracy−0, +MaxError( ) * FullCharageCapacity( )
RunTimeToEmpty( ) (0x11)
Description: Returns the predicted remaining battery life at the present rate of discharge (minutes). The
RunTimeToEmpty( ) value is calculated based on either current or power depending on the setting of the BatteryMode( )
CAPACITY_MODE bit.
CAPACITY_MODE
BIT = 1
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 one-minute rolling average of the predicted remaining battery life (minutes). The
AverageTimeToEmpty( ) 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.
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 one-minute rolling average of the predicted remaining time until the battery reaches full charge
(minutes).
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.
30
www.ti.com
SLUS575 − AUGUST 2003
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 . The ChargingCurrent( ) value
should be used in combination with the ChargingVoltage( ) value to set the charger’s operating point. Together, these
functions permit the bq20851−V1P2 to dynamically control the charging profile (current/voltage) of the battery. The
bq20851−V1P2 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 bq20851−V1P2 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
ChargingV oltage() value of 65,535.
SMBus protocol: Read word
Output: Unsigned integer—charger output voltage in mV.
Units: mV
Range: 0 to 65,535 mV
Granularity: 1mV
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 bq20851−V1P2 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 bq20851−V1P2. 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
31
www.ti.com
SLUS575 − AUGUST 2003
Output: Unsigned Integer–status register with alarm conditions bit mapped as follows:
OVER_CHARGED_ALARM bit is set whenever the bq20851−V1P2 detects that the battery is being charged beyond the
maximum overcharge limit. This bit is cleared when the bq20851−V1P2 detects that the battery is no longer being charged
and there are 2 mAh of continuous discharge (i.e., the bq20851−V1P2 detects discharge activity or no activity above the
digital filter).
TERMINATE_CHARGE_ALARM bit is set when the bq20851−V1P2 detects that one or more of the battery charging
parameters are out of range (e.g., its voltage, current, or temperature is too high) or when the bq20851−V1P2 detects a
primary charge termination. This bit is cleared when the parameter falls back into the allowable range, the termination
condition ceases, or when the bq20851−V1P2 detects that the battery is no longer being charged.
OVER_TEMP_ALARM bit is set when the bq20851−V1P2 detects that the internal battery temperature is greater than or
equal to the Max Temperature threshold. This bit is cleared when the internal temperature falls back into the acceptable
range.
TERMINATE_DISCHARGE_ALARM bit is set when Voltage( ) ≤Terminate Voltage, 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, Charging Current > 0, and the CVUV bit is cleared.
REMAINING_CAPACITY_ALARM bit is set when the bq20851−V1P2 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 bq20851−V1P2 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 bq20851−V1P2 is has detected a valid loa d of dat a fla sh a t fu ll o r par tia l re set. It i s cl eared
when the bq20851−V1P2 detects an improper data flash load.
32
www.ti.com
SLUS575 − AUGUST 2003
DISCHARGING bit is set when the bq20851−V1P2 determines that the battery is not being charged. This bit is cleared
when the bq20851−V1P2 detects that the battery is being charged.
FULLY_CHARGED bit is set when the bq20851−V1P2 detects a primary charge termination or an Overcharge condition.
It is cleared when RelativeStateOfCharge( ) is less than the programmed Fully Charged Clear % in DF 0x47.
FULLY_DISCHARGED bit is set when Voltage( ) or VCELL is less than the EDV1 threshold and Current( ) < OverloadCurrent or when RelativeStateOfCharge( ) < Battery Low %. This bit is cleared when RelativeStateOfCharge( ) is greater
than or equal to 20%.
Error Codes
ERROR CODESDESCRIPTION
OKThe bq20851−V1P2 processed the function code without detecting any errors.
BusyThe bq20851−V1P2 is unable to process the function code at this time.
ReservedThe bq20851−V1P2 detected an attempt to read or write to a function code reserved by this version of the specifi-
cation. The bq20851−V1P2 detected an attempt to access an unsupported optional manufacturer function code.
UnsupportedThe bq20851−V1P2 does not support this function code which is defined in this version of the specification.
AccessDeniedThe bq20851−V1P2 detected an attempt to write to a read-only function code.
Over/UnderflowThe bq20851−V1P2 detected a data overflow or underflow.
BadSizeThe bq20851−V1P2 detected an attempt to write to a function code with an incorrect data block.
UnknownErrorThe bq20851−V1P2 detected an unidentifiable error.
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 0x37-0x38. The bq20851−V1P2 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 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 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
UnitsmAh10 mWh
Range0–65,535 mAh0–65,535 10 mWh
GranularityNot applicableNot applicable
AccuracyNot applicableNot applicable
CAPACITY_MODE
BIT = 1
33
www.ti.com
SLUS575 − AUGUST 2003
DesignVoltage( ) (0x19)
Description: Returns the theoretical voltage of a new pack (mV). The bq20851−V1P2 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 bq20851−V1P2 VScale (voltage scaling) and IPScale (current scaling) should always be set to zero. The
bq20851−V1P2 sets SpecificationInfo() to the value programmed in Specification Information DF 0x06-0x07.
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:
FIELDBITS USEDFORMATALLOWABLE VALUES
SpecID_L0...34-bit binary value0–15
SpecID_H 4...74-bit binary value0–15
VScale8...114-bit binary value0 (multiplies voltage by 10^ VScale)
IPScale12...154-bit binary value0 (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 bq20851−V1P2 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:
FIELDBITS USEDFORMATALLOWABLE VALUES
Day0...45-bit binary value0–31 (corresponds to date)
Month5...84-bit binary value1–12 (corresponds to month number)
Year9...157-bit binary value0−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 bq20851−V1P2
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.
34
www.ti.com
SLUS575 − AUGUST 2003
SMBus protocol: Read word
Output: Unsigned integer
ManufacturerName( ) (0x20)
Description: The bq20851−V1P2 has an internal prefixed manufacturer name ( ). This value cannot be changed.
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 f o r 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).
DeviceName( ) (0x21)
Description: This function returns a character string that contains the battery name. For example, a DeviceName( ) of
bq20851−V1P2 indicates that the battery is a model bq20851−V1P2. The bq20851−V1P2 sets DeviceName( ) to the value
programmed in Device Name Length 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 bq20851−V1P2 sets
DeviceChemistry( ) to the value programmed in Device Chemistry Length DF 0x22−0x26.
Purpose: The DeviceChemistry( ) function gives cell chemistry information for use by charging systems. The
bq20851−V1P2 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.
Lead acidPbAc
Lithium ionLION
Nickel cadmiumNiCd
Nickel metal hydrideNiMH
Nickel zincNiZn
Rechargeable alkaline-manganeseRAM
Zinc airZnAr
The ManufacturerData( ) (0x23)
Description: This function allows access to the manufacturer data contained in the battery (data). The bq20851−V1P2
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
bq20851−V1P2 under various programming sets. The ManufacturerData() function returns the following information in
order: Pack Configuration, Gauge Configuration, Misc Configuration, Digital Filter, Self Discharge Rate, Pack LoadEstimate, 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 (12 + length byte).
35
www.ti.com
SLUS575 − AUGUST 2003
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 bq20851−V1P2 operation. The pack status register is the least significant byte of the word.
The pack configuration register reflects how the bq20851−V1P2 is configured as defined by the value programmed in PackConfiguration in DF 0x28.
The pack status register consists of the following bits:
b7b6b5b4b3b2b1b0
AFEEDV2SSVDQ
0
AFE
The AFE bit indicates whether the bq29311 RAM integrity check has failed.
The SS bit indicates the seal state of the bq20851−V1P2.
0The bq20851−V1P2 is in the unsealed state.
1The bq20851−V1P2 is in the sealed state.
VDQ
The VDQ bit indicates if the present discharge cycle is valid for an FCC update.
0Discharge cycle not valid
1Discharge cycle valid
SOV
The SOV bit indicates that the safety output limits have been exceeded. Once set, the flag stays set until the bq20851−V1P2
is reset.
0Safety limits not exceeded
1Safety limits exceeded
CVOV
The CVOV bit indicates that a protection limit has been exceeded. It is set on a Prolonged Overcurrent, Overvoltage, or
Overtemperature condition. The bit is not latched and merely reflects the present fault status.
The CVUV bit indicates that a protection limit has been exceeded. It is set on an overload or overdischarge condition. The
bit is not latched and merely reflects the present fault status.
These functions return the calculated individual cell voltages in mV.
36
NAME
LI-ION EXAMPLE
www.ti.com
SLUS575 − AUGUST 2003
DATA FLASH
General
The bq20851−V1P2 accesses the internal data flash during reset and when storing historical data. The data flash stores
basic configuration information for use by the bq20851−V1P2. The data flash must be programmed correctly for proper
bq20851−V1P2 operation.
Memory Map
Table 10 shows the memory map for the data flash. It shows the default programming for the bq20851−V1P2. 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.
NOTE:Reserved locations must be set as shown. Locations marked with a * are typical calibration values that can be adjusted for maximum
accuracy. For these locations the table shows the appropriate default or initial setting.
DATA
MSBLSB
41
(2)
(3)
(4)
www.ti.com
SLUS575 − AUGUST 2003
PROGRAMMING INFORMATION
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 0xbc−0xbf 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 0xba-0xbb 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.
Sense Resistor Gain +
Digital Filter
The desired digital filter threshold, VDF (V), is set by the value stored in Digital Filter DF 0x2b.
Digital Filter +
VDF
290 nV
306.25
Rs
Cell and Pack Characteristics
Battery Pack Capacity and Voltage
Pack capacity in mAh units is stored in Design Capacity, DF 0x31−0x32. In mAh mode, the bq20851−V1P2 copies Design
Capacity to DesignCapacity( ). In mWh mode, the bq20851−V1P2 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 Last Measured Discharge, in mAh, is stored in DF 0x35−0x36. Last Measured Discharge is modified
over the course of pack usage to reflect cell aging under the particular use conditions. The bq20851−V1P2 updates LastMeasured Discharge in mAh after a capacity learning cycle. The bq20851−V1P2 uses the Last Measured Discharge value
to calculate FullChargeCapacity( ) in units of mAh or 10 mWh.
Remaining Time and Capacity Alarms
Remaining Time Alarm in DF 0x00-0x01 and Remaining Capacity Alarm in 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 CapacityAlarm in units of mAh or 10 mWh, depending on the BatteryMode( ) setting.
EDV Thresholds and Near Full Percentage
The bq20851−V1P2 uses three pack-voltage thresholds to provide voltage-based warnings of low battery capacity. The
bq20851−V1P2 uses the values stored in data flash for the 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. EDV1 has a minimum value
as defined in data flash locations 0xf9−0xfa. If EDV compensation is disabled then EDV1 and EDV2 are stored directly in
mV DF 0x86−0x87 and DF 0x88−0x89, respectively. EDV0 is always set to the value programmed in DF 0xf6, 0xf7
regardless of the fixed or compensated EDV selection.
For capacity correction at EDV2, Battery Low % DF 0x2e, 0xe3 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% × 633.56)
The bq20851−V1P2 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 0x2f, 0x30 in mAh.
EDV Discharge Rate and Temperature Compensation
If EDV compensation is enabled, the bq20851−V1P2 calculates battery voltage to determine EDV1 and EDV2 thresholds
as a function of battery capacity, temperature, and discharge load. The general equation for EDV0, EDV1, and EDV2
calculation is:
42
(5)
(6)
(7)
www.ti.com
SLUS575 − AUGUST 2003
EDV1,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 0x84−0x85.
ILOAD is the current discharge load magnitude.
n = the number of series cells
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 0x86−87. C1 is the desired residual battery capacity
remaining at EDV0 (RM = 0). The C1 factor is stored in EDV C1 Factor DF 0x8f.
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 0x88−0x89.
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 0x8c-0x8d.
T0 adjusts the variation of impedance with battery temperature. T0 is programmed in EDV T0 Rate Factor DF 0x8a−0x8b.
TC adjusts the variation of impedance for cold temperatures (T < 23°C). TC is programmed in EDV TC DF 0x8e.
Typical values for the EDV compensation factors, based on overall pack voltages for a Li-lon 3s2p 18650 pack, are
The graphs in Figures 8 and 9 show the calculated EDV0, EDV1, and EDV2 thresholds versus capacity using the typical
compensation values for dif ferent temperatures and loads for a Li-Ion 3s2p 18650 pack. The compensation values vary
widely for different cell types and manufacturers and must be matched exactly to the unique characteristics for optimal
performance.
43
VOLTAGE
(8)
(9)
SLUS575 − AUGUST 2003
www.ti.com
VOLTAGE
vs
CAPACITY
11.5
Battery Low % = 7%
11.0
EDV2
10.5
EDV1
10.0
V − Voltage − V
Load = 500 mA
9.5
9.0
8.5
8.0
7.5
012345678910
Capacity − %
20°C
Figure 8. EDV Calculations vs Capacity for
Various Temperatures
45°C
vs
CAPACITY
11.5
11.0
EDV2
10.5
EDV1
10.0
V − Voltage − V
EDV0
Battery Low % = 7%
TA = 35°C
500 mA
9.5
1 A
9.0
8.5
8.0
7.5
7.0
012345678910
Capacity − %
2 A
Figure 9. EDV Calculations vs Capacity for
Various Loads
Overload Current Threshold
The overload protection disables discharge when the 16-bit limit programmed in DF 0x58−0x59 is breached. The threshold
is stored in mA.
Midrange Capacity Corrections
Three voltage-based thresholds, VOC25 DF 0x78−0x79, VOC50 DF 0x73−0x74, and VOC75 DF 0x6e−0x6f, are used to
test the accuracy of the RM based on open-circuit pack voltages. These thresholds are stored in the data flash in mV. The
values represent the open-circuit battery voltage at which the battery capacity should correspond to the associated state
of charge for each threshold.
Self-Discharge Rate
The nominal self-discharge rate, %PERDAY (% per day), is programmed in an 8-bit value Self-Discharge Rate DF 0x2c
by the following relation:
Self-Discharge Rate +
%PERDAY
0.01
Charge Efficiency
The bq20851−V1P2 applies the efficiency factor, EFF%, to all charge added to the battery. EFF% is encoded in Charge
Efficiency DF 0x51 according to equation 16:
Charge Efficiency + (EFF% • 2.56–1)
Other Compensation
Battery Electronics Load
The amount of internal battery electronics load estimate in µA, BEL, is stored in Electronics Load DF 0x2d as follows:
Electronics Load +
BEL
3
Change Control
Charging Voltage
The 16-bit value, Charging Voltage DF 0x39−0x3a programs the ChargingVoltage( ) value broadcast to a smart charger.
It also sets the base value for determining overvoltage conditions during charging and voltage compliance during a
constant-voltage charging methodology. It is stored in mV.
44
(10)
(11)
www.ti.com
SLUS575 − AUGUST 2003
Over Voltage
The 16-bit value, Over Voltage Margin DF 0x5a−0x5b, sets the limit over ChargingVoltage() i n m V that is to be considered
as an overvoltage charge-suspension condition.
Charging Current
ChargingCurrent() values are either broadcast to a Level 2 smart battery charger or read from the bq20851−V1P2 by a
Level 3 smart battery charger. The bq20851−V1P2 sets the value of ChargingCurrent( ), depending on the charge
requirements and charge conditions of the pack.
When fast charge is allowed, the bq20851−V1P2 sets ChargingCurrent( ) to the ra te p ro gr amm ed in Fast-Charging Current
DF 0x3d−0x3e. Fast-Charging Current is stored in mA.
When fast charge terminates, the bq20851−V1P2 sets ChargingCurrent( ) to zero and then to the Maintenance ChargingCurrent DF 0x3f, 0x40 when the termination condition ceases. The desired maintenance current is stored in mA.
When Voltage( ) is less than EDV0, the bq20851−V1P2 sets ChargingCurrent( ) to Precharge Current DF 0x41, 0x42.
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 0° and the precharge threshold PC (°C), the bq20851−V1P2 sets ChargingCurrent( ) to
PreCharge Current. The threshold is programmed in the Precharge Temp DF 0x43.
Precharge Temp +
The bq20851−V1P2 also sets ChargingCurrent( ) to the precharge rate if Voltage( ) is less than the value programmed in
Precharge Voltage DF 0x3b−0x3c. Precharge Voltage is programmed in mV.
PC (°C)
0.1
Charge Suspension
During charge, the bq20851−V1P2 compares the current to the ChargingCurrent( ) plus the value in OverCurrent Margin
DF 0x5c−0x5d. If the pack is charged at a current above or equal to the ChargingCurrent( ) plus the programmed value,
the bq20851−V1P2 sets ChargingCurrent( ) to zero to stop charging.
The desired Overcurrent Margin is programmed in mA.
The desired temperature threshold for charge suspension, MAXTEMP (°C), is programmed in Max T emperature DF 0x53,
0x54 and is stored as shown:
Max Temperature +
The bq20851−V1P2 clears the maximum temperature condition when Temperature() drops by the amount programmed
in Temperature Hysteresis DF 0x55 from MAXTEMP or when the temperature is less than or equal to 43.0°C. TemperatureHysteresis is stored in °C.
The bq20851−V1P2 suspends fast charge when fast charge continues past full by the amount programmed in MaximumOvercharge DF 0x4e-0x4f. Maximum Overcharge is programmed in mAh.
MAXTEMP
0.1
FULLY_CHARGED Bit Clear Threshold
The bq20851−V1P2 clears the FULLY_CHARGED bit in BatteryStatus( ) when RelativeStateOfCharge( ) reaches the
value, Fully Charged Clear % DF 0x47. Fully Charged Clear % is an 8-bit value and is stored in percent.
Fast Charge Termination Percentage
The bq20851−V1P2 sets RM to a percentage of FCC on charge termination if the CSYNC bit is set in the gauge
configuration register. The percentage of FCC, FCT%, is stored in Fast Charge Termination % in DF 0x46. The value is
stored as shown:
Fast Charge Termination% = (FCT% * 2.56−1)
Cycle Count Initialization
Cycle Count DF 0x0c-0x0d stores the initial value for the CycleCount( ) function. It should be programmed to 0x0000.
45
www.ti.com
SLUS575 − AUGUST 2003
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.
Current Taper Termination Characteristics
Two factors in the data flash set the current taper termination for Li-Ion battery packs. The two locations are Current Taper
Qual V oltage DF 0x4a and Current Taper Threshold DF 0x48−0x49. Current taper termination occurs during charging when
the pack voltage is above or equal to the charging voltage minus the qualification voltage, and the charging current is below
the taper threshold for at least 40 seconds. Current Taper Qual Voltage DF 0x4a is stored in mV and Current TaperThreshold DF 0x48−0x49 in mA.
Cell Balancing
Four constants set the cell balancing parameters. Cell Balance Threshold DF 0xd9−0xda sets the maximum voltage in mV
that each cell must achieve to initiate cell balancing. Cell Balance Window DF 0xd9−0xda sets in mV the amount that the
cell balance threshold can increase. Cell Balance Min DF 0xdb sets in mV the cell differential that must exist to initiate cell
balancing and Cell Balance Interval DF 0xdc sets the cell balancing time interval in seconds. Programming Cell BalanceThreshold to 65,535 disables cell balancing.
The hpe bit enables/disables PEC transmissions to the smart battery host for master mode alarm messages.
0No PEC byte on alarm warning to host
1PEC byte on alarm warning to host
CPE
The CPE bit enables/disables PEC transmissions to the smart battery charger for master mode messages.
0No PEC byte on broadcasts to charger
1PEC byte on broadcasts to charger
SM
The SM bit enables/disables master mode broadcasts by the bq20851−V1P2.
0Broadcasts to host and charger enabled
1Broadcasts 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 bq20851−V1P2 for the number of series cells in the battery pack.
1−1 Configures the bq20851−V1P2 for four series cells
1−0 Configures the bq20851−V1P2 for three series cells
Gauge Configuration
Gauge Configuration DF 0x29 contains bit programmable features:
b7b6b5b4b3b2b1b0
0CSYNCSCCEDVEDVVOVSELVCOROTVC
46
www.ti.com
SLUS575 − AUGUST 2003
CSYNC
In usual operation of the bq20851−V1P2, 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, i t m a y b e
desirable not to adjust the coulomb counter. In these cases the CSYNC bit should be cleared.
0The bq20851−V1P2 does not alter RM at the time of a valid charge termination.
1The bq20851−V1P2 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.
1Learning cycle optimized for independent charger
0Learning cycle optimized for Smart Charger
CEDV
The CEDV bit determines whether the bq20851−V1P2 implements automatic EDV compensation to calculate the EDV1
and EDV2 thresholds base on rate, temperature, and capacity. If the bit is cleared, the bq20851−V1P2 uses the fixed values
programmed in data flash for EDV1 and EDV2. If the bit is set, the bq20851−V1P2 calculates EDV1 and EDV2.
The EDVV bit selects whether EDV termination is to be done with regard to voltage or the lowest single-cell voltage.
0EDV conditions determined on the basis of the lowest single-cell voltage
1EDV conditions determined on the basis of Voltage( )
OVSEL
The OVSEL bit determines if safety over voltage is based on pack or highest cell voltages.
0Safety over voltage based on pack voltage
1Safety over voltage 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 bq20851−V1P2 compares the pack
voltage to RM and may adjust RM according to the values programmed in VOC25, VOC50, and VOC75.
The cell undervoltage (VUV) and overvoltage (VOV) limits are programmed in Cell Under and Cell Over Voltage DF
0x62−0x63, DF 0x60−0x61, respectively. Both values are stored in mV. Cell Over Voltage Reset DF 0xef and Cell UnderVoltage Reset 0xd1−0xd2 set the reset points in mV for these safety parameters.
SAFE Threshold
The safety voltage threshold is programmed in Safety Over Voltage DF 0x68−0x69. It is stored in mV.
If Misc Configuration bit 2 (OVSEL) = 0 then Safety Over V oltage is based on pack voltage, but if OVSEL = 1, then it is based
on highest cell voltage.
47
(12)
(13)
(14)
www.ti.com
SLUS575 − AUGUST 2003
The safety overtemperature (SOT) in °C is programmed in Safety Over Temperature DF 0x6a−0x6b. It is stored as
SafetyOvertemperature +
AFE CONFIGURATION
The AFE protection limits are programmed as specified in the bq29311 data sheet.
AFE Brnout/Shutdn 0xb1 sets the brownout and shutdown voltage levels
AFE Over Curr Dsg DF 0xb2 sets the overcurrent threshold on discharge.
AFE Over Curr Chg DF 0xb3 sets the overcurrent threshold on charge.
AFE Over Curr Delay DF 0xb4 sets the delay timing for over current in the charge and discharge direction.
AFE Short Circ Thresh DF 0xb6 sets the short circuit threshold.
AFE Short Circuit Delay DF 0xb7 sets the short circuit delay time.
AFE INTEGRITY CHECK
AFE Check Time DF 0xe4 sets the period in seconds for the AFE integrity check.
The AFE Fail Limit (DF 0xd3,d4) is the number of AFE integrity check failures that occur before the AFE flag is set.
SOT
0.1
SLEEP MODE
The sleep current threshold, SLP (mA), is stored in Sleep Current Thresh DF 0xe5 as:
Sleep Current Thresh +
The wake-up period for current measurement, WAT(s), is set in Sleep Current Time DF 0xe6 as:
Sleep Current Time +
Miscellaneous Configuration
Misc Configuration DF 0x2a contains additional bit programmable features.
b7b6b5b4b3b2b1b0
ITNC_SMBACDSOTECLEDPHGVOD
IT
The IT bit configures the bq20851−V1P2 to use its internal temperature sensor.
0bq20851−V1P2 requires an external thermistor.
1bq20851−V1P2 uses its internal temperature sensor.
NC_SMB
The NC_SMB bit enables an extended bus high time-out which is not compliant with the SMBusspecifications.
0Normal bus high timeout
1Extended bus high timeout
SLP(mA)
0.5
WAT(s)
0.5
AC
The AC bit enables the SAFE output to function based on the AFE integrity check.
0SAFE is not activated based on the AFE integrity check.
1SAFE
48
activated based on the AFE integrity check.
www.ti.com
SLUS575 − AUGUST 2003
DS
The DS bit programs the bq20851−V1P2 to enter sleep mode on SMBus inactivity.
0bq20851−V1P2 enters sleep mode when the SMBus is low for 2 s.
1bq20851−V1P2 does not enter sleep mode.
OT
The OT bit programs the bq20851−V1P2 to turn off the discharge FET when the bq20851−V1P2 detects an
overtemperature condition. Charge FET is always turned off in overtemperature conditions.
0bq20851−V1P2 does not turn off the discharge FET on overtemperature.
1bq20851−V1P2 turns off the discharge FET on overtemperature.
ECLED
The ECLED bit programs the LED activity during charging (DSG bit = 0).
0The LEDs are not enabled during charging.
1The LEDs are enabled during charging.
PHG
The PHG bit configures the bq20851−V1P2 to control a precharge FET.
0The bq20851−V1P2 does not control a precharge FET.
1The bq20851−V1P2 may turn on or off a precharge FET according to the programmed precharge conditions.
VOD
The VOD bit enables a 1-second time delay on the charge and discharge FET control.
0No delay
11-second delay
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. However, this data is always ignored as manufacturer name is internally fixed.
Device Name Data
Device Name Length DF 0x1a data is always ignored as manufacturer name is always fixed. 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.
49
www.ti.com
SLUS575 − AUGUST 2003
APPLICATION INFORMATION
The internal oscillator performance also depends on the tolerance of the 113-kΩ resistor connected between RSOC (pin
33) and VSSA (pin 34). It is recommended that this resistor be placed as close to the bq20851−V1P2 as possible and that
it have a specification of ±0.1% tolerance and ±50 ppm temperature drift or better. The layout of the PCBA is also an
additional contributing factor to 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).
Figure 10 shows a typical bq20851−V1P2-based battery pack application. The circuit consists of the bq29311 analog front
end (AFE) IC, LED display , 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 bq20851−V1P2 operation. Table 10 shows the data flash memory map and outlines the
programmable functions available in the bq20851−V1P2.
50
www.ti.com
SLUS575 − AUGUST 2003
APPLICATION INFORMATION
20
18
19
24
TOUT
VREG
21
CHG
VPACK
22
PCHG
DSG
23
VBAT10CNTL3VC14VC25VC36VC47VC5
VCC
2
1
14
SCLK
LEDOUT
12
16
17
15
CLKIN
VCELL
SDATA
XALERT
GND
GND
SR2
SR1
11
13
9
8
Figure 10. Typical bq20851−V1P2 Implementation
51
MECHANICAL DATA
MPDS019D – FEBRUARY 1996 – REVISED FEBRUARY 2002
DBT (R-PDSO-G**) PLASTIC SMALL-OUTLINE PACKAGE
30 PINS SHOWN
0,50
30
1
1,20 MAX
A
DIM
PINS **
0,27
0,17
16
15
0,15
0,05
20
0,08
6,60
4,50
4,30
6,20
Seating Plane
24
M
0,10
28
30
0,15 NOM
0°–ā8°
38
Gage Plane
44
0,25
0,75
0,50
50
A MAX
A MIN
NOTES: A. All linear dimensions are in millimeters.
B. This drawing is subject to change without notice.
C. Body dimensions do not include mold flash or protrusion.
D. Falls within JEDEC MO-153
5,10
4.90
6,60
6,40
7,90
7,70
7,90
7,70
9,8011,10
12,60
12,409,6010,90
4073252/E 02/02
POST OFFICE BOX 655303 • DALLAS, TEXAS 75265
1
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. T o 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:
ProductsApplications
Amplifiersamplifier.ti.comAudiowww.ti.com/audio
Data Convertersdataconverter.ti.comAutomotivewww.ti.com/automotive
DSPdsp.ti.comBroadbandwww.ti.com/broadband
Interfaceinterface.ti.comDigital Controlwww.ti.com/digitalcontrol
Logiclogic.ti.comMilitarywww.ti.com/military
Power Mgmtpower.ti.comOptical Networkingwww.ti.com/opticalnetwork
Microcontrollersmicrocontroller.ti.comSecuritywww.ti.com/security
Telephonywww.ti.com/telephony
Video & Imagingwww.ti.com/video
Wirelesswww.ti.com/wireless
Mailing Address:Texas Instruments
Post Office Box 655303 Dallas, Texas 75265
Copyright 2003, Texas Instruments Incorporated
Loading...
+ hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.