SLUUBD4A April   2016  – November 2022 BQ27220

 

  1.   Read This First
    1. 1.1 About This Manual
    2. 1.2 Formatting conventions used in this document:
    3. 1.3 Related Documentation from Texas Instruments
    4. 1.4 Trademarks
  2. 2General Description
    1. 2.1 Gas Gauging
      1. 2.1.1  CEDV Gas Gauging Operational Overview
      2. 2.1.2  Main Fuel Gauge Registers
      3. 2.1.3  Capacity Learning (FCC Update) and Qualified Discharge
      4. 2.1.4  End-of-Discharge Thresholds and Capacity Correction
      5. 2.1.5  EDV Discharge Rate and Temperature Compensation
      6. 2.1.6  EDV Age Factor
      7. 2.1.7  Self-Discharge
      8. 2.1.8  Battery Electronic Load Compensation
      9. 2.1.9  CEDV Configuration
      10. 2.1.10 Initial Battery Capacity at Device Reset
      11. 2.1.11 Fuel Gauge Operating Modes
      12. 2.1.12 Qmax
      13. 2.1.13 CEDV Smoothing
  3. 3Standard Data Commands
    1. 3.1  Standard Commands
    2. 3.2  Control()/CONTROL_STATUS(): 0x00 and 0x01
      1. 3.2.1  CONTROL_STATUS: 0x0000
      2. 3.2.2  DEVICE_NUMBER: 0x0001
      3. 3.2.3  FW_VERSION: 0x0002
      4. 3.2.4  HW_VERSION: 0x0003
      5. 3.2.5  BOARD_OFFSET: 0x0009
      6. 3.2.6  CC_OFFSET: 0x000A
      7. 3.2.7  CC_OFFSET_SAVE: 0x000B
      8. 3.2.8  OCV_CMD: 0x000C
      9. 3.2.9  BAT_INSERT: 0x000D
      10. 3.2.10 BAT_REMOVE: 0x000E
      11. 3.2.11 SET_SNOOZE: 0x0013
      12. 3.2.12 CLEAR_SNOOZE: 0x0014
      13. 3.2.13 SET_PROFILE_1/2/3/4/5/6: 0x0015–0x001A
      14. 3.2.14 CAL_TOGGLE: 0x002D
      15. 3.2.15 SEALED: 0x0030
      16. 3.2.16 RESET: 0x0041
      17. 3.2.17 OPERATION_STATUS: 0x0054
      18. 3.2.18 GaugingStatus: 0x0056
      19. 3.2.19 EXIT_ CAL: 0x0080
      20. 3.2.20 ENTER_CAL: 0x0081
      21. 3.2.21 ENTER_CFG_UPDATE: 0x0090
      22. 3.2.22 EXIT_CFG_UPDATE_REINIT: 0x0091
      23. 3.2.23 EXIT_CFG_UPDATE: 0x0092
      24. 3.2.24 ENTER_ROM: 0x0F00
    3. 3.3  AtRate(): 0x02 and 0x03
    4. 3.4  AtRateTimeToEmpty(): 0x04 and 0x05
    5. 3.5  Temperature(): 0x06 and 0x07
    6. 3.6  Voltage(): 0x08 and 0x09
    7. 3.7  BatteryStatus(): 0x0A and 0x0B
    8. 3.8  Current(): 0x0C and 0x0D
    9. 3.9  RemainingCapacity(): 0x10 and 0x11
    10. 3.10 FullChargeCapacity(): 0x12 and 0x13
    11. 3.11 TimeToEmpty(): 0x16 and 0x17
    12. 3.12 TimeToFull(): 0x18 and 0x19
    13. 3.13 StandbyCurrent(): 0x1A and 0x1B
    14. 3.14 StandbyTimeToEmpty(): 0x1C and 0x1D
    15. 3.15 MaxLoadCurrent(): 0x1E and 0x1F
    16. 3.16 MaxLoadTimeToEmpty(): 0x20 and 0x21
    17. 3.17 RawCoulombCount(): 0x22 and 0x23
    18. 3.18 AveragePower(): 0x24 and 0x25
    19. 3.19 InternalTemperature(): 0x28 and 0x29
    20. 3.20 CycleCount(): 0x2A and 0x2B
    21. 3.21 StateOfCharge(): 0x2C and 0x2D
    22. 3.22 StateOfHealth(): 0x2E and 0x2F
    23. 3.23 ChargingVoltage(): 0x30 and 0x31
    24. 3.24 ChargingCurrent(): 0x32 and 0x33
    25. 3.25 BTPDischargeSet(): 0x34 and 0x35
    26. 3.26 BTPChargeSet(): 0x36 and 0x37
    27. 3.27 OperationStatus(): 0x3A and 0x3B
    28. 3.28 DesignCapacity(): 0x3C and 0x3D
    29. 3.29 MACData(): 0x40 through 0x5F
    30. 3.30 MACDataSum(): 0x60
    31. 3.31 MACDataLen(): 0x61
    32. 3.32 AnalogCount(): 0x79
    33. 3.33 RawCurrent(): 0x7A and 0x7B
    34. 3.34 RawVoltage(): 0x7C and 0x7D
  4. 4Data Memory Interface
    1. 4.1 Accessing the Data Memory
    2. 4.2 Device Access Modes
    3. 4.3 Sealing and Unsealing Data Memory Access
    4. 4.4 Data Memory Summary
  5. 5Functional Description
    1. 5.1 Device Configuration
      1. 5.1.1 CEDV Smoothing Config Register
      2. 5.1.2 Operation Configuration A (Operation Config A) Register
      3. 5.1.3 Operation Configuration B (Operation Config B) Register
    2. 5.2 External Pin Functions
      1. 5.2.1 Pin Function Code (PFC) Descriptions
      2. 5.2.2 Battery Presence Detection Using the BIN/TOUT Pin
      3. 5.2.3 SOC_INT Pin Behavior
      4. 5.2.4 Power Path Control With the BAT_GD Pin
      5. 5.2.5 Battery Trip Point (BTP) Interrupts
      6. 5.2.6 Wake-Up Comparator
      7. 5.2.7 Autocalibration
    3. 5.3 Temperature Measurement
      1. 5.3.1 Overtemperature Indication
        1. 5.3.1.1 Overtemperature: Charge
        2. 5.3.1.2 Overtemperature: Discharge
    4. 5.4 Charging and Charge Termination Indication
      1. 5.4.1 Detecting Charge Termination
      2. 5.4.2 Charge Inhibit
    5. 5.5 Power Modes
      1. 5.5.1 NORMAL Mode
      2. 5.5.2 SLEEP Mode
    6. 5.6 CONFIG UPDATE Mode
    7. 5.7 BAT INSERT CHECK Mode
    8. 5.8 Application-Specific Information
      1. 5.8.1 Battery Profile Storage and Selection
      2. 5.8.2 First OCV Measurement
    9. 5.9 Additional Data Memory Parameter Descriptions
      1. 5.9.1  Calibration
        1. 5.9.1.1 CC Gain
        2. 5.9.1.2 CC Delta
      2. 5.9.2  Coulomb Counter Offset
      3. 5.9.3  Board Offset
      4. 5.9.4  Int Temp Offset
      5. 5.9.5  Ext Temp Offset
      6. 5.9.6  Pack VOffset
      7. 5.9.7  Internal Temp Model
      8. 5.9.8  Ext a Coef and Ext b Coef
      9. 5.9.9  Filter
      10. 5.9.10 Deadband
      11. 5.9.11 CC Deadband
      12. 5.9.12 SOC Flag Configuration A (SOC Flag Config A) Register
      13. 5.9.13 SOC Flag Configuration B (SOC Flag Config B) Register
      14. 5.9.14 CEDV Gauging Configuration (CEDV Config) Register
      15. 5.9.15 EMF
      16. 5.9.16 C0
      17. 5.9.17 R0
      18. 5.9.18 T0
      19. 5.9.19 R1
      20. 5.9.20 TC
      21. 5.9.21 C1
      22. 5.9.22 Age Factor
      23. 5.9.23 Fixed EDV0
      24. 5.9.24 Fixed EDV1
      25. 5.9.25 Fixed EDV2
      26. 5.9.26 Battery Low %
      27. 5.9.27 Low Temp Learning
      28. 5.9.28 Overload Current
      29. 5.9.29 Self Discharge Rate
      30. 5.9.30 Electronic Load
      31. 5.9.31 Near Full
      32. 5.9.32 Reserve Capacity
      33. 5.9.33 Charge Efficiency
      34. 5.9.34 Discharge Efficiency
      35. 5.9.35 Qmax Cell 1 and Qmax Pack
      36. 5.9.36 Learned Full Charge Capacity
      37. 5.9.37 DOD at EDV2
      38. 5.9.38 Cycle Count
      39. 5.9.39 Design Capacity
      40. 5.9.40 Design Voltage
      41. 5.9.41 Cycle Count %
      42. 5.9.42 Charge Inhibit Temp Low
      43. 5.9.43 Charge Inhibit Temp High
      44. 5.9.44 Temp Hys
      45. 5.9.45 Fast Charge Current
      46. 5.9.46 Charging Voltage
      47. 5.9.47 Taper Current
      48. 5.9.48 Taper Voltage
      49. 5.9.49 SOC Delta
      50. 5.9.50 Clock Control Register
      51. 5.9.51 Sleep Current
      52. 5.9.52 Offset Calibration Inhibit Temperature Low
      53. 5.9.53 Offset Calibration Inhibit Temperature High
      54. 5.9.54 Sleep Voltage Time
      55. 5.9.55 Sleep Current Time
      56. 5.9.56 Dsg Current Threshold
      57. 5.9.57 Chg Current Threshold
      58. 5.9.58 Quit Current
      59. 5.9.59 Dsg Relax Time
      60. 5.9.60 Chg Relax Time
      61. 5.9.61 Quit Relax Time
      62. 5.9.62 OT Charge
        1. 5.9.62.1 OT Charge Time
      63. 5.9.63 OT Chg Recovery
      64. 5.9.64 OT Discharge
        1. 5.9.64.1 OT Discharge Time
      65. 5.9.65 OT Dsg Recovery
      66. 5.9.66 Initial Standby Current
      67. 5.9.67 Default Temperature
      68. 5.9.68 Device Name
      69. 5.9.69 System Down Set Voltage
      70. 5.9.70 System Down Set Voltage Time
      71. 5.9.71 System Down Clear Voltage
      72. 5.9.72 Full Reset Counter
      73. 5.9.73 Reset Counter Watchdog
  6. 6Communications
    1. 6.1 I2C Interface
    2. 6.2 I2C Time Out
    3. 6.3 I2C Command Waiting Time
    4. 6.4 I2C Clock Stretching
  7. 7Application Examples
    1. 7.1 Data Memory Parameter Update Example
  8. 8Open-Circuit Voltage Measurement Background
    1. 8.1 Background
      1. 8.1.1 OCV Qualification and Calculation
      2. 8.1.2 OCV Calculation Assumption
      3. 8.1.3 OCV Timing
    2. 8.2 OCV Timing and OCV_CMD Use Recommendations
      1. 8.2.1 ACTIVE Mode (Fuel Gauge Is Not in SLEEP Mode)
      2. 8.2.2 SLEEP Mode
      3. 8.2.3 Initial OCV – POR
  9. 9Updating BQ27220 Configuration Parameters
    1. 9.1  Gauge Mode FlashStream (gm.fs) Files
      1. 9.1.1 Write Command
      2. 9.1.2 Read and Compare Command
      3. 9.1.3 Wait Command
      4. 9.1.4 CONFIG UPDATE Mode
    2. 9.2  OTP Mode FlashStream (ot.fs) Files
      1. 9.2.1 Write Command
      2. 9.2.2 Read and Compare Command
      3. 9.2.3 Wait Command
      4. 9.2.4 CONFIG UPDATE Mode
    3. 9.3  Programming Instructions
      1. 9.3.1 Using gm.fs Files
      2. 9.3.2 Using ot.fs Files
    4. 9.4  General Setup and Software Installation to Program OTP
    5. 9.5  Launch BQStudio Software
    6. 9.6  Load .GG File
    7. 9.7  Confirm or Update Data Memory Parameters
    8. 9.8  Save .OTFS File
    9. 9.9  Launch SmartFlash Software
    10. 9.10 Open Ot.fs File
    11. 9.11 Program OTP
    12. 9.12 Confirm Success
  10.   A Battery Gauge Glossary
    1.     A.1 Glossary
  11.   B Revision History

