This manual discusses the modules and peripherals of the bq78350-R1 device, and how each is used to
build a complete battery pack gas gauge and protection solution.
Notational Conventions
The following notational conventions are used if SBS commands and data flash values are mentioned
within a text block:
•SBS commands: italics with parentheses and no breaking spaces; for example, RemainingCapacity().
•Data flash: italics, bold, and breaking spaces; for example, Design Capacity.
•Register bits and flags: italics and brackets; for example, [TDA] Data
•Flash bits: italics and bold; for example, [LED1]
•Modes and states: ALL CAPITALS; for example, UNSEALED
The reference format for SBS commands is: SBS:Command Name(Command No.): Manufacturer
Access(MA No.)[Flag], for example:
SBS:Voltage(0x09), or SBS:ManufacturerAccess(0x00): Seal Device(0x0020)
Read This First
SLUUBD3D–September 2015–Revised September 2018
Preface
Trademarks
All trademarks are the property of their respective owners.
The bq78350-R1 device provides a feature-rich battery management solution for 3-series cell to 15-series
cell battery pack applications. The device has extended capabilities, including:
•Companion Protection Controller to the bq76920, bq76930, and bq76940 AFE Devices for Li-Ion or
LiFePO4 Battery Packs
•Compensated End-of-Discharge Voltage (CEDV) Gas Gauging Algorithm Accurately Measures
Available Charge and State-of-Health
•Voltage Based Cell Balancing Control
•Normal and Lower Power Modes
– NORMAL
– SLEEP
– SHUTDOWN
•Full Array of Programmable Protection Features
– Voltage
– Current
– Temperature
– Charge Timeout
– CHG/DSG FETs
•Precharge and Fast Charge Algorithm
•Diagnostic Lifetime Data Monitor
•Black Box Event Recorder
•Supports Two-Wire SMBus v1.1 Interface
•SHA-1 Authentication
•Package: 30-Lead TSSOP
The bq78350-R1 is intended to be used with the bq769x0 Battery Monitor with a 2.5-V REGOUT
configuration and I2C Address 0x08. However, the bq78350-R1 can use a bq769x0 with or without the
communications CRC enabled (the bq78350-R1 automatically detects if CRC is enabled).
NOTE: For this section, refer to the bq769x0 3-Series to 15-Series Cell Battery Monitor Family for Li-
Ion and Phosphate Applications Data Manual (SLUSBK2) for further details.
The bq78350-R1 reads the bq769x0 companion AFE registers that contain recent values from the
integrating analog-to-digital converter (ADC) for current measurement, and a second delta-sigma ADC for
individual cell and temperature measurements. The bq78350-R1 also has the capability to measure the
battery voltage through an externally translated voltage.
2.2Current and Coulomb Counting
The integrating delta-sigma ADC in the companion bq769x0 AFE measures the charge/discharge flow of
the battery by measuring the voltage drop across a small-value sense resistor between the SRP and SRN
pins. The 15-bit integrating ADC measures bipolar signals from –0.20 V to 0.20 V with 15-µV resolution.
The AFE reports charge activity when VSR = V
V
– V
(SRP)
digital signal from the AFE over time using an internal counter.
To support large battery configurations, the current data can be scaled to ensure accurate reporting
through the SMBus. The data reported is scaled based on the setting of the SpecificationInfo() command.
The data reported through the Current() can also have a deadband applied to it. This removes any noise
or offset that has not been calibrated out from being reported as real current. This value is programmed in
Deadband with a default configured for mA scaling in SpecificationInfo(). If the SpecificationInfo()
IPSCALE is set to 10 mA or 100 mA, then it is strongly recommended to set Deadband to 1.
is negative. The bq78350-R1 continuously monitors the measured current and integrates the
(SRN)
Chapter 2
SLUUBD3D–September 2015–Revised September 2018
Basic Measurement System
(SRP)
– V
is positive, and discharge activity when VSR =
(SRN)
2.3Voltage
The bq78350-R1 updates the individual series cell voltages through the bq769x0 at 250-ms intervals. The
bq78350-R1 configures the bq769x0 to connect to the selected cells in sequence and uses this
information for cell balancing and individual cell fault functions. The internal 14-bit ADC of the bq769x0
measures each cell voltage value, which is then communicated digitally to the bq78350-R1 where it is
scaled and translated into unit millivolts. The maximum supported input range of the ADC is 6.075 V.
The bq78350-R1 also separately measures the average cell voltage through an external translation circuit
at the BAT pin. This value is specifically used for the gas gauge algorithm. The external translation circuit
is controlled via the VEN pin so that the translation circuit is only enabled when required to reduce overall
power consumption. VEN requires an external pullup to VCC, typically 100 k, to operate correctly.
In addition to the voltage measurements used by the bq78350-R1 algorithms, there is an optional auxiliary
voltage measurement capability via the VAUX pin. This feature measures the input on a 250-ms update
rate and provides the programmable scaled value through the VAUXVoltage() SMBus command. The data
can be enabled to influence selected fault recovery features. See General Protections Configuration,
[VAUXR], for further details.
The VEN pin will go high 2 ms prior to the BAT being measured if DA Configuration [ExtAveEN] = 1,
and then return low unless DA Configuration [VAUXEN] = 1, which will cause VEN to remain high for a
further 2 ms prior to making the VAUX measurement. This results in VEN possibly being high for up to
40 ms per second in NORMAL mode.
To support large battery configurations where the battery voltage can exceed 32767 mV, the data should
be scaled as the gauge's internal data processing is done in a signed integer range (–32768 to 32767) to
ensure accurate reporting through the SMBus. The data reported is scaled based on the setting of the
SpecificationInfo() command. The cell voltages are not scaled.
2.4Temperature
The bq78350-R1 receives temperature information from external or internal temperature sensors in the
bq769x0 AFE. Depending on the number of series cells supported, the AFE will provide one, two, or three
external thermistor measurements. The value of temperature is reported through Temperature() and can
be configured in DA Configuration.
2.4.1 FET Temperature Measurement
The bq78350-R1 can be configured to report FET temperature, which can be available through
DAStatus2(). If multiple temperature sensors are selected for FET temperature, then either the average or
highest is used based on the setting of [FTEMP] in [DA Configuration].
The selection of temperature sensor as cell temperature protection or FET temperature protection can be
made through the Temperature Mode register.
2.4.2 Temperature Enable
This register enables/disables the available temperature sensor options.
www.ti.com
ClassSubclassNameFormat
SettingsConfiguration
Bit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0
Low ByteRSVDRSVDRSVDRSVDSOURCETS3TS2TS1
Temperature
Enable
hex10x000xFF0x09—
Size in
Bytes
MinMaxDefaultUnit
RSVD (Bits 7–4): Reserved
SOURCE (Bit 3): Configure the use of Internal or External temperature sensors for all AFE ports
0 = Use internal temperature sensor(s)
1 = Use external temperature sensor(s)
TS3 (Bit 2): Enable/disable companion AFE temperature sensor TS3, if available
0 = Disable TS3 temperature sensor
1 = Enable TS3 temperature sensor
TS2 (Bit 1): Enable/disable companion AFE temperature sensor TS2, if available
0 = Disable TS2 temperature sensor
1 = Enable TS2 temperature sensor
TS1 (Bit 0): Enable/disable companion AFE temperature sensor TS1
0 = Disable TS1 temperature sensor
1 = Enable TS1 temperature sensor
2.4.3 Temperature Mode Configuration
Each available external temperature sensor can be configured to be used for the cell temperature or FET
temperature features.
RSVD (Bits 7–3): Reserved
TSMode3 (Bit 2): Select TS3 sensor for Cell or FET Temperature Protection
0 = Use for Cell (default)
1 = Use for FETTemperature()
TSMode2 (Bit 1): Select TS2 sensor for Cell or FET Temperature Protection
0 = Use for Cell (default)
1 = Use for FETTemperature()
TSMode1 (Bit 0): Select TS1 sensor for Cell or FET Temperature Protection
0 = Use for Cell (default)
1 = Use for FETTemperature()
2.5Temperature Ranges
The measured temperature is segmented into several temperature ranges. The bq78350-R1 uses these
as indication, and, for Lifetime Data Logging, the time spent in each range. The temperature ranges set in
data flash should adhere to the following format:
T1 ≤ T2 ≤ T3 ≤ T4
2.6Basic Configuration Options
2.6.1 DA Configuration
SLUUBD3D–September 2015–Revised September 2018
Submit Documentation Feedback
Figure 2-2. Data Flash Temperature Range Format
See the Temperature Ranges data flash subclass for details on the specific data flash variables.
There are a variety of options available in the bq78350-R1 and the companion AFE that influence the
startup conditions, system configuration, and the data measurement system.
This register is used to configure the setup of various measurement features of the bq78350-R1.
0 = The bq78350-R1 configures the PRECHG as active low (default).
1 = The bq78350-R1 configures the PRECHG as active high, requiring an external pullup.
SLEEPCHG: CHG FET is enabled during SLEEP.
0 = CHG FET off during SLEEP (default).
1 = CHG FET remains on during SLEEP.
CHGFET: FET action on valid charge termination
0 = FET active
1 = Charging and Precharging disabled, FET off (default)
CHGIN: FET action in CHARGE INHIBIT mode
0 = FET active (default)
1 = Charging and Precharging disabled, FETs off
CHGSU: FET action in CHARGE SUSPEND mode
0 = FET active (default)
1 = Charging and Precharging disabled, FETs off
OTFET: FET action in OVERTEMPERATURE mode
0 = No FET action for overtemperature condition (default)
1 = CHG and DSG FETs will be turned off for overtemperature conditions.
KEY_EN: Enables the bq78350-R1 to use the KEYIN pin function
0 = The bq78350-R1 never uses KEYIN (default).
1 = The bq78350-R1 KEYIN is used to control the DSG FET.
PCHG_EN: Enables the bq78350-R1 to use the PRECHG pin during PRECHARGE mode
0 = The bq78350-R1 never uses PRECHG.
1 = The bq78350-R1 controls PRECHG under normal charge control algorithm (default).
2.6.3 AFE Cell Map
This register maps the cells connected to the companion AFE so that the bq78350-R1 knows cells are
present at the indicated VCx channel.
ClassSubclassNameFormat
ConfigurationAFE
High ByteRSVDVC15VC14VC13VC12VC11VC10VC9
Low ByteVC8VC7VC6VC5VC4VC3VC2VC1
RSVD (Bit 7): Reserved
VCx: Cell connected to this node
1 = A cell is connected to this node and valid measurements are expected.
0 = A cell is NOT connected to this node.
The bq78350-R1 supports a wide range of battery and system protection features that are easily
configured or enabled via the integrated data flash. All of the protection items can be enabled or disabled
under Settings:Enable Protections A, Settings:Enable Protections B, and Settings:EnableProtections C.
If the CHG FET is off and the gauge detects discharge current ≥ Dsg Current Threshold, then the CHG
FET is turned on to protect CHG FET body diode. The CHG FET is turned back off once discharge current
is removed. If the DSG FET is off and the gauge detects charge current ≥ Chg Current Threshold, then
the DSG FET is turned on to protect the DSG FET body diode. The DSG FET is turned back off once
charge current is removed. Body diode protection is always active.
3.1.1 General Protections Configuration
Chapter 3
SLUUBD3D–September 2015–Revised September 2018
Protections
ClassSubclassNameFormat
SettingsProtection
76543210
RSVDRSVDCC_DSG_OFF DC_CHG_OFFLPENVAUXR
Protection
Configuration
Hex10x000xFF0x00—
Size in
Bytes
MinMaxDefaultUnit
CUV_RECOV_
CHG
RSVD (Bits 7–6): Reserved
CC_DSG_OFF (Bit 5): Turns DSG FET OFF in current-based charge faults
0 = Disabled (default)
1 = Enabled
DC_CHG_OFF (Bit 4): Turns CHG FET OFF in current-based discharge faults
0 = Disabled (default)
1 = Enabled
LPEN (Bit 3): Protection recovery uses the LOAD_PRESENT flag in the AFE to determine discharge
fault recovery. LOAD_PRESENT should only be used in a low-side protection FET configuration.
0 = Disabled (default)
1 = Enabled
VAUXR (Bit 2): Protection recovery uses the VAUX input as charger present detection.
0 = Disabled (default)
1 = Enabled
CUV_RECOV_CHG (Bit 1): Requires charge to recover SafetyStatus()[CUV]
The bq78350-R1 offers the option to recover current-based protection by detecting the PRES pin transition
from high to low; for example, the pack is removed and re-inserted into the system.
To enable the replacement recovery, the appropriate bit in Enable Removable Recovery A and EnableRemovable Recovery B should be set. When the bit is set, then the high to low transition of PRES
becomes the only recovery method.
www.ti.com
Table 3-1. Enabled Removal Recovery A
ClassSubclassNameFormat
SettingsProtection
76543210
ASCDLASCDAOLDLAOLDOCDOCCRSVDRSVD
Enable
Removable
Recovery A
Hex10x000xff0x00—
Size in
Bytes
MinMaxDefaultUnit
ASCDL (Bit 7): ASCDL Protection Removal recovery
0 = Standard recovery only enabled (default)
1 = Removal recovery only enabled
ASCD (Bit 6): ASCD Protection Removal recovery
0 = Standard recovery only enabled (default)
1 = Removal recovery only enabled
AOLDL (Bit 5): AOLDL Protection Removal recovery
0 = Standard recovery only enabled (default)
1 = Removal recovery only enabled
AOLD (Bit 4): AOLD Protection Removal recovery
0 = Standard recovery only enabled (default)
1 = Removal recovery only enabled
OCD (Bit 3): Precharging Timeout
0 = Standard recovery only enabled (default)
1 = Removal recovery only enabled
OCC (Bit 2): OCC Protection Removal recovery
0 = Standard recovery only enabled (default)
1 = Removal recovery only enabled
ClassSubclassNameFormatSize in BytesMinMaxDefaultUnit
SettingsProtection
76543210
RSVDOCDLRSVDRSVDRSVDRSVDRSVDRSVD
Enable
Removable
Recovery B
Hex10x000xff0x00—
RSVD (Bit 7): Reserved. Do not use.
OCDL (Bit 6): OCDL Protection Removal recovery
0 = Standard recovery only enabled (default)
1 = Removal recovery only enabled
RSVD (Bits 5–0): Reserved. Do not use.
3.1.4 FET Action Options for Current Protections
The bq78350-R1 offers the option to turn off the CHG FET during an overcurrent in discharge (OCD),
overcurrent in discharge latch (OCDL), overload (AOLD), overload latch (AOLDL) or short circuit in
discharge (ASCD), short circuit in discharge latch (ASCDL) faults, or the DSG FET in overcurrent in
charge (OCC) faults.
The CHG FET will turn off for the OCD, OCDL, AOLD, AOLDL, ASCD, and ASCDL faults when
[DC_CHG_OFF] in Protection Configuration is set.
The DSG FET will turn off for the OCC faults when [CC_DSG_OFF] in Protection Configuration is set.
Introduction
3.2Cell Undervoltage Protection
The device can detect undervoltage in batteries and protect cells from damage by preventing further
discharge.
Upon CUV detection, a snapshot of the measured cell voltages are made available in CUVSnapshot().
This snapshot is available until the next instance of a CUV fault, as this causes the data to be updated to
the latest set of measurements.
StatusConditionAction
NormalAll Cell voltages in CellVoltage1..15() > CUV:Threshold
Alert
Trip
Recovery
Any Cell voltages in CellVoltage1..15() ≤
CUV:Threshold
Any Cell voltages in CellVoltage1..15() ≤CUV:Threshold for CUV:Delay duration
SafetyStatus()[CUV] = 1 AND
All Cell voltages in CellVoltage1..15() ≥ CUV:Recovery
AND
Protection Configuration[CUV_RECOV_CHG] = 0 OR
[CUV_RECOV_CHG] = 1
AND Charging detected (that is, BatteryStatus[DSG] = 0)
The device can detect cell overvoltage in batteries and protect cells from damage by preventing further
charging.
Upon COV detection, a snapshot of the measured cell voltages are made available in COVSnapshot().
This snapshot is available until the next instance of a COV fault, as this causes the data to be updated to
the latest set of measurements.
StatusConditionAction
NormalAll voltages in CellVoltage1..15() < COV:ThresholdSafetyAlert()[COV] = 0
AlertAny voltage in CellVoltage1..15() ≥ COV:Threshold
Trip
Recovery
Recovery
Any voltage in CellVoltage1..15() ≥ COV:Threshold
continuous ≥ COV:Threshold for COV:Delay duration
SafetyStatus()[COV] = 1 AND Protection
Configuration:VAUXR = 0
all voltages in CellVoltage1..15() ≤ COV:Recovery
SafetyStatus()[COV] = 1 AND Protection
Configuration:VAUXR = 1
all voltages in CellVoltage1..15() ≤ COV:Recovery AND
VAUXVoltage() < Power:Charger Present Threshold
The device has overcurrent in charge protection that can be configured to specific current and delay
thresholds to accommodate charging behaviors. See Section 3.1.4 for additional FET action options.
The device has two independent overcurrent in discharge protections that can be set to different current
and delay thresholds to accommodate different load behaviors. See Section 3.1.4 for additional FET
action options.
StatusConditionAction
NormalCurrent() > OCD:ThresholdSafetyAlert()[OCDL] = 0, if OCDL counter = 0
AlertOCDL counter > 0
Trip
LatchOCDL counter ≥ OCD:Latch Limit
Recovery
Recovery
Latch ResetSafetyStatus()[OCDL] = 1 for OCD: Reset Time
Current() continuous ≤ OCD:Threshold for
OCD:Delay duration
[SafetyStatus()[OCD] = 1 AND Protection
Configuration:VAUXR = 0Current() continuous ≥ OCD:Recovery Threshold
for OCD:Recovery Delay time
[SafetyStatus()[OCD] = 1 AND Protection
Configuration:VAUXR = 1
Current() continuous ≥ OCD:Recovery Threshold
for OCD:Recovery Delay time OR VAUXVoltage()
≥ Power:Charger Present Threshold
Overcurrent in Discharge Protection
Overcurrent in Charge trip
threshold
Overcurrent in Charge trip
delay
Overcurrent in Charge
recovery threshold
Overcurrent in Charge
recovery delay
SafetyAlert()[OCDL] = 1, Decrement OCDL counter by
one after each OCD:Counter Dec Delay period
The bq78350-R1 device has two main hardware-based protections, AOLD and ASCD, with adjustable
current and delay time. Setting ASCD Threshold and Delay [RSNS] doubles the threshold value. It is
located in bit 8 of the ASCD Threshold Delay register. The Threshold settings are in mV; therefore, the
actual current that triggers the protection is based on the R
For details on how to configure the AFE hardware protection, refer to the tables in the companion data
manual, bq769x0 3-Series to 15-Series Cell Battery Monitor Family for Li-Ion and Phosphate Applications
(SLUSBK2).
All of the hardware-based protections provide a short term Trip/Alert/Recovery protection to account for a
current spike as well as a Trip/Alert/Latch protection for persistent faulty condition. The latch feature also
stops the FETs from toggling on and off continuously, preventing damage to the FETs.
In general, when a fault is detected after the Delay time, the DSG FET will be disabled. However, if
Protection Configuration [LPEN] is set, then both FETs are turned off (Trip stage), and an internal fault
counter will be incremented (Alert stage). As the DSG FET is turned off, the current will drop to 0 mA.
After Recovery time, the CHG and DSG FETs will be turned on again (Recovery stage) unless additional
recovery conditions are enabled.
If the alert is caused by a current spike, the fault count will be decremented after Counter Dec Delay
time. If this is a persistent faulty condition, the device will enter the Trip stage after Delay time, and repeat
the Trip/Alert/Recovery cycle. The internal fault counter is incremented every time the device goes through
the Trip/Alert/Recovery cycle. Once the internal fault counter hits the Latch Limit, the protection enters a
Latch stage and the fault will only be cleared through the Latch Reset condition. If Latch Limit is set to 0, it
will latch after the first detection.
The Trip/Alert/Recovery/Latch stages are documented in each of the following hardware-based protection
sections.
used in the schematic design.
SENSE
www.ti.com
3.6.1 Overload in Discharge Protection
The device has a hardware-based overload in discharge protection with adjustable current and delay. See
Section 3.1.4 for additional FET action options.
StatusConditionAction
Normal
AlertAOLDL counter > 0
Trip
LatchAOLDL counter ≥ AOLD:Latch Limit
Recovery
Latch Reset
Current() > (AOLD Threshold and
Delay[3:0]/R
Current() continuous ≤ (AOLD Threshold
and Delay[3:0]/R
and Delay[6:4] duration
SafetyStatus()[AOLD] = 1 for
AOLD:Recovery time OR
If Protection Configuration [LPEN] = 1
AND AFEStatus()[LOAD_PRESENT]= 0
This register is representative of the bq769x0 PROTECT 2 register.
Hardware-Based Protection
ClassSubclassNameTypeMinMaxDefaultUnit
ProtectionsAOLDThreshold and DelayH10x000xFF0x00—
ProtectionsAOLDLatch LimitU102550counts
ProtectionsAOLDCounter Dec DelayU1025510s
ProtectionsAOLDRecoveryU102555s
ProtectionsAOLDResetU1025515s
ClassSubclassNameFormat
SettingsAOLD
76543210
RSVDOCD_D2OCD_D1OCD_D0OCD_T3OCD_T2OCD_T1OCD_T0
Threshold and
Delay
Hex10x000xFF0x00—
Size in
Bytes
MinMaxDefaultUnit
RSVD (Bit 7): Reserved. Do not use.
OCD_D2:0 (Bits 6–4): OCD Thresholds Delay Time
000 = 8 ms
001 = 20 ms
010 = 40 ms
011 = 80 ms
100 = 160 ms
101 = 320 ms
110 = 640 ms
111 = 1280 ms
The device has a hardware-based short circuit in discharge protection with adjustable current and delay.
See Section 3.1.4 for additional FET action options.
StatusConditionAction
Normal
AlertASCDL counter > 0
Trip
LatchASCD counter ≥ ASCD:Latch Limit
Recovery
Latch Reset
Current() > (ASCD Threshold and
Delay[2:0]/R
Current() continuous ≤ (ASCD Threshold
and Delay[2:0]/R
and Delay[7:4] duration
SafetyStatus()[ASCD] = 1 for
ASCD:Recovery time
OR
If Protection Configuration [LPEN] = 1
AND AFEStatus()[LOAD_PRESENT] = 0
DSG FET returns to normal if SafetyStatus()[ASCD] = 0.
26
ClassSubclassNameTypeMinMaxDefaultUnit
ProtectionsASCDThreshold and DelayH10x000xFF0x00—
ProtectionsASCDLatch LimitU102550counts
ProtectionsASCDCounter Dec DelayU1025510s
ProtectionsASCDRecoveryU102555s
ProtectionsASCDResetU1025515s
This register is representative of the bq769x0 PROTECT 1 register.
The device can detect an external override signal sent to the companion bq769x0 AFE that can cause
permanent failure of the battery. This new option provides a temporary fault detection that acts on the
FETs. The permanent failure option is not affected by this change.
AFESysStat() [OVRD_ALERT] = 1 for AFE
External Override Delay duration
AFESysStat() [OVRD_ALERT] = 0 for AFE
External Override Recovery duration
3.7Temperature Protections
The device provides overtemperature and undertemperature protections based on cell temperature
measurements. The cell temperature based protections are further divided into a protection-in-charging
direction and discharging directions. This section describes in detail each of the protection functions.
For temperature reporting, the device supports a maximum of either three external thermistors or three
internal temperature sensors. The selection of Internal or External temperature sensors is set by
Settings:Temperature Enable[SOURCE]. Unused temperature sensors should be disabled by clearing
the corresponding flag in Settings:Temperature Enable[TS3][TS2][TS1].
The Temperature() command returns the cell temperature measurement. The MAC and extended
command DAStatus2() also returns the temperature measurement from the enabled temperature sensors
and the cell temperature.
The cell temperature based overtemperature and undertemperature safety provide protections in charge
and discharge conditions. The battery pack is considered in CHARGE mode when Battery[DSG] = 0,
where Current() > Chg Current Threshold. The overtemperature and undertemperature in charging
protections are active in this mode. The Battery[DSG] is set to 1 in a NON-CHARGE mode condition,
which includes RELAX and DISCHARGE modes. The overtemperature and undertemperature in
discharge protections are active in these two modes.