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.

BQ25892: Problem of charging

Part Number: BQ25892


We have a problem of charge with the BQ25892 when the battery is too low.

The product is directly supplied by the output (vsyst) of the charger including the host. The problem sometimes happens  when the product is only supplied by the battery and when the charge of the battery is becoming too low (below than 3V). When we tried to plug in a usb on vbus, nothing happens the battery doesn't charge. The charger is stuck. The product stays power supplied by the battery until it's too low.To renable the charge, we have to unplug the battery to reset the BQ.

We have made different measures at this moment (usb plug in). We have 800 mV on vsyst.

Here is the curve of REGN. It’s look like the LDO tried to start every 1s.

Here is the states of all the registers :

Register 0 : 0x52

Register 1 : 0x06

Register 2 : 0x5D

Register 3 : 0x10

Register 4 : 0x08

Register 5 : 0x10

Register 6 : 0x5A

Register 7 : 0x8D

Register 8 : 0x03

Register 9 : 0x44

Register A : 0x73

Register B : 0x02

Register C : 0x80

Register D : 0x12

Register E : 0x00

Register F: 0x00

Register 10 : 0x00

Register 11 : 0x00

Register 12 : 0x00

Register 13: 0x12

Register 14: 0x05

Thanks in advances.

Best Regards


  • Hi Clement, 

    Can you please confirm a few questions I have in regards to what you are seeing.

    You mention your host is connected to Sys, where is the pull up voltage of SCL and SDA for I2C communication coming from, are they also connected to Sys?

     What is your exact battery voltage before you attempt to plug in a usb to vbus? 

    Are the register values provided what is set when you observe the inability to charge? 

    Finally, the REGN curve provided is expected for ADC 1 sec continuous operation. The LDO quickly powers up each second to allow the battery monitor to function.



  • Hi,

    The host is not directly connected to vyst, there is another ldo between them which is connected to vyst. The pull up are connected to the 2.8V of this LDO.

    It's difficult to know exactly the voltage but it was around 3V .

    Yes it's the register values during the inability to charge.

    I have a diode in serie on vbus. In fact the voltage on vbus sometimes drops below 4.4V during a normal charge. It can have an impact on the charge ?



  • Hi Clement, 

    Thank you for the additional information. Firstly to address your question regarding vbus dropping below 4.4V. With your current register settings when Vin drops below 4.4V charging stops due to Vindpm. The battery will power the load until Vin increases above input voltage limit. I would recommend adjusting input voltage limit offset in REG01 if you desire to maintain charging when Vin < 4.4V.

    Back to your initial problem. We believe what you are seeing on your device is related to I2C communication when in battery only mode. Referring to the two images below, A Stop should be issued from the host following the ACK 9th bit in an I2C communication.

    What is likely happening is as your host reads the battery monitor ADC every second in continuous conversion mode. At some point during operation over discharge protection disconnects the battery by turning Q4 off. This causes Vsys and the SCL/SDA pull up rail to fall to 0V. If there is an incomplete I2C communication when vsys goes to 0V the device locks and it does not recognize an adapter plug in until the IC is reset. 

    To avoid the issue you need to look to avoid the SCL and SDA power down sequence during I2C communication. We recommend preemptively turning off Q4 before battery voltage is too low. 

    For example, when the battery voltage = 3V you could adjust your device to turn off 1 sec continuous ADC monitoring (REG02 bit 6), then use REG09 bit 3 to enable batfet turn off delay [BATFET_DLY = 1], finally turn off batfet with REG09 bit 5 {BATFET_DIS = 1]. This will ensure I2C communication is complete before Vsys falls to 0V.