SLUUCO5A december   2022  – august 2023 BQ34Z100-R2

 

  1.   1
  2.   Read This First
    1.     About This Manual
    2.     Notational Conventions
    3.     Glossary
    4.     Trademarks
  3. Introduction
  4. Data Commands
    1. 2.1 Standard Data Commands
      1. 2.1.1  Control(): 0x00/0x01
        1. 2.1.1.1  CONTROL_STATUS: 0x0000
        2. 2.1.1.2  DEVICE TYPE: 0x0001
        3. 2.1.1.3  FW_VERSION: 0x0002
        4. 2.1.1.4  HW_VERSION: 0x0003
        5. 2.1.1.5  RESET_DATA: 0x0005
        6. 2.1.1.6  PREV_MACWRITE: 0x0007
        7. 2.1.1.7  CHEM ID: 0x0008
        8. 2.1.1.8  BOARD_OFFSET: 0x0009
        9. 2.1.1.9  CC_OFFSET: 0x000A
        10. 2.1.1.10 CC_OFFSET_SAVE: 0x000B
        11. 2.1.1.11 DF_VERSION: 0x000C
        12. 2.1.1.12 SET_FULLSLEEP: 0x0010
        13. 2.1.1.13 STATIC_CHEM_DF_CHKSUM: 0x0017
        14. 2.1.1.14 SEALED: 0x0020
        15. 2.1.1.15 IT ENABLE: 0x0021
        16. 2.1.1.16 CAL_ENABLE: 0x002D
        17. 2.1.1.17 RESET: 0x0041
        18. 2.1.1.18 EXIT_CAL: 0x0080
        19. 2.1.1.19 ENTER_CAL: 0x0081
        20. 2.1.1.20 OFFSET_CAL: 0x0082
      2. 2.1.2  StateOfCharge(): 0x02
      3. 2.1.3  MaxError(): 0x03
      4. 2.1.4  RemainingCapacity(): 0x04/0x05
      5. 2.1.5  FullChargeCapacity(): 0x06/07
      6. 2.1.6  Voltage(): 0x08/0x09
      7. 2.1.7  AverageCurrent(): 0x0A/0x0B
      8. 2.1.8  Temperature(): 0x0C/0x0D
      9. 2.1.9  Flags(): 0x0E/0x0F
      10. 2.1.10 FlagsB(): 0x12/0x13
      11. 2.1.11 Current(): 0x10/0x11
    2. 2.2 Extended Data Commands
      1. 2.2.1  AverageTimeToEmpty(): 0x18/0x19
      2. 2.2.2  AverageTimeToFull(): 0x1A/0x1B
      3. 2.2.3  PassedCharge(): 0x1C/0x1D
      4. 2.2.4  DOD0Time(): 0x1E/0x1F
      5. 2.2.5  VoltScale(): 0x20
      6. 2.2.6  CurrScale(): 0x21
      7. 2.2.7  EnegyScale(): 0x22
      8. 2.2.8  AvailableEnergy(): 0x24/0x25
      9. 2.2.9  AveragePower(): 0x26/0x27
      10. 2.2.10 SerialNumber(): 0x28/0x29
      11. 2.2.11 InternalTemperature(): 0x2A/0x2B
      12. 2.2.12 CycleCount(): 0x2C/0x2D
      13. 2.2.13 StateOfHealth(): 0x2E/0x2F
      14. 2.2.14 ChargeVoltage(): 0x30/0x31
      15. 2.2.15 ChargeCurrent(): 0x32/0x33
      16. 2.2.16 PackConfiguration(): 0x3A/0x3B
      17. 2.2.17 DesignCapacity(): 0x3C/0x3D
      18. 2.2.18 DataFlashClass(): 0x3E
      19. 2.2.19 DataFlashBlock(): 0x3F
      20. 2.2.20 AuthenticateData/BlockData(): 0x40…0x53
      21. 2.2.21 AuthenticateChecksum/BlockData(): 0x54
      22. 2.2.22 BlockData(): 0x55…0x5F
      23. 2.2.23 BlockDataChecksum(): 0x60
      24. 2.2.24 BlockDataControl(): 0x61
      25. 2.2.25 GridNumber(): 0x62
      26. 2.2.26 LearnedStatus(): 0x63
      27. 2.2.27 Dod@Eoc(): 0x64/0x65
      28. 2.2.28 QStart(): 0x66/0x67
      29. 2.2.29 TrueRC(): 0x68/0x69
      30. 2.2.30 TrueFCC(): 0x6A/0x6B
      31. 2.2.31 StateTime(): 0x6C/0x6D
      32. 2.2.32 QmaxPassedQ(): 0x6E/0x6F
      33. 2.2.33 DOD0(): 0x70/0x71
      34. 2.2.34 QmaxDod0(): 0x72/0x73
      35. 2.2.35 QmaxTime(): 0x74/0x75
      36. 2.2.36 Data Flash Interface
        1. 2.2.36.1 Accessing Data Flash
        2. 2.2.36.2 Manufacturer Information Block
        3. 2.2.36.3 Access Modes
        4. 2.2.36.4 Sealing/Unsealing Data Flash Access
  5. Fuel Gauging
    1. 3.1  Overview
    2. 3.2  Impedance Track Variables
      1. 3.2.1  Load Mode
      2. 3.2.2  Load Select
      3. 3.2.3  Reserve Cap-mAh
      4. 3.2.4  Reserve Cap-mWh/cWh
      5. 3.2.5  Energy Scale
      6. 3.2.6  Dsg Current Threshold
      7. 3.2.7  Chg Current Threshold
      8. 3.2.8  Quit Current, Dsg Relax Time, Chg Relax Time, and Quit Relax Time
      9. 3.2.9  Qmax
      10. 3.2.10 Update Status
      11. 3.2.11 Avg I Last Run
      12. 3.2.12 Avg P Last Run
      13. 3.2.13 Cell Delta Voltage
      14. 3.2.14 Ra Tables
      15. 3.2.15 StateOfCharge() Smoothing
      16. 3.2.16 Charge Efficiency
      17. 3.2.17 Lifetime Data Logging
    3. 3.3  Device Configuration
      1. 3.3.1 Pack Configuration Register
      2. 3.3.2 Pack Configuration B Register
      3. 3.3.3 Pack Configuration C Register
    4. 3.4  Voltage Measurement and Calibration
      1. 3.4.1 1S Example
      2. 3.4.2 7S Example
      3. 3.4.3 Autocalibration
    5. 3.5  Temperature Measurement
    6. 3.6  Overtemperature Indication
      1. 3.6.1 Overtemperature: Charge
      2. 3.6.2 Overtemperature: Discharge
    7. 3.7  Charging and Charge Termination Indication
    8. 3.8  The Scale Factors
    9. 3.9  LED Display
    10. 3.10 Alert Signal
    11. 3.11 Fast Resistance Scaling
      1. 3.11.1 Calculation of Resistance Scale
      2. 3.11.2 Negative Resistance Scale
      3. 3.11.3 Reset of Resistance Scale
      4. 3.11.4 Fast Resistance Scaling Configuration
  6. Communications
    1. 4.1 Authentication
    2. 4.2 Key Programming
    3. 4.3 Executing an Authentication Query
    4. 4.4 HDQ Single-Pin Serial Interface
    5. 4.5 I2C Interface
    6. 4.6 Switching Between I2C and HDQ Modes
      1. 4.6.1 Converting to HDQ Mode
      2. 4.6.2 Converting to I2C Mode
  7. Device Functional Modes
    1. 5.1 NORMAL Mode
    2. 5.2 SLEEP Mode
    3. 5.3 FULL SLEEP Mode
  8. Power Control
    1. 6.1 Reset Functions
    2. 6.2 Wake-Up Comparator
    3. 6.3 Flash Updates
  9. Data Flash Summary
  10. Gas Gauge Timing Considerations
    1. 8.1 Gauging Effects on I2C Transactions
    2. 8.2 HDQ Bus Effects on Gauging
    3. 8.3 Gauging Effects on HDQ Transactions
    4. 8.4 Manufacturer Timing Notes
  11. HDQ Communication Basics
    1. 9.1 Basic HDQ Protocol
    2. 9.2 Break
    3. 9.3 Basic Timing
    4. 9.4 Reading 16-Bit Words
    5. 9.5 Host Processor Interrupts Using Discrete I/O Port for HDQ
    6. 9.6 Using UART Interface to HDQ
  12. 10Procedures to Seal and Unseal the Gauge
    1. 10.1 Unseal the Gauge to UNSEALED Mode
    2. 10.2 Unseal the Gauge to FULL ACCESS Mode
    3. 10.3 Seal the Gauge
  13. 11Impedance Track Gauge Configuration
    1. 11.1 Introduction
    2. 11.2 Determining ChemID
    3. 11.3 Learning Cycle
    4. 11.4 Common Problems Seen During the Learning Cycle
    5. 11.5 Test Gauge and Optimize
    6. 11.6 Finalize Golden File
    7. 11.7 Program and Test the PCB
  14. 12Revision History

