BQ28Z

Description

Battery Fuel Gauge

Register Map

Name

Address

Type

Access

Default

Description

DUMMY

0x00

uint16

R

0xDEAD

dummy register

ManufacturerAccess_ControlStatus

0x00

uint16

RW

0x0000

Control Register

AtRate

0x02

int16

RW

0x0000

Read/Write. The value is a signed integer with the negative value indicating a discharge current value. The default value is 0 and forces AtRateTimeToEmpty() to return 65535.

AtRateTimeToEmpty

0x04

uint16

R

0x0000

This read-only function returns an unsigned integer value to predict remaining operating time based on battery discharge at the AtRate() value in minutes with a range of 0 to 65534. A value of 65535 indicates AtRate() = 0. The gas gauge updates the AtRateTimeToEmpty() within 1 s after the system sets the AtRate() value. The gas gauge updates these parameters every 1 s. The commands are used in NORMAL mode.

Temperature

0x06

uint16

R

0x0000

This read-only function returns an unsigned integer value of temperature in units ( 0.1 k) measured by the gas gauge and is used for the gauging algorithm. It reports either InternalTemperature() or external thermistor temperature depending on the setting of the TEMPS bit in Pack configuration.

Voltage

0x08

uint16

R

0x0000

This read-only function returns an unsigned integer value of the measured cell pack in mV with a range of 0 12000 mV.

BatteryStatus

0x0A

uint16

R

0x0000

See the Flags register.

Current

0x0C

int16

R

0x0000

This read-only function returns a signed integer value that is the instantaneous current flow through the sense resistor. The value is updated every 1 s. Units are mA.

MaxError

0x0E

uint8

R

0x00

This read-word function returns the expected margin of error

RemainingCapacity

0x10

uint16

R

0x0000

This read-only command returns the predicted remaining capacity based on rate (per configured Load Select) temperature present depth-of-discharge and stored impedance. Values are reported in mAh.

FullChargeCapacity

0x12

uint16

R

0x0000

This read-only command returns the predicted capacity of the battery at full charge based on rate (per configured Load Select) temperature present depth-of-discharge and stored impedance. Values are reported in mAh.

AverageCurrent

0x14

int16

R

0x0000

This read-only function returns a signed integer value that is the average current flow through the sense resistor. The value is updated every 1 s. Units are mA.

AverageTimeToEmpty

0x16

uint16

R

0x0000

Uses average current value with a time constant of 15 s for this method. A value of 65535 means the battery is not being discharged.

AverageTimeToFull

0x18

uint16

R

0x0000

This read-only function returns a unsigned integer value predicting time to reach full charge for the battery in units of minutes based on AverageCurrent(). The computation accounts for the taper current time extension from linear TTF computation based on a fixed AverageCurrent() rate of charge accumulation. A value of 65535 indicates the battery is not being charged.

StandbyCurrent

0x1A

int16

R

0x0000

This read-only function returns a signed integer value of measured standby current through the sense resistor. The StandbyCurrent() is an adaptive measurement. Initially it will report the standby current programmed in initial standby and after several seconds in standby mode will report the measured standby. The register value is updated every 1 s when measured current is above the deadband and is less than or equal to 2 × initial standby. The first and last values that meet these criteria are not averaged in since they may not be stable values. To approximate to a 1-min time constant each new value of StandbyCurrent() is computed by taking approximate 93% weight of the last standby current and approximate 7% of the current measured average current.

StandbyTimeToEmpty

0x1C

uint16

R

0x0000

This read-only function returns a unsigned integer value predicting remaining battery life at standby rate of discharge in units of minutes. The computation uses Nominal Available Capacity (NAC) for the calculation. A value of 65535 indicates the battery is not being discharged.

MaxLoadCurrent

0x1E

int16

R

0x0000