Control()/CONTROL_STATUS(): 0x00 and 0x01

Issuing a Control() (Manufacturer Access Control or MAC) command requires a 2-byte subcommand. The subcommand specifies the particular MAC function desired. The Control() command allows the system to control specific features of the fuel gauge during normal operation and additional features when the device is in different access modes, as described in Table 3-2. On this device, Control() commands may also be sent to ManufacturerAccessControl(). Any subcommand that has a data response will be read back on MACData().

Reading the Control() registers will always report the CONTROL_STATUS() data field except after the DEVICE_NUMBER() and FW_VERSION() subcommands. After these subcommands, CONTROL_STATUS() will report the value 0xFFA5 one time before reverting to the normal data response. This is a flag to indicate that the data response has been moved to MACData(). Writing a 0x0000 to Control() is no longer necessary to read the CONTROL_STATUS(), although it is okay if it is done.

When executing commands that require data (such as data flash writes), the subcommand can be written to either Control() or ManufacturerAccessControl() registers; however, it is recommended to write using the ManufacturerAccessControl() registers as this allows performing the full command in a single I2C transaction.

Table 3-2 Control() MAC Subcommands
CNTL/MAC FUNCTIONSUBCOMMAND
CODE
SEALED
ACCESS?
DESCRIPTION
CONTROL_STATUS0x0000YesIgnored by the gauge (in previous devices would enable CONTROL_STATUS() read)
DEVICE_NUMBER0x0001YesReports the device type (for example: 0x0320)
FW_VERSION0x0002YesReports the firmware version block (device, version, build, and so on)
BOARD_OFFSET0x0009YesInvokes the board offset correction
CC_OFFSET0x000AYesInvokes the CC offset correction
CC_OFFSET_SAVE0x000BYesSaves the results of the offset calibration process
OCV_CMD0x000CYesRequests the fuel gauge to take an OCV measurement
BAT_INSERT0x000DYesForces BatteryStatus()[BATTPRES] bit set when Operation Config B [BIEnable] bit = 0
BAT_REMOVE0x000EYesForces BatteryStatus()[BATTPRES] bit clear when Operation Config B [BIEnable] bit = 0
SET_SNOOZE0x0013YesForces CONTROL_STATUS()[SNOOZE] bit to 1
CLEAR_SNOOZE0x0014YesForces CONTROL_STATUS()[SNOOZE] bit to 0
SET_PROFILE_10x0015YesSelect CEDV Profile 1
SET_PROFILE_20x0016YesSelect CEDV Profile 2
SET_PROFILE_30x0017YesSelect CEDV Profile 3
SET_PROFILE_40x0018YesSelect CEDV Profile 4
SET_PROFILE_50x0019YesSelect CEDV Profile 5
SET_PROFILE_60x001AYesSelect CEDV Profile 6
CAL_TOGGLE0x002DNoToggles OperationStatus()[CALMD]
SEALED0x0030NoPlaces the fuel gauge in SEALED access mode
RESET0x0041NoResets device
EXIT_CAL0x0080NoInstructs the fuel gauge to exit CALIBRATION mode
ENTER_CAL0x0081NoInstructs the fuel gauge to enter CALIBRATION mode
ENTER_CFG_UPDATE0x0090YesEnter CONFIG UPDATE mode
EXIT_CFG_UPDATE_REINIT0x0091YesExit CONFIG UPDATE mode and re-initialize
EXIT_CFG_UPDATE0x0092YesExit CONFIG UPDATE mode without re-initialize
RETURN_TO_ROM0xF00NoPlaces the device in ROM mode

An example using the DEVICE_NUMBER() subcommand:

  • Write the data bytes 0x01 0x00 to the device address 0xAA starting at command 0x00.
  • Then read the response using an incremental read. To the device address 0xAB, starting at command 0x3E, read four bytes. The result would be 0x01 0x00 0x20 0x03 with the first two bytes reflecting subcommand, and the second two bytes representing the device type in little endian order.