About This Manual

This manual discusses the modules and peripherals of the BQ34Z100-R2 device, and how each is used to build a complete battery pack gas gauge and protection solution. For electrical specifications, see the BQ34Z100-R2 Wide Range Fuel Gauge with Impedance Track™ Technology Data Sheet. For application information, see the data sheet as well as the application reports, BQ34Z100-G1 High Cell Count and High Capacity Applications (SLUA760) and Using I2C Communications With the BQ34110, BQ35100, and BQ34Z100-G1 Series of Gas Gauges (SLUA790).

Table 1-1 Features in the BQ34Z100-R2 Device
Features Description
Add Voltage Scale factor.

  1. Added description in 2.1.6 For the battery voltage greater than 65535mV, a scale factor is needed to multiply with the value read from the Voltage() Comman, This scale factor can be acquired by command VoltScale().
  2. Add VoltScale() command in Table 2-8.
  3. Added section 2.2.5 for description.
  4. Modified description in section 3.4 .

    ....

    For the Multi-cell applications with voltages maximum voltage higher than 65535mV, The Volt Scale in dataflash can be set to a value greater than 1 so that the set value in dataflash can be returned by the command VoltScale() and be used to multiply the value read from Voltage() for the host MCU to get the actual battery voltage which could be greater than 65535mV

    ....

    The calibration routine adjusts the value to force the reported voltage in Voltage() to equal the actual applied voltage divided by VoltScale().

  5. Section 3.8 are modified to describe this feature.
  6. Add Volt Scale in dataflash in Table 7-1 for Class Configuration, Subclass Data.

