This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

BQ25792: Chip indicates Fast-charging and IBAT = 0A

Part Number: BQ25792

Tool/software:

Hi,

I've got an issue with the BQ25792 on a PCB I made: the registers indicate that the charger is in Fast-charging state, but the ADC give IBAT = 0.0A, and indeed I don't see any voltage difference after a while on VBAT. It does work well with the EVM with the same power supply, and the same register settings (I start by disabling the watchdog, as well as TS, then setting VSYS_MIN to 16V, and enabling ADC and IBAT_ADC).

Please find attached the schematics, as well as the registers.

Any help on this would be really appreciated.

Yoann

Inputs.pdf

Reg 0x00 = 0x36
VSYS_MIN = 16.0V

Reg 0x01 = 0x0690
VREG = 16.8V

Reg 0x03 = 0x0064
ICHG = 1.0A

Reg 0x05 = 0x97
VINDPM = 15.100000000000001V

Reg 0x06 = 0x008e
IINDPM = 1.42A

Reg 0x08 = 0xc3
VBAT_LOWV = 71.4%*VREG
IPRECHG = 0.12A

Reg 0x09 = 0x05
ITERM = 0.2A

Reg 0x0a = 0xe3
CELL = 4s
TRECHG = 1024ms
VRECHG = 0.2V

Reg 0x0b = 0x00dc
VOTG = 5.0V

Reg 0x0d = 0x4b
PRECHG_TMR = 2hrs
IOTG = 3.0A

Reg 0x0e = 0x3d
TOPOFF_TMR = disabled
EN_TRICHG_TMR = enabled
EN_PRECHG_TMR = enabled
EN_CHG_TMR = enabled
CHG_TMR = 12hrs
TMR2X_EN = enabled

Reg 0x0f = 0xa2
Battery discharges during OVP fault: enabled
Force a battery discharging current: disabled
Charger Enable: enabled
Input Current Optimizer: disabled
Force start input current optimizer: disabled
HIZ mode: disabled
Enable termination: enabled

Reg 0x10 = 0x80
VAC_OVP = 26V
WD_RST = 0
WATCHDOG = disable

Reg 0x11 = 0x40
Force D+/D- detection: disabled
Automatic D+/D- Detection: enabled
EN_12V HVDC: disabled
EN_9V HVDC: disabled
High voltage DCP: disabled
SFET control = Idle
SDRV_DLY: Add 10s delay time

Reg 0x12 = 0x00
DIS_ACDRV: disabled
EN_OTG: disabled
PFM_OTG_DIS: enabled
PFM_FWD_DIS: enabled
WKUP_DLY: 15ms
DIS_LDO: enabled
DIS_OTG_OOA: enabled
DIS_FWD_OOA: enabled

Reg 0x13 = 0x21
EN_ACDRV2: turn off
EN_ACDRV1: turn off
PWM_FREQ: 750 kHz
DIS_STAT: enabled
DIS_VSYS_SHORT: enabled
DIS_VOTG_UVP: enabled
FORCE_VINDPM_DET: Do NOT force VINDPM detection
EN_IBUS_OCP: enabled

Reg 0x14 = 0x36
SFET_PRESENT: No ship FET populated
EN_IBAT: IBAT discharge current sensing for ADC enabled
IBAT_REG: 5A
EN_IINDPM: enabled
EN_EXTILIM: enabled
EN_BATOC: disabled

Reg 0x16 = 0xc0
TREG: 120°C
TSHUT: 150°C
VBUS_PD_EN: disabled
VAC1_PD_EN: disabled
VAC2_PD_EN: disabled

Reg 0x17 = 0x7a

Reg 0x18 = 0x55
TS_COOL: 68.4% (10°C)
TS_WARM: 44.8% (45°C)
BHOT: 60°C
BCOLD: -10°C
TS_IGNORE: Ignore

Reg 0x19 = 0x008e
ICO_ILIM = 1.42A

Reg 0x1b = 0x0b
PG_STAT: Power good
AC2_PRESENT_STAT: VAC2 NOT present
AC1_PRESENT_STAT: VAC1 present
VBUS_PRESENT_STAT: VBUS present

Reg 0x1c = 0x67
CHG_STAT: Fast charge
VBUS_STAT: USB DCP (3.25A)
BC1.2_DONE_STAT: BC1.2 or non-standard detection complete

Reg 0x1d = 0x01
ICO_STAT: ICO disabled
DPDM_STAT: The D+/D- detection is NOT started yet, or the detection is done
VBAT_PRESENT_STAT: VBAT present

Reg 0x1e = 0x00
ACRB2_STAT: ACFET2-RBFET2 is NOT placed
ACRB1_STAT: ACFET1-RBFET1 is NOT placed
ADC_DONE_STAT: Conversion NOT complete
VSYS_STAT: Not in VSYSMIN regulation

Reg 0x1f = 0x00
VBATOTG_LOW_STAT: The battery voltage is high enough to enable the OTG operation

Reg 0x20 = 0x00

Reg 0x21 = 0x00