This read-only function returns a signed integer value in units of mA of maximum load conditions. The MaxLoadCurrent() is an adaptive measurement which is initially reported as the maximum load current programmed in initial Max Load Current register. If the measured current is ever greater than the initial Max Load Current then the MaxLoadCurrent() updates to the new current. MaxLoadCurrent() is reduced to the average of the previous value and initial Max Load Current whenever the battery is charged to full after a previous discharge to an SOC of less than 50%. This will prevent the reported value from maintaining an unusually high value.

MaxLoadTimeToEmpty

0x20

uint16

R

0x0000

This read-only function returns a unsigned integer value predicting remaining battery life at the maximum discharge load current rate in units of minutes. A value of 65535 indicates that the battery is not being discharged.

AveragePower

0x22

int16

R

0x0000

This read-only function returns a signed integer value of average power during battery charging and discharging. It is negative during discharge and positive during charge. A value of 0 indicates that the battery is not being discharged. The value is reported in units of mW.

BTPDischargeSet

0x24

int16

RW

0x0000

This command sets the OperationStatusA BTP_INT and the BTP_INT pin will be asserted when the RemCap drops below the set threshold in DF register.

BTPChargeSet

0x26

int16

RW

0x0000

This command clears the OperationStatusA BTP_INT and the BTP_INT pin will be deasserted.

InternalTemperature

0x28

uint16

R

0x0000

This read-only function returns an unsigned integer value of the measured internal temperature of the device in 0.1-k units measured by the gas gauge.

CycleCount

0x2A

uint16

R

0x0000

This read-only function returns an unsigned integer value of the number of cycles the battery has experienced a discharge (range 0 to 65535). One cycle occurs when accumulated discharge greater than or equal to CC threshold.

RelativeStateOfCharge

0x2C

uint8

R

0x00

This read-only function returns an unsigned integer value of the predicted remaining battery capacity expressed as percentage of FullChargeCapacity() with a range of 0% to 100%.

StateOfHealth

0x2E

uint8

R

0x00

This read-only function returns an unsigned integer value expressed as a percentage of the ratio of predicted FCC (25C SoH Load Rate) over the DesignCapacity(). The range is 0x00 to 0x64 for 0% to 100% respectively.

ChargeVoltage

0x30

uint16

R

0x0000

Returns the desired charging voltage in mV to the charger

ChargeCurrent

0x32

uint16

R

0x0000

Returns the desired charging current in mA to the charger

DesignCapacity

0x3C

uint16

R

0x0000

In SEALED and UNSEALED access This command returns the value stored in Design Capacity and is expressed in mAh. This is intended to be a theoretical or nominal capacity of a new pack but should have no bearing on the operation of the gas gauge functionality.

AltManufacturerAccess

0x3E

uint16

R

0x0000

MAC Data block command

MACData

0x40

uint16

R

0x0000

MAC Data block

SafetyAlert

0x50

uint32

R

0x00000000

This command returns the SafetyAlert flags on AltManufacturerAccess or MACData.

MACDataSum

0x60

uint8

R

0x00

MAC Data block checksum

MACDataLen

0x61

uint8

R

0x00

MAC Data block length

Registers


DUMMY

Address:

[0x00]

Default:

[0xDEAD]

dummy register

Bit

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

Field

BIT1

BIT0

Flags

BIT0:

creates a flag at bit 0 of the DUMMY register

BIT1:

creates a flag at bit 1 of the DUMMY register

Fields

REMAINING:

creates a 14 bit field using the remaing bits

Name

Address

Description

MIN

x00

creates a macro for the minimum 14 bit value

MAX

x3fff

creates a macro for the maximum 14 bit value


ManufacturerAccess_ControlStatus

Address:

[0x00]

Default:

[0x0000]

Control Register

Bit

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

Field

SECURITY_Mode

AUTHCALM

CheckSumValid

BTP_INT

LDMD

R_DIS

VOK

QMax

Flags

AUTHCALM:

Automatic Calibration Mode

CheckSumValid:

Checksum Valid

BTP_INT:

Battery Trip Point Interrupt. Setting and clearing this bit depends on various conditions