Add Current Scale factor.

  1. Added description in 2.1.4 .

    If the value read from command CurrScale() is greater than 1, then the actual remaining capacity equals to RemainingCapacity()*CurrScale().

  2. Added description in 2.1.5 .

    If the value read from command CurrScale() is greater than 1, then the actual full charge capacity equals to FullChargeCapacity()*CurrScale().

  3. Added description in 2.1.7 .

    If the command CurrScale() is greater than 1, then the value read from this command shall be multiplied with CurrScale() to get the actual average current.

  4. Added description in 2.1.11 .

    If the command CurrScale() is greater than 1, then the value read from this command shall be multiplied with CurrScale() to get the actual current.

  5. Added section 2.2.6 for description.
  6. Added descirption in section 2.2.32 real passed capacity divided by CurrScale() since the last Qmax DOD update.
  7. Modified description in section 3.1

    ...

    The initial Qmax value is taken from a cell manufacturers' data sheet multiplied by the number of parallel cells and then divided by CurrScale(). The parallel value and the value returned by CurrScale() are also used for the value programmed in Design Capacity. The BQ34Z100-R2 acquires and updates the battery-impedance profile during normal battery usage. It uses this profile, along with SOC and the Qmax value, to determine FullChargeCapacity() and StateOfCharge() specifically for the present load and temperature. FullChargeCapacity() *CurrScale() is reported as capacity available from a fully charged battery under the present load and temperature until Voltage() reaches the Terminate Voltage.

    ...

  8. Section 3.8 are modified to describe this feature.
  9. Add Curr Scale in dataflash in Table 7-1 for Class Configuration, Subclass Data.

