SLUUCD5 January   2023 BQ27427

 

  1.   Read This First
    1. 1.1 Notational conventions used in this document:
    2. 1.2 Trademarks
    3. 1.3 Glossary
  2. 1General Description
  3. 2Functional Description
    1. 2.1 Fuel Gauging
    2. 2.2 Temperature Measurement
    3. 2.3 Current Measurement
    4. 2.4 Operating Modes
      1. 2.4.1 SHUTDOWN Mode
      2. 2.4.2 POR and INITIALIZATION Modes
      3. 2.4.3 CONFIG UPDATE Mode
      4. 2.4.4 NORMAL Mode
      5. 2.4.5 SLEEP Mode
    5. 2.5 Pin Descriptions
      1. 2.5.1 GPOUT Pin
      2. 2.5.2 Battery Detection (BIN)
  4. 3Communications
    1. 3.1 I2C Interface
    2. 3.2 I2C Time Out
    3. 3.3 I2C Command Waiting Time
    4. 3.4 I2C Clock Stretching
  5. 4Application Examples
    1. 4.1 Data Memory Parameter Update Example
    2. 4.2 Chemistry Profile Change Example
  6. 5Standard Commands
    1. 5.1  Control(): 0x00 and 0x01
      1. 5.1.1  CONTROL_STATUS: 0x0000
      2. 5.1.2  DEVICE_TYPE: 0x0001
      3. 5.1.3  FW_VERSION: 0x0002
      4. 5.1.4  DM_CODE: 0x0004
      5. 5.1.5  PREV_MACWRITE: 0x0007
      6. 5.1.6  CHEM_ID: 0x0008
      7. 5.1.7  BAT_INSERT: 0x000C
      8. 5.1.8  BAT_REMOVE: 0x000D
      9. 5.1.9  SET_CFGUPDATE: 0x0013
      10. 5.1.10 SMOOTH_SYNC: 0x0019
      11. 5.1.11 SHUTDOWN_ENABLE: 0x001B
      12. 5.1.12 SHUTDOWN: 0x001C
      13. 5.1.13 SEALED: 0x0020
      14. 5.1.14 PULSE_SOC_INT: 0x0023
      15. 5.1.15 CHEM_A:/B/C 0x0030/0x0031/0x0032
      16. 5.1.16 RESET: 0x0041
      17. 5.1.17 SOFT_RESET: 0x0042
    2. 5.2  Temperature(): 0x02 and 0x03
    3. 5.3  Voltage(): 0x04 and 0x05
    4. 5.4  Flags(): 0x06 and 0x07
    5. 5.5  NominalAvailableCapacity(): 0x08 and 0x09
    6. 5.6  FullAvailableCapacity(): 0x0A and 0x0B
    7. 5.7  RemainingCapacity(): 0x0C and 0x0D
    8. 5.8  FullChargeCapacity(): 0x0E and 0x0F
    9. 5.9  AverageCurrent(): 0x10 and 0x11
    10. 5.10 AveragePower(): 0x18 and 0x19
    11. 5.11 StateOfCharge(): 0x1C and 0x1D
    12. 5.12 InternalTemperature(): 0x1E and 0x1F
    13. 5.13 RemainingCapacityUnfiltered(): 0x28 and 0x29
    14. 5.14 RemainingCapacityFiltered(): 0x2A and 0x2B
    15. 5.15 FullChargeCapacityUnfiltered(): 0x2C and 0x2D
    16. 5.16 FullChargeCapacityFiltered(): 0x2E and 0x2F
    17. 5.17 StateOfChargeUnfiltered(): 0x30 and 0x31
  7. 6Extended Data Commands
    1. 6.1 DataClass(): 0x3E
    2. 6.2 DataBlock(): 0x3F
    3. 6.3 BlockData(): 0x40 Through 0x5F
    4. 6.4 BlockDataChecksum(): 0x60
    5. 6.5 BlockDataControl(): 0x61
    6. 6.6 Reserved—0x62 Through 0x7F
  8. 7Data Memory
    1. 7.1 Data Memory Interface
      1. 7.1.1 Accessing the Data Memory
      2. 7.1.2 Access Modes
      3. 7.1.3 SEALING and UNSEALING Data Memory Access
    2. 7.2 Data Types Summary
    3. 7.3 Data Flash Summary
    4. 7.4 Data Memory Parameter Descriptions
      1. 7.4.1 Configuration Class
        1. 7.4.1.1 Safety Subclass
          1. 7.4.1.1.1 Over-Temperature Threshold, Under-Temperature Threshold, Temperature Hysteresis
        2. 7.4.1.2 Charge Termination Subclass
          1. 7.4.1.2.1 Terminate Charge Alarm Set %, Terminate Charge Alarm Clear %
          2. 7.4.1.2.2 Full Charge Set %, Full Charge Clear %
          3. 7.4.1.2.3 DOD at EOC Delta Temperature
        3. 7.4.1.3 Discharge Subclass
          1. 7.4.1.3.1 State-of-Charge 1 Set Threshold, State-of-Charge 1 Clear Threshold
          2. 7.4.1.3.2 State-of-Charge Final Set Threshold, State-of-Charge Final Clear Threshold
        4. 7.4.1.4 Registers
          1. 7.4.1.4.1 Operation Configuration (OpConfig) Register
          2. 7.4.1.4.2 Operation Configuration B (OpConfigB) Register
          3. 7.4.1.4.3 Operation Configuration C (OpConfigC) Register
          4. 7.4.1.4.4 Operation Configuration D (OpConfigD) Register
      2. 7.4.2 Gas (Fuel) Gauging Class
        1. 7.4.2.1 IT Cfg Subclass
          1. 7.4.2.1.1  OCV Wait Time
          2. 7.4.2.1.2  Ra Filter
          3. 7.4.2.1.3  Resistance Update Voltage Drop
          4. 7.4.2.1.4  Samples to Wake
          5. 7.4.2.1.5  Qmax Max Time
          6. 7.4.2.1.6  Fast Qmax Start DOD%, Fast Qmax Start Voltage Delta, Fast Qmax Current Threshold
          7. 7.4.2.1.7  Fast Qmax End DOD%, Fast Qmax Minimum Data Points
          8. 7.4.2.1.8  Maximum Qmax Change
          9. 7.4.2.1.9  Qmax Maximum Delta %
          10. 7.4.2.1.10 Maximum % Default Qmax
          11. 7.4.2.1.11 Qmax Filter
          12. 7.4.2.1.12 Simulation ResRelax Time (ResRelax Time)
          13. 7.4.2.1.13 User-Defined Rate-Current
          14. 7.4.2.1.14 User-Defined Rate-Power
          15. 7.4.2.1.15 Maximum Simulation Rate, Minimum Simulation Rate
          16. 7.4.2.1.16 Ra Max Delta
          17. 7.4.2.1.17 Minimum Delta Voltage, Maximum Delta Voltage
          18. 7.4.2.1.18 DeltaV Maximum Delta Voltage
          19. 7.4.2.1.19 Terminate Voltage Valid Time
          20. 7.4.2.1.20 Trace Resistance
          21. 7.4.2.1.21 Downstream Resistance
          22. 7.4.2.1.22 Predict Ambient Time
          23. 7.4.2.1.23 Design Energy Scale
          24. 7.4.2.1.24 Fast Scale Load Select
          25. 7.4.2.1.25 Chg DOD Correction Start SOC
          26. 7.4.2.1.26 Chg DOD Correction Taper Ratio
        2. 7.4.2.2 Current Thresholds Subclass
          1. 7.4.2.2.1 Discharge and Charge Detection Threshold, Quit Current and Relax Time, Discharge and Charge Relax Time
          2. 7.4.2.2.2 Max IR Correct
        3. 7.4.2.3 State Subclass
          1. 7.4.2.3.1  Qmax Cell 0
          2. 7.4.2.3.2  Update Status
          3. 7.4.2.3.3  Reserve Capacity (mAh)
          4. 7.4.2.3.4  Load Select, Load Mode
          5. 7.4.2.3.5  Design Capacity, Design Energy, Default Design Capacity
          6. 7.4.2.3.6  Terminate Voltage
          7. 7.4.2.3.7  Thermal Rise Factor (T Rise)
          8. 7.4.2.3.8  Thermal Time Constant (T Time Constant)
          9. 7.4.2.3.9  SOC Interrupt Delta
          10. 7.4.2.3.10 Taper Rate, Taper Voltage
          11. 7.4.2.3.11 Sleep Current
          12. 7.4.2.3.12 Voltage at Charge Termination
          13. 7.4.2.3.13 Average Current Last Run
          14. 7.4.2.3.14 Average Power Last Run
          15. 7.4.2.3.15 Delta Voltage
      3. 7.4.3 Ra Table Class
        1. 7.4.3.1 R_a RAM Subclass
      4. 7.4.4 Chemistry Class
        1. 7.4.4.1 Chem Data Subclass
          1. 7.4.4.1.1 Q Invalid Max V and Q Invalid Min V
          2. 7.4.4.1.2 V at Chg Term
          3. 7.4.4.1.3 Taper Voltage
      5. 7.4.5 Calibration Class
        1. 7.4.5.1 Data Subclass
          1. 7.4.5.1.1 Board Offset
          2. 7.4.5.1.2 Internal Temperature Offset and External Temperature Offset
          3. 7.4.5.1.3 Pack Voltage Offset
          4. 7.4.5.1.4 Ext a Coef and Ext b Coef
        2. 7.4.5.2 CC Cal Subclass
          1. 7.4.5.2.1 CC Cal Temp
        3. 7.4.5.3 Current Subclass
          1. 7.4.5.3.1 Deadband
      6. 7.4.6 Security Class
        1. 7.4.6.1 Codes Subclass
          1. 7.4.6.1.1 Sealed to Unsealed
  9. 8Updating BQ27427 Configuration Parameters
    1. 8.1 Gauge Mode FlashStream (gm.fs) Files
    2. 8.2 Write Command
    3. 8.3 Read and Compare Command
    4. 8.4 Wait Command
    5. 8.5 CONFIG UPDATE Mode
  10. 9Revision History

