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.

BQ25504 strange behaviour

Other Parts Discussed in Thread: TPS62737, BQ25505

Hi I've got a circuit comprised of BQ25505 + Buck TPS62737 and I'm using the following values:

VBAT_OV 3.7V
VBAT_OK_HYST 3V
VBAT_OK_PROG 2.6V
VBAT_UV 2.3V
MPP 0.78

All in M:

ROV1 5.07
ROV2 4.93
RUV1 5.43
RUV2 4.57
ROK1 4.17
ROK2 4.50
ROK3 1.33
ROC1 15.6
ROC2 4.4

I'm using a battery that when fully charged it gives 3.8V. When I connect it to BQ and solar cells are present, the system starts and I can use the output of the Buck (3V) to feed a micro controller. All good. The problem is when the voltage of the battery reaches just below OV, i.e. 3.5V, the BQ simply ignores the voltage of the battery and keeps oscillating between ~ 2.5V and 3V. If I disconnect the battery from the circuit I can see the voltage is still 3.5V. I see VBAT_OK oscillating as well.

I am controlling the Buck with VBAT_OK and so when it's 0, the buck does not provide power to the micro controller. When the voltage of the battery is above 3.5V the whole system works perfectly. The micro controller either pulls 50mA from the Buck or is in standby and so it just needs 10uA. I'm switching between modes every 20 seconds. Also, when the strange oscillation is happening, if I put the Buck in ship mode, ie system load is 0, I can see VSTOR returning to the same voltage as the battery (3.5V).

Would appreciate if someone could give me some direction here as to what the problem may be. Many thanks in advance.

  • Can you please share your schematic? What is the input current at VIN_DC of bq25505? Can you provide scope capture of IL, VIN, VSTOR, ILOAD?

  • Hi Jing,

    My schematic is just like the example in the BQ datasheet, where my CSTOR is 4.7uF, C_Filter is the same as datasheet, and followed by another capacitor of 22uF. These are all in VSTOR. VSTOR then feeds the buck converter and the output is 3V (2.96V as per resistors). Buck schematic is also as per datasheet with 3 resistors doing the VOUT and the output capacitor is 47uF.

    Today I had some time to troubleshoot, and actually changed CSTOR from 4.7uF to 100uF because I though the current transient (given by the micro controller) I'm imposing in the output of my buck was causing CSTOR to instantly lose all charge. And it helped a little bit however it's still not good - the oscillation in VSTOR is gone, but VSTOR decreases like 100mV/second more or less, and so in a few seconds VSTOR goes from 3.6V to 1.8V (VSTOR_CHGEN). Lux wasn't perfect today I was seeing 600mV in VIN_DC. In this test the buck was always enabled. My question is... given VSTOR and VBAT are 3.6V with no system load, why doesn't VSTOR keep the same voltage as the battery when I apply the system load of 50mA? Why is it decreasing until it's 1.8V? Also the presence of harvesting power shouldn't influence at all here right?

    Unfortunately, I can't give you captures for the signals you asked because I actually don't have an oscilloscope available right now. 

    Thanks a lot for your help!

  • Jing, is it possible the battery is not "strong enough" when compared to CSTOR, ie the internal impendace of the battery is much higher than the one in CSTOR and so the battery cannot impose it's OC voltage? Also, I'm using a 100uF capacitor in parallel with the battery. Happy to share my schematic to you in private, if you don't mind - sent you a request. Thanks a lot for your help!
  • Here is how the IC operate. Start with an completed depleted capacitor on VSTOR, when an valid input is connected, the IC enters cold start. The cold start circuit's goal is to charge VSTOR higher than VSTOR_CHGEN so that the main boost charger can operate. Once the VSTOR voltage reaches the VSTOR_CHGEN threshold, the IC gos through a sequence listed on page 13 in the datasheet, and then enters the main boost mode. Once the voltage on VSTOR rises above VBAT_UV, the PFET between VSTOR and VBAT closes. VSTOR should be shorted to VBAT. As the voltage on VSTOR continue to rise above VBAT_OK threshold, VBAT_OK output goes hight (following VSTOR voltage). VSTOR/VBAT pin then wil be regulated at VBAT_OV when input as sufficient power.

    In your setting, VSTOR should be shorted to VBAT when VSTOR voltage rises above 2.3V. Do you see VSTOR voltage follows VBAT voltage after VSTOR rises above 2.3V? this will indicate if the PFET closes or not. When VBAT is shorted to VSTOR, depending on your input power, you may not have enough current from the input to support the load, then battery should be able to suppliment the load. Using I = Cdv/dt, where C = CSTOR, dv = 3 - 2.5V, and dt = the time fall from 3V to 2.5V. You will get the current that discharges the CSTOR cap.

    "VSTOR decreases like 100mV/second more or less, and so in a few seconds VSTOR goes from 3.6V to 1.8V (VSTOR_CHGEN)." This makes me think either your battery is discharge really fast or the PFET between VSTOR and VBAT is not shorted. How are are you soldering the RUV resistors? if you installed resistors>1Mohm, most of the new resistors using solder with flux, the residual flux can create parasitic, varying resistors in the 1Mohm range that are in parallel with your voltage setting resistors. If extreme cleaning with alcohol doesn't work for prototyping, try standing the resistors on their side (tombstone). For production, you would need to use a vendor with a board cleaner that can remove ionic contaminants.

    To further understand the issue, we will have to see the scope plots.

  • I suspect solder flux has created parasitic resistor on the VBAT_UV resistors and have reset your VBAT_UV to 3.5V. Can you remove those resistors, clean the pads and then reinstall the resistors on their side OR use 100x lower value resistors to confirm?
  • Jing, Jeff first of all thanks very much for your prompt input.

    Jing, yes I see VSTOR=VBAT after VSTOR>2.3V.

    ""VSTOR decreases like 100mV/second more or less, and so in a few seconds VSTOR goes from 3.6V to 1.8V (VSTOR_CHGEN)." This makes me think either your battery is discharge really fast or the PFET between VSTOR and VBAT is not shorted. "

    The battery is not getting discharged because if I remove it from the circuit and read the open circuit voltage, it's still 3.5V, basically the value the VSTOR should have as well when bat is connected to the circuit.

    Jeff, I'm using a prototyping service from a factory to assemble the devices but I doubt they're being careful about cleaning. Also, I have two different batch of boards with the sam behaviour which is odd - either the cleaning is poor on both, or the parasitic resistors are not the issue. However I will definitely re-solder them myself and see if that helps. And I'll also try using resistors 100 times below.

    I'll post my findings so everyone can learn from it in case similar issues are observed. 

  • A scope capture of VSTOR, VBAT, VBAT_OK, and OUT of the TPS part would help identify the issue as well. Basically, we need to see if VSTOR drops below VBAT. If so, then the PFET between the two pins is turning off because of VBAT_UV.
  • Jeff VSTOR definitely drops below VBAT. I can measure it with the multimeter. What could be the reason for that? Can it be a problem of impedances? My batteries are NiMH (series of three 1.2V). Initial CSTOR is a tantalum capacitor (T491A475K016AT). I'll try to find an available oscilloscope to provide you the scope captures.

  • If VSTOR drops below BAT then either the current being pulled from VSTOR is quiet large or the transient droop is below VBAT_UV threshold, causing the PFET between VSTOR and VBAT to open or VBAT_UV threshold is not where you think it is.