LDMD:

LOAD Mode

R_DIS:

Resistance Updates

VOK:

Voltage OK for QMax Update

QMax:

QMax Updates. This bit toggles after every QMax update.

Fields

SECURITY_Mode:

Security Mode

Name

Address

Description

Reserved

b00

Reserved

Full_Access

b01

Full Access

Unsealed

b10

Unsealed

Sealed

b11

Sealed


AtRate

Address:

[0x02]

Default:

[0x0000]

Read/Write. The value is a signed integer with the negative value indicating a discharge current value. The default value is 0 and forces AtRateTimeToEmpty() to return 65535.

Bit

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

Field

Fields

AtRate:

Read/Write. The value is a signed integer with the negative value indicating a discharge current value. The default value is 0 and forces AtRateTimeToEmpty() to return 65535.


AtRateTimeToEmpty

Address:

[0x04]

Default:

[0x0000]

This read-only function returns an unsigned integer value to predict remaining operating time based on battery discharge at the AtRate() value in minutes with a range of 0 to 65534. A value of 65535 indicates AtRate() = 0. The gas gauge updates the AtRateTimeToEmpty() within 1 s after the system sets the AtRate() value. The gas gauge updates these parameters every 1 s. The commands are used in NORMAL mode.

Bit

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

Field

Fields

AtRateTimeToEmpty:

This read-only function returns an unsigned integer value to predict remaining operating time based on battery discharge at the AtRate() value in minutes with a range of 0 to 65534. A value of 65535 indicates AtRate() = 0. The gas gauge updates the AtRateTimeToEmpty() within 1 s after the system sets the AtRate() value. The gas gauge updates these parameters every 1 s. The commands are used in NORMAL mode.


Temperature

Address:

[0x06]

Default:

[0x0000]

This read-only function returns an unsigned integer value of temperature in units ( 0.1 k) measured by the gas gauge and is used for the gauging algorithm. It reports either InternalTemperature() or external thermistor temperature depending on the setting of the TEMPS bit in Pack configuration.

Bit

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

Field

Fields

Temperature:

This read-only function returns an unsigned integer value of temperature in units ( 0.1 k) measured by the gas gauge and is used for the gauging algorithm. It reports either InternalTemperature() or external thermistor temperature depending on the setting of the TEMPS bit in Pack configuration.


Voltage

Address:

[0x08]

Default:

[0x0000]

This read-only function returns an unsigned integer value of the measured cell pack in mV with a range of 0 12000 mV.

Bit

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

Field

Fields

Voltage:

This read-only function returns an unsigned integer value of the measured cell pack in mV with a range of 0 12000 mV.


BatteryStatus

Address:

[0x0A]

Default:

[0x0000]

See the Flags register.

Bit

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

Field

TCA

OTA

TDA

RCA

RTA

INIT

DSG

FC

FD

Error_Code

Flags

FD:

Fully Discharged

FC:

Fully Charged

DSG:

Discharging

INIT:

Initialization

RTA:

Remaining Time Alarm

RCA:

Remaining Capacity Alarm

TDA:

Terminate Discharge Alarm

OTA:

Overtemperature Alarm

TCA:

Terminate Charge Alarm

OCA:

Overcharged Alarm

Fields

Error_Code:

Error Code

Name

Address

Description

OK

b0000

OK

Busy

b0001

Busy

Reserved_Command

b0010

Reserved_Command

Unsupported_Command

b0011

Unsupported_Command

AccessDenied

b0100

AccessDenied

Overflow_Underflow

b0101

Overflow_Underflow

BadSize

b0110

BadSize

UnknownError

b0111

UnknownError


Current

Address:

[0x0C]

Default:

[0x0000]

This read-only function returns a signed integer value that is the instantaneous current flow through the sense resistor. The value is updated every 1 s. Units are mA.

Bit

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

Field

Fields

Current:

This read-only function returns a signed integer value that is the instantaneous current flow through the sense resistor. The value is updated every 1 s. Units are mA.


MaxError

Address:

[0x0E]

Default:

[0x00]

This read-word function returns the expected margin of error

Bit

7

6

5

4

3

2

1

0

Field

Fields

MaxError:

This read-word function returns the expected margin of error


RemainingCapacity

Address:

[0x10]

Default:

[0x0000]

This read-only command returns the predicted remaining capacity based on rate (per configured Load Select) temperature present depth-of-discharge and stored impedance. Values are reported in mAh.

Bit

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

Field

Fields

RemainingCapacity:

This read-only command returns the predicted remaining capacity based on rate (per configured Load Select) temperature present depth-of-discharge and stored impedance. Values are reported in mAh.


FullChargeCapacity

Address:

[0x12]

Default:

[0x0000]

This read-only command returns the predicted capacity of the battery at full charge based on rate (per configured Load Select) temperature present depth-of-discharge and stored impedance. Values are reported in mAh.

Bit

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

Field

Fields

FullChargeCapacity:

This read-only command returns the predicted capacity of the battery at full charge based on rate (per configured Load Select) temperature present depth-of-discharge and stored impedance. Values are reported in mAh.


AverageCurrent

Address:

[0x14]

Default:

[0x0000]

This read-only function returns a signed integer value that is the average current flow through the sense resistor. The value is updated every 1 s. Units are mA.

Bit

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

Field

Fields

AverageCurrent:

This read-only function returns a signed integer value that is the average current flow through the sense resistor. The value is updated every 1 s. Units are mA.


AverageTimeToEmpty

Address:

[0x16]

Default:

[0x0000]

Uses average current value with a time constant of 15 s for this method. A value of 65535 means the battery is not being discharged.

Bit

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

Field

Fields

AverageTimeToEmpty:

Uses average current value with a time constant of 15 s for this method. A value of 65535 means the battery is not being discharged.


AverageTimeToFull

Address:

[0x18]

Default:

[0x0000]

This read-only function returns a unsigned integer value predicting time to reach full charge for the battery in units of minutes based on AverageCurrent(). The computation accounts for the taper current time extension from linear TTF computation based on a fixed AverageCurrent() rate of charge accumulation. A value of 65535 indicates the battery is not being charged.

Bit

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

Field

Fields

AverageTimeToFull:

This read-only function returns a unsigned integer value predicting time to reach full charge for the battery in units of minutes based on AverageCurrent(). The computation accounts for the taper current time extension from linear TTF computation based on a fixed AverageCurrent() rate of charge accumulation. A value of 65535 indicates the battery is not being charged.


StandbyCurrent

Address:

[0x1A]

Default:

[0x0000]

This read-only function returns a signed integer value of measured standby current through the sense resistor. The StandbyCurrent() is an adaptive measurement. Initially it will report the standby current programmed in initial standby and after several seconds in standby mode will report the measured standby. The register value is updated every 1 s when measured current is above the deadband and is less than or equal to 2 × initial standby. The first and last values that meet these criteria are not averaged in since they may not be stable values. To approximate to a 1-min time constant each new value of StandbyCurrent() is computed by taking approximate 93% weight of the last standby current and approximate 7% of the current measured average current.

Bit

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

Field

Fields

StandbyCurrent:

This read-only function returns a signed integer value of measured standby current through the sense resistor. The StandbyCurrent() is an adaptive measurement. Initially it will report the standby current programmed in initial standby and after several seconds in standby mode will report the measured standby. The register value is updated every 1 s when measured current is above the deadband and is less than or equal to 2 × initial standby. The first and last values that meet these criteria are not averaged in since they may not be stable values. To approximate to a 1-min time constant each new value of StandbyCurrent() is computed by taking approximate 93% weight of the last standby current and approximate 7% of the current measured average current.


StandbyTimeToEmpty

Address:

[0x1C]

Default:

[0x0000]