Accessing the Data Memory

The Data Memory contains initialization, default, cell status, calibration, configuration, and user information. Most Data Memory parameters reside in volatile RAM initialized by associated parameters from ROM. However, some Data Memory parameters are directly accessed from ROM and do not have an associated RAM copy. The Data Memory can be accessed in several different ways, depending in which mode the fuel gauge is operating and what data is being accessed.

Commonly accessed Data Memory locations, frequently read by a system, are conveniently accessed through specific instructions already described in GUID-9CCF6D21-8687-498C-AF60-A66FDD70285E.html#GUID-9CCF6D21-8687-498C-AF60-A66FDD70285E, Extended Data Commands. These commands are available when the fuel gauge is either in UNSEALED or SEALED mode.

Most Data Memory locations, however, are only accessible in the UNSEALED mode by use of the evaluation software or by Data Memory block transfers. These locations should be optimized and/or fixed during the development and manufacturing processes. They become part of a golden image file and then can be written to multiple battery packs. Once established, the values generally remain unchanged during end-equipment operation.

To access Data Memory locations individually, the block containing the desired Data Memory location(s) must be transferred to the command register locations, where they can be read to the system or changed directly. This is accomplished by sending the set-up command BlockDataControl() (0x61) with data 0x00. Up to 32 bytes of data can be read directly from the BlockData() (0x40 through 0x5F), externally altered, then rewritten to the BlockData() command space. Alternatively, specific locations can be read, altered, and rewritten if their corresponding offsets index into the BlockData() command space. Finally, the data residing in the command space is transferred to Data Memory, once the correct checksum for the whole block is written to BlockDataChecksum() (0x60).

Occasionally, a Data Memory class is larger than the 32-byte block size. In this case, the DataBlock() command designates in which 32-byte block the desired locations reside. The correct command address is then given by 0x40 + offset modulo 32. For an example of this type of Data Memory access, see GUID-25EB0FC0-8264-4B80-8C4B-0AB6CC26463C.html#GUID-25EB0FC0-8264-4B80-8C4B-0AB6CC26463C.

Reading and writing subclass data are block operations up to 32 bytes in length. During a write, if the data length exceeds the maximum block size, then the data is ignored.

None of the data written to memory are bounded by the fuel gauge — the values are not rejected by the fuel gauge. Writing an incorrect value may result in incorrect operation due to firmware program interpretation of the invalid data. The written data is not persistent, so a POR does resolve the fault.