SLUUDA0A April 2026 – July 2026 BQ27Z855
The BQ27Z855 linear charger supports charge current derating to protect the device from excessive internal die temperature and to reduce cable or connector losses caused by a large voltage drop between the PACK output and the battery terminals. Two independent derate axes are evaluated each firmware cycle:
The active derate percentage applied to the charging current is the maximum of the temperature derate and the pack-bat derate at any given moment. The resulting effective charging current is:
Effective ChargingCurrent = ChargingCurrent × (100 − ActiveDerate) / 100
The active derate percentage (0–99%) can be read from ManufacturerAccess() 0x00B5 ChargerStatus() bytes 2–3 (bits 31–16). A value of 0 indicates no derating is active.
Each derate axis uses a 6-entry stepped lookup table (indices 0–5). Each entry pairs a threshold with a derate percentage. Thresholds must be configured in ascending order (index 0 is the lowest threshold).
Ordinal advancement: The active derate level (ordinal) advances to the next index when the measured value meets or exceeds the threshold at the next level. The ordinal retreats only when the measured value drops below the current threshold minus the configured hysteresis value. This prevents rapid toggling of the derate level near a threshold boundary.
When the measured value falls below threshold index 0, the active derate for that axis is 0% (no derating).
Each derate axis is independently enabled by a bit in the Advanced Charge Algorithm > Charger > Configuration register (default 0x0D):
| Bit Name | Default | Description |
|---|---|---|
| TEMPDERATE (bit 2) | 1 (enabled) | Enables temperature-based charge current derating. When set, the Temperature Threshold 0–5 and Temperature Derate 0–5 tables are active. |
| PACKBATDERATE (bit 3) | 1 (enabled) | Enables PACK-BAT differential-based charge current derating. When set, the Pack Bat Diff 0–5 and Pack Bat Derate 0–5 tables are active. |
Both derating axes are enabled by default. Set the corresponding bit to 0 to disable a derate axis. Disabling both axes prevents any derating from being applied regardless of temperature or PACK-BAT differential.
The currently active derate percentage is readable via ManufacturerAccess() 0x00B5 ChargerStatus(). Starting from firmware version v0.07 (build 8, BMSFW-11843), this command returns 4 bytes instead of 2 bytes:
| Bytes (I2C order) | Bits | Content |
|---|---|---|
| Bytes 0–1 (aaAA) | 31–16 | ChargerStatus bits (LINCHGR, CHGR_DET, LIN, IDON, IDOFF, LINSUPP, LINOFFT). See ManufacturerAccess() 0x00B5 ChargerStatus. |
| Bytes 2–3 (bbBB) | 15–0 | Active derate percentage (0–99%). Maximum of temperature derate and pack-bat derate currently applied to ChargingCurrent(). A value of 0 indicates no derating is active. |
Host software reading exactly 2 bytes from MAC 0x00B5 will receive only the ChargerStatus bits and will not receive the derate percentage. Update host software to read 4 bytes from this command.