This read-only function returns a unsigned integer value predicting remaining battery life at standby rate of discharge in units of minutes. The computation uses Nominal Available Capacity (NAC) for the calculation. A value of 65535 indicates the battery is not being discharged.

Bit

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

Field

Fields

StandbyTimeToEmpty:

This read-only function returns a unsigned integer value predicting remaining battery life at standby rate of discharge in units of minutes. The computation uses Nominal Available Capacity (NAC) for the calculation. A value of 65535 indicates the battery is not being discharged.


MaxLoadCurrent

Address:

[0x1E]

Default:

[0x0000]

This read-only function returns a signed integer value in units of mA of maximum load conditions. The MaxLoadCurrent() is an adaptive measurement which is initially reported as the maximum load current programmed in initial Max Load Current register. If the measured current is ever greater than the initial Max Load Current then the MaxLoadCurrent() updates to the new current. MaxLoadCurrent() is reduced to the average of the previous value and initial Max Load Current whenever the battery is charged to full after a previous discharge to an SOC of less than 50%. This will prevent the reported value from maintaining an unusually high value.

Bit

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

Field

Fields

MaxLoadCurrent:

This read-only function returns a signed integer value in units of mA of maximum load conditions. The MaxLoadCurrent() is an adaptive measurement which is initially reported as the maximum load current programmed in initial Max Load Current register. If the measured current is ever greater than the initial Max Load Current then the MaxLoadCurrent() updates to the new current. MaxLoadCurrent() is reduced to the average of the previous value and initial Max Load Current whenever the battery is charged to full after a previous discharge to an SOC of less than 50%. This will prevent the reported value from maintaining an unusually high value.


MaxLoadTimeToEmpty

Address:

[0x20]

Default:

[0x0000]

This read-only function returns a unsigned integer value predicting remaining battery life at the maximum discharge load current rate in units of minutes. A value of 65535 indicates that the battery is not being discharged.

Bit

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

Field

Fields

MaxLoadTimeToEmpty:

This read-only function returns a unsigned integer value predicting remaining battery life at the maximum discharge load current rate in units of minutes. A value of 65535 indicates that the battery is not being discharged.


AveragePower

Address:

[0x22]

Default:

[0x0000]

This read-only function returns a signed integer value of average power during battery charging and discharging. It is negative during discharge and positive during charge. A value of 0 indicates that the battery is not being discharged. The value is reported in units of mW.

Bit

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

Field

Fields

AveragePower:

This read-only function returns a signed integer value of average power during battery charging and discharging. It is negative during discharge and positive during charge. A value of 0 indicates that the battery is not being discharged. The value is reported in units of mW.


BTPDischargeSet

Address:

[0x24]

Default:

[0x0000]

This command sets the OperationStatusA BTP_INT and the BTP_INT pin will be asserted when the RemCap drops below the set threshold in DF register.

Bit

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

Field

Fields

BTPDischargeSet:

This command sets the OperationStatusA BTP_INT and the BTP_INT pin will be asserted when the RemCap drops below the set threshold in DF register.


BTPChargeSet

Address:

[0x26]

Default:

[0x0000]

This command clears the OperationStatusA BTP_INT and the BTP_INT pin will be deasserted.

Bit

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

Field

Fields

BTPChargeSet:

This command clears the OperationStatusA BTP_INT and the BTP_INT pin will be deasserted.


InternalTemperature

Address:

[0x28]

Default:

[0x0000]

This read-only function returns an unsigned integer value of the measured internal temperature of the device in 0.1-k units measured by the gas gauge.

Bit

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

Field

Fields

InternalTemperature:

This read-only function returns an unsigned integer value of the measured internal temperature of the device in 0.1-k units measured by the gas gauge.


CycleCount

Address:

[0x2A]

Default:

[0x0000]

This read-only function returns an unsigned integer value of the number of cycles the battery has experienced a discharge (range 0 to 65535). One cycle occurs when accumulated discharge greater than or equal to CC threshold.

