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

Voltage Measurement and Calibration

The device is shipped with a factory configuration for the default case of the 1-series Li-ion cell. This can be changed by setting the VOLTSEL bit in the Pack Configuration register and by setting the number of series cells in the data flash configuration section.

Multi-cell applications, with voltages up to 65535 mV, may be gauged by using the appropriate input scaling resistors such that the maximum battery voltage, under all conditions, appears at the BAT input as approximately 900 mV. The actual gain function is determined by a calibration process and the resulting voltage calibration factor is stored in the data flash location Voltage Divider.

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

For single-cell applications, an external divider network is not required. Inside the IC, behind the BAT pin is a nominal 5:1 voltage divider with 88 KΩ in the top leg and 22 KΩ in the bottom leg. This internal divider network is enabled by clearing the VOLTSEL bit in the Pack Configuration register. This ratio is optimum for directly measuring a single Li-Ion cell where charge voltage is limited to 4.5 V.

For higher voltage applications, an external resistor divider network should be implemented as per the reference designs in this document. The quality of the divider resistors is very important to avoid gauging errors over time and temperature. It is recommended to use 0.1% resistors with 25-ppm temperature coefficient. Alternately, a matched network could be used that tracks its dividing ratio with temperature and age due to the similar geometry of each element. Calculation of the series resistor can be made per the equation below.

Note:

Exceeding Vin max mV results in a measurement with degraded linearity.

The bottom leg of the divider resistor should be in the range of 15 KΩ to 25 K, using 16.5 KΩ:

Rseries = 16500 Ω (Vin max mV – 900 mV)/900 mV

For all applications, the Voltage Divider value in data flash will be used by the firmware to calibrate the divider ratio. The calibration routine adjusts the value to force the reported voltage in Voltage() to equal the actual applied voltage divided by VoltScale().