Reg 0x22 = 0x00

Reg 0x23 = 0x00

Reg 0x24 = 0x00
DPDM_DONE_FLAG: D+/D- detection is NOT started or still ongoing
ADC_DONE_FLAG: Conversion NOT completed

Reg 0x25 = 0x00

Reg 0x26 = 0x00

Reg 0x27 = 0x00

Reg 0x28 = 0x00
IINDPM_MASK: Enter IINDPM / IOTG does produce INT pulse
VINDPM_MASK: Enter VINDPM / VOTG does produce INT pulse
WD_MASK: I2C watch dog timer expired does produce INT pulse
POORSRC_MASK: Poor source detected does produce INT
PG_MASK: PG toggle does produce INT
AC2_PRESENT_MASK: VAC2 present status change does produce INT
AC1_PRESENT_MASK: VAC1 present status change does produce INT
VBUS_PRESENT_MASK: VBUS present status change does produce INT

Reg 0x29 = 0x00
CHG_MASK: Charging status change does produce INT
ICO_MASK: ICO status change does produce INT
VBUS_MASK: VBUS status change does produce INT
TREG_MASK: entering TREG does produce INT
VBAT_PRESENT_MASK: VBAT present status change does produce INT
BC1.2_DONE_MASK: BC1.2 status change does produce INT

Reg 0x2a = 0x00
DPDM_DONE_MASK: D+/D- detection done does produce INT pulse
ADC_DONE_MASK: ADC conversion done does produce INT pulse
VSYS_MASK: enter or exit VSYSMIN regulation does produce INT pulse
CHG_TMR_MASK: Fast charge timer expire does produce INT
TRICHG_TMR_MASK: Trickle charge timer expire does produce INT
PRECHG_TMR_MASK: Pre-charge timer expire does produce INT
TOPOFF_TMR_MASK: Top off timer expire does produce INT

Reg 0x2b = 0x00
VBATOTG_LOW_MASK: VBAT falling below the threshold to enable the OTG mode, does produce INT
TS_COLD_MASK: TS across cold temperature (T1) does produce INT
TS_COOL_MASK: TS across cool temperature (T2) does produce INT
TS_WARM_MASK: TS across warm temperature (T3) does produce INT
TS_HOT_MASK: TS across hot temperature (T5) does produce INT

Reg 0x2c = 0x00
IBAT_REG_MASK: enter or exit IBAT regulation does produce INT
VBUS_OVP_MASK: entering VBUS OVP does produce INT
VBAT_OVP_MASK: entering VBAT OVP does produce INT
IBUS_OCP_MASK: IBUS OCP fault does produce INT
IBAT_OCP_MASK: IBAT OCP fault does produce INT
CONV_OCP_MASK: Converter OCP fault does produce INT
VAC2_OVP_MASK: entering VAC2 OVP does produce INT
VAC1_OVP_MASK: entering VAC1 OVP does produce INT

Reg 0x2d = 0x00
VSYS_SHORT_MASK: System short fault does produce INT
VSYS_OVP_MASK: System over-voltage fault does produce INT
OTG_OVP_MASK: OTG VBUS over-voltage fault does produce INT
OTG_UVP_MASK: OTG VBUS under voltage fault does produce INT
TSHUT_MASK: TSHUT does produce INT

Reg 0x2e = 0xb0
ADC_EN: Enable
ADC_RATE: Continuous conversion
ADC_SAMPLE: 12 bit effective resolution
ADC_AVG: Single value
ADC_AVG_INIT: Start average using the existing register value

Reg 0x2f = 0x00
IBUS_ADC_DIS: Enable
IBAT_ADC_DIS: Enable
VBUS_ADC_DIS: Enable
VBAT_ADC_DIS: Enable
VSYS_ADC_DIS: Enable
TS_ADC_DIS: Enable
TDIE_ADC_DIS: Enable

Reg 0x30 = 0x00
DP_ADC_DIS: Enable
DM_ADC_DIS: Enable
VAC2_ADC_DIS: Enable
VAC1_ADC_DIS: Enable

Reg 0x31 = 0x00e1
IBUS_ADC = 0.225A

Reg 0x33 = 0x0000
IBAT_ADC = 0.0A

Reg 0x35 = 0x4e90
VBUS_ADC = 20.112000000000002V

Reg 0x37 = 0x4e90
VAC1_ADC = 20.112000000000002V

Reg 0x39 = 0x0000
VAC2_ADC = 0.0V

Reg 0x3b = 0x400a
VBAT_ADC = 16.394000000000002V

Reg 0x3d = 0x4160
VSYS_ADC = 16.736V

Reg 0x3f = 0x03f5
TS_ADC = 98.9258319%

Reg 0x41 = 0x003f
TDIE_ADC = 31.5°C

Reg 0x43 = 0x0a60
D+_ADC = 2.656V

Reg 0x45 = 0x0a61
D-_ADC = 2.657V

Reg 0x47 = 0x00
DPLUS_DAC: HIZ
DMINUS_DAC: HIZ