Add Energy Scale factor.

  1. Added section 2.2.7 for description.
  2. Added description in 2.2.8 for description If the command EnergyScale() returns a value greater than 1, then the actual avaialble energy equals AvailableEnergy()*EnergyScale().
  3. Added description in 2.2.9 If the command EnergyScale() returs a value greater than 1, then the actual value of average power equals to AveragePower()*EnergyScale().
  4. Added description in 2.2.17 If the CurrScale() returns a value greater than 1, then the actual design capacity shall be the product of CurrScale() and this command pair.
  5. Section 3.2.5 modified for the description of Energy Scale.
  6. Section 3.8 are modified to describe this feature.
  7. Add Energy Scale in dataflash in Table 7-1 for Class Configuration, Subclass Data.

Add REST bit to indicate the battery is in Relax mode.

  1. Added bit definition in 2.1.9 In Table 2-6, Low Byte Bit 7 is changed to REST bit from original OCVTAKEN, added description of REST bit.
  2. Table 3-11 are modified Low Byte Bit 7 as well as the following bit descriptioin are changed to REST.

RemainingTimeToEmpty support constant power mode.

  1. Added description in 2.2.1 Using RemainigCapacity() divided by AverageCurrent() when Load Mode=0, Using AvailableEnergy() divided by AveragePower() when Load Mode=1).

Charge Termination and Qmax update Support for PbA battery.

  1. Modified bit definition in Table 3-6 Low Byte bit 4 and bit 5 as well as the following bit descritption are changed.
  2. Dataflash Items in Table 7-1 in Class configuration and subclass Charge Termination for NiMH chemistries are changed to support both NiMH and PbA Chemistries.

Optimize smoothing algorithm for negative TrueRem.

  1. Modified bit definition in Table 3-7 Bit 4 as well as the following bit description are changed.

Add descriptions on the conditions for the CCA to set.

  1. The conditions for Periodic calibration and Dynamic Offset calibration.
  2. The dynamic calibration condition described in section 5.2 has been changed as following: Once the Current() is lower than Sleep Current, the device performs an calibration to minimize the cc offset.

VCT detection for CCCV charging profile in present TRM does not align with test result.

  1. Condition b in Current Taper method in Section 3.7 is changed as following: Old: During the same periods, the accumulated change in capacity > 0.25 mAh /Taper Current Window AND New: During the same periods, the accumulated change in capacity >Min Taper Window /Taper Current Window AND
  2. Different charge termination methods are specified for its supported chemsitries respectively.
  3. Table 7-1, below dataflash item changed: Old: Configuration|Charge Termination|36|2|I2|Min Taper Capacity|0|1000|25|mAh| New: Configuration|Charge Termination|36|2|I2|Min Taper Capacity|0|1000|25|mAh/256|

Bus Low Time and I2C timeout.

  1. Below statement in section 4.5 are changed: old: The I2C engine releases both SDA and SCL if the I2C bus is held low for Bus Low Time new: The I2C engine releases both SDA and SCL if the I2C bus is held low for 2 seconds

Add limit to max deltaV to limit the supperaddition to the Terminate Voltage used to estimate the RemainingCapacity in simulation.

  1. Add Max DeltV Limit in Class Gas Gauging, Subclass IT Cfg in Table 7-1.
  2. Add DeltaV Filter in Class Gas Gauging, Subclass IT Cfg in Table 7-1.

Add delay to set 0RM when measured voltage is lower than Terminate Voltage.

  1. Add TD Delay in Class Gas Gauging, Subclass IT Cfg in Table 7-1.

Update AvailableEnergy()
  1. Update in Extended Commands Table at column unit description change from 10 mW/h to cWh.
  2. Add description in AvailableEnergy()
Update AveragePower()
  1. Update in Extended Commands Table at column unit description change from 10 mW to cW
  2. Add description in AveragePower()
Fuel Gauging Overview
  1. Add Data Flash Parameters tableData Flash Parameter
Add new section in Fuel Gauging
  1. Fast Resistance Scaling
  2. Calculation of Resistance Scale
  3. Negative Resistance Scale
  4. Reset of Resistance Scale
  5. Fast Resistance Scaling Configuration
Design Voltage
  1. Add Design Voltage in dataflash in Table 7-1 for Class Configuration, Subclass Data.
Pack Configuration
  1. Update Pack Configuration in dataflash in Table 7-1 for Class Configuration, Subclass Registers, Default change to 41D9.