SLUUC54C
February 2020 – March 2024
BQ27Z558
,
BQ27Z561
,
BQ27Z561-R2
1
1
Preface
1.1
Read this First
1.2
Notational Conventions
1.3
Trademarks
Introduction
2
Basic Measurement System
2.1
Introduction
2.2
Current and Coulomb Counting
2.3
Voltage
2.4
Temperature
2.4.1
Internal Temperature
2.4.2
Cell Temperature
2.4.3
Temperature Configuration
3
Power Modes
3.1
Introduction
3.2
NORMAL Mode
3.3
SLEEP Mode
3.3.1
Device Sleep
3.4
DEEP SLEEP Mode
3.5
HIBERNATE Mode
3.6
Power Modes Configuration
4
Gauging
4.1
Impedance Track (IT) Model
4.2
Thermal Model
4.3
Gauging Capacities
4.4
Learning Cycles
4.5
Impedance Track Configuration
4.6
Gas Gauge Modes
4.7
QMax and Ra
4.7.1
QMax Initial Values
4.7.2
QMax Update Conditions
4.7.2.1
Base Required Conditions
4.7.2.2
Tracking QMax Updates
4.7.2.3
Relaxed Cell OCV
4.7.2.4
OCV Prediction
4.7.2.5
Cycle Count Based QMax Degradation
4.7.2.6
38
4.7.2.7
Fast QMax Update Conditions
4.7.2.8
QMax and Fast QMax Update Boundary Check
4.7.3
Ra Table Initial Values
4.7.3.1
R_a0 Table
4.7.3.2
R_a0x Table
4.7.4
Ra Table Update Conditions
4.7.5
Fast Resistance Scaling
4.7.5.1
Calculation of Resistance Scale
4.7.5.2
Negative Resistance Scale
4.7.5.3
Reset of Resistance Scale
4.7.5.4
Application of Resistance Scale
4.7.5.5
Fast Resistance Scaling Configuration
4.8
FullChargeCapacity (FCC), RemainingCapacity (RemCap), and RelativeStateOfCharge (RSOC)
4.8.1
Smoothing Engine
4.8.1.1
Smoothing to 0% in DISCHARGE Mode
4.8.1.2
Smoothing to 100% in CHARGE Mode
4.8.1.3
Smoothing in RELAX Mode
4.9
Impedance Track (IT) Configuration Options
4.10
State-Of-Health (SOH)
4.11
TURBO Mode 3.0
4.12
Battery Trip Point (BTP)
5
Lifetime Data Collection
5.1
Description
5.2
Reset
6
Host Interrupts
6.1
Description
6.2
Voltage and Temperature Interrupts
6.3
RSOC Interrupts
6.4
Host Interrupts Configuration
7
Programmable Pulse Width
7.1
Description
7.2
Programmable Pulse Width Configuration
8
Device Security
8.1
Description
8.2
SHA-256 Authentication
8.2.1
Secure Key
8.2.2
Authentication Flow
8.3
Security Modes
8.3.1
SEALING and UNSEALING Data Flash
8.3.2
SEALED to UNSEALED
8.3.3
UNSEALED to FULL ACCESS
9
Advanced Charge Algorithm
9.1
Introduction
9.2
Charge Temperature Ranges
9.3
Voltage Range
9.3.1
RelativeStateofCharge() Range
9.4
Charging Current
9.5
Charging Voltage
9.5.1
Charge Voltage Compensation for System Impedance
9.6
Charging Degradation Modes
9.7
Cell Swelling Control (via Charging Voltage Degradation)
9.8
Valid Charge Termination
9.9
Charge and Discharge Alarms
9.10
Terminate Charge and Discharge Alarms
9.11
Precharge
9.12
Maintenance Charge
9.13
Charge Inhibit
10
Communications
10.1
HDQ Single-Pin Serial Interface
10.2
I2C Interface
10.2.1
I2C Clock Frequency
10.2.2
I2C Time Out
10.2.3
I2C Command Waiting Time
10.2.4
I2C Clock Stretching
11
Manufacture Production
11.1
Manufacture Testing
11.1.1
Manufacturing Status Configuration
11.2
I2C Configuration
11.3
Manufacturer Information Blocks
11.4
Verification of Data Flash
11.5
Calibration
Calibration
12.1
Cell (BAT) Voltage Calibration
12.1.1
Voltage Calibration Data Flash
12.2
Current Calibration
12.2.1
CC Gain/Capacity Gain Calibration
12.2.2
Deadbands
12.2.2.1
Current Deadband
12.2.2.2
Coulomb Counter Deadband
12.2.3
Current Calibration Data Flash
12.3
Temperature Calibration
12.3.1
Internal Temperature Sensor Calibration
12.3.2
TS Calibration
12.3.3
Temperature Calibration Data Flash
12.3.4
Cell Temp Model
12.3.5
Internal Temp Model
12
Data Commands
12.1
Standard Data Commands
12.1.1
0x00/01 ManufacturerAccess()/ControlStatus()
12.1.2
0x02/03 AtRate()
12.1.3
0x04/05 AtRateTimeToEmpty()
12.1.4
0x06/07 Temperature()
12.1.5
0x08/09 Voltage()
12.1.6
0x0A/0B BatteryStatus()
12.1.7
0x0C/0D Current()
12.1.8
0x10/11 RemainingCapacity()
12.1.9
0x12/13 FullChargeCapacity()
12.1.10
0x14/15 AverageCurrent()
12.1.11
0x16/17 AverageTimeToEmpty()
12.1.12
0x18/19 AverageTimeToFull()
12.1.13
0x1E/1F MaxLoadCurrent()
12.1.14
0x20/21 MaxLoadTimeToEmpty()
12.1.15
0x22/23 AveragePower()
12.1.16
0x28/29 InternalTemperature()
12.1.17
0x2A/2B CycleCount()
12.1.18
0x2C/2D RelativeStateOfCharge()—RSOC
12.1.19
0x2E/2F StateOfHealth()
12.1.20
0x30/31 ChargingVoltage()
12.1.21
0x32/33 ChargingCurrent()
12.1.22
0x34/35 TerminateVoltage()
12.1.23
0x36/0x37/0x38/0x39 Timestamp()
12.1.24
QMax Cycles() 0x3A/3B
12.1.25
0x3C/3D DesignCapacity()
12.1.26
0x3E/3F AltManufacturerAccess()
12.1.27
0x40/0x5F MACData()
12.1.28
0x60 MACDataChecksum()
12.1.29
0x61 MACDataLength()
12.1.30
0x62/63 VoltHiSetThreshold
12.1.31
0x64/65 VoltHiClearThreshold
12.1.32
0x66/67 VoltLoSetThreshold
12.1.33
0x68/69 VoltLoClearThreshold
12.1.34
0x6A TempHiSetThreshold
12.1.35
0x6B TempHiClearThreshold
12.1.36
0X6C TempLoSetThreshold
12.1.37
0x6D TempLoClearThreshold
12.1.38
0x6E InterruptStatus()
12.1.39
0x6F SOCSetDeltaThreshold
12.2
0x70, 0x71 SusTurboPwr()
12.3
0x72, 0x73 MaxTurboPwr()
12.4
0x74, 0x75 SusTurboCurr()
12.5
0x76, 0x77 MaxTurboCurr()
12.6
0x78, 0x79 TurboSysR()
12.7
0x7A, 0x7B TurboEdv()
12.8
0x00, 0x01 ManufacturerAccess() and 0x3E, 0x3F AltManufacturerAccess()
12.8.1
AltManufacturerAccess() 0x0001 Device Type
12.8.2
AltManufacturerAccess() 0x0002 Firmware Version
12.8.3
AltManufacturerAccess() 0x0003 Hardware Version
12.8.4
AltManufacturerAccess() 0x0004 Instruction Flash Signature
12.8.5
AltManufacturerAccess() 0x0005 Static DF Signature
12.8.6
AltManufacturerAccess() 0x0006 Chemical ID
12.8.7
AltManufacturerAccess() 0x0007 Pre_MACWrite
12.8.8
AltManufacturerAccess() 0x0008 Static Chem DF Signature
12.8.9
AltManufacturerAccess() 0x0009 All DF Signature
12.8.10
AltManufacturerAccess() 0x0012 Device Reset
12.8.11
AltManufacturerAccess() 0x0017 QMax Day
12.8.12
AltManufacturerAccess() 0x0021 Gauging
12.8.13
AltManufacturerAccess() 0x0023 Lifetime Data Collection
12.8.14
AltManufacturerAccess() 0x0028 Lifetime Data Reset
12.8.15
AltManufacturerAccess() 0x002D CALIBRATION Mode
12.8.16
ManufacturerAccess() 0x002E Lifetime Data Flush
12.8.17
ManufacturerAccess() 0x002F Lifetime Data SPEED UP Mode
12.8.18
AltManufacturerAccess() 0x0030 Seal Device
12.8.19
AltManufacturerAccess() 0x0035 Security Keys
12.8.20
AltManufacturerAccess() 0x0037 Authentication Key
12.8.21
AltManufacturerAccess() 0x0041 Device Reset
12.8.22
AltManufacturerAccess() 0x0044 Set Deep Sleep
12.8.23
AltManufacturerAccess() 0x0045 Clear Deep Sleep
12.8.24
AltManufacturerAccess() 0x0046 Pulse GPIO
12.8.25
AltManufacturerAccess() 0x0047 Tambient Sync
12.8.26
AltManufacturerAccess() 0x0047 Clear GPIO
12.8.27
AltManufacturerAccess() 0x0047 Set GPIO
12.8.28
AltManufacturerAccess() 0x004A Device Name
12.8.29
AltManufacturerAccess() 0x004B Device Chem
12.8.30
AltManufacturerAccess() 0x004C Manufacturer Name
12.8.31
AltManufacturerAccess() 0x004D Manufacture Date
12.8.32
AltManufacturerAccess() 0x004E Serial Number
12.8.33
AltManufacturerAccess() 0x0054 OperationStatus
12.8.33.1
Operation Status A
12.8.33.2
Operation Status B
12.8.34
AltManufacturerAccess() 0x0055 ChargingStatus
12.8.34.1
Temp Range
12.8.34.2
Charging Status
12.8.35
AltManufacturerAccess() 0x0056 GaugingStatus
12.8.36
AltManufacturerAccess() 0x0057 ManufacturingStatus
12.8.37
AltManufacturerAccess() 0x0060 Lifetime Data Block 1
12.8.38
AltManufacturerAccess() 0x0062 Lifetime Data Block 3
12.8.39
ManufacturerAccess() 0x0063 Lifetime Data Block 4
12.8.40
ManufacturerAccess() 0x0065-0x006B Lifetime SOC Range Table Data Blocks
12.8.41
AltManufacturerAccess() 0x0070 ManufacturerInfo
12.8.42
AltManufacturerAccess() 0x0071 DAStatus1
12.8.43
AltManufacturerAccess() 0x0072 DAStatus2
12.8.44
AltManufacturerAccess() 0x0073 ITStatus1
12.8.45
AltManufacturerAccess() 0x0074 ITStatus2
12.8.46
AltManufacturerAccess() 0x0075 ITStatus3
12.8.47
AltManufacturerAccess() 0x0077 FCC_SOH
12.8.48
AltManufacturerAccess() 0x0078 Filtered Capacity
12.8.49
AltManufacturerAccess() 0x007A ManufacturerInfoB
12.8.50
AltManufacturerAccess() 0x007B ManufacturerInfoC
12.8.51
ManufacturerAccess() 0x00B0 ChargingVoltageOverride
12.8.52
AltManufacturerAccess() 0x0F00 ROM Mode
12.8.53
Data Flash Access() 0x4000–0x5FFF
12.8.54
AltManufacturerAccess() 0x7C40 Switch to HDQ
12.8.55
AltManufacturerAccess() 0xF080 Exit Calibration Output Mode
12.8.56
AltManufacturerAccess() 0xF081 Output CC and ADC for Calibration
13
Data Flash Access and Format
13.1
Data Flash Access
13.1.1
Minimum Voltage
13.2
Data Formats
13.2.1
Unsigned Integer
13.2.2
Integer
13.2.3
Floating Point
13.2.4
Hex
13.2.5
String
14
Data Flash Summary
14.1
Data Flash Table
15
Revision History
12.1
Cell (BAT) Voltage Calibration
Figure 12-1
Cell Voltage Calibration
Apply known voltage in mV to the cell voltage inputs:
V
CELL1
between BAT terminal and VSS terminal
If
ManufacturingStatus()[CAL_EN]
= 0, send 0x002D to
AltManufacturerAccess()
to enable the
[CAL_EN]
flag.
Send 0xF081 to
AltManufacturerAccess()
to enable raw cell voltage output on
MACData()
.
Poll
MACData()
until the 8-bit counter value increments by 2 before reading data.
Read the ADC conversion readings of cell voltages from
MACData()
:
ADC
CELL1
= BBbb of
MACData()
Average several readings for higher accuracy. Poll
MACData()
until ZZ increments, to indicate that updated values are available:
ADC
CELL1
= [ADC
CELL1
(reading n) + ...+ ADC
CELL1
(reading 1)]/n
Calculate gain value:
Write the new
Cell Gain
value to data flash.
Recheck the voltage reading and if it is not accurate, repeat Steps 5 and 6.
Send 0x002D to
AltManufacturerAccess()
to clear the
[CAL_EN]
flag if all calibration is complete.