Bit

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

Field

Fields

CycleCount:

This read-only function returns an unsigned integer value of the number of cycles the battery has experienced a discharge (range 0 to 65535). One cycle occurs when accumulated discharge greater than or equal to CC threshold.


RelativeStateOfCharge

Address:

[0x2C]

Default:

[0x00]

This read-only function returns an unsigned integer value of the predicted remaining battery capacity expressed as percentage of FullChargeCapacity() with a range of 0% to 100%.

Bit

7

6

5

4

3

2

1

0

Field

Fields

RelativeStateOfCharge:

This read-only function returns an unsigned integer value of the predicted remaining battery capacity expressed as percentage of FullChargeCapacity() with a range of 0% to 100%.


StateOfHealth

Address:

[0x2E]

Default:

[0x00]

This read-only function returns an unsigned integer value expressed as a percentage of the ratio of predicted FCC (25C SoH Load Rate) over the DesignCapacity(). The range is 0x00 to 0x64 for 0% to 100% respectively.

Bit

7

6

5

4

3

2

1

0

Field

Fields

StateOfHealth:

This read-only function returns an unsigned integer value expressed as a percentage of the ratio of predicted FCC (25C SoH Load Rate) over the DesignCapacity(). The range is 0x00 to 0x64 for 0% to 100% respectively.


ChargeVoltage

Address:

[0x30]

Default:

[0x0000]

Returns the desired charging voltage in mV to the charger

Bit

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

Field

Fields

ChargeVoltage:

Returns the desired charging voltage in mV to the charger


ChargeCurrent

Address:

[0x32]

Default:

[0x0000]

Returns the desired charging current in mA to the charger

Bit

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

Field

Fields

ChargeCurrent:

Returns the desired charging current in mA to the charger


DesignCapacity

Address:

[0x3C]

Default:

[0x0000]

In SEALED and UNSEALED access This command returns the value stored in Design Capacity and is expressed in mAh. This is intended to be a theoretical or nominal capacity of a new pack but should have no bearing on the operation of the gas gauge functionality.

Bit

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

Field

Fields

DesignCapacity:

In SEALED and UNSEALED access This command returns the value stored in Design Capacity and is expressed in mAh. This is intended to be a theoretical or nominal capacity of a new pack but should have no bearing on the operation of the gas gauge functionality.


AltManufacturerAccess

Address:

[0x3E]

Default:

[0x0000]

MAC Data block command

Bit

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

Field

Fields

AltManufacturerAccess:

MAC Data block command


MACData

Address:

[0x40]

Default:

[0x0000]

MAC Data block

Bit

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

Field

Fields

MACData:

MAC Data block


SafetyAlert

Address:

[0x50]

Default:

[0x00000000]

This command returns the SafetyAlert flags on AltManufacturerAccess or MACData.

Bit

31

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

Field

UTD

UTC

CTOS

PTOS

OTD

OTC

ASCD

ASCC

AOLD

OCD

OCC

COV

CUV

Flags

UTD:

Undertemperature During Discharge

UTC:

Undertemperature During Charge

CTOS:

Charge Timeout Suspend

PTOS:

Precharge Timeout Suspend

OTD:

Overtemperature During Discharge

OTC:

Overtemperature During Charge

ASCD:

Short-Circuit During Discharge

ASCC:

Short-Circuit During Charge

AOLD:

Overload During Discharge

OCD:

Overcurrent During Discharge

OCC:

Overcurrent During Charge

COV:

Cell Overvoltage

CUV:

Cell Undervoltage


MACDataSum

Address:

[0x60]

Default:

[0x00]

MAC Data block checksum

Bit

7

6

5

4

3

2

1

0

Field

Fields

MACDataSum:

MAC Data block checksum


MACDataLen

Address:

[0x61]

Default:

[0x00]

MAC Data block length

Bit

7

6

5

4

3

2

1

0

Field

Fields

MACDataLen:

MAC Data block length