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 - Not Operating As Designed - Or Is But Not Consistent

Other Parts Discussed in Thread: BQ25504

Hello,

I have designed a circuit with the BQ25504 which is straight forward for setup, but as for the state machine inside, who knows as the datasheet is terribly confusing.

I am charging a battery with a solar cell. My setting resistors are the following:

Overvoltage: 4.273V

Rov2 = 4.22M

Rov1 = 3.3M

Undervoltage: 2.500V

Ruv2 = 4.22M

Ruv1 = 4.22M

Vbat_OK_Prog: 2.761V

Vbat_OK_Hyst: 3.738V

Rok3 = 3.3M

Rok2 = 5.11M

Rok1 = 4.22M

So when I use a power supply to ramp the voltage up and down to test, it works perfectly as designed. BUT...when I plug in a battery and run the rest of my circuit, and the circuit is slowly drain, using a 22mAH battery, the BatOK signal goes low (off), between 3.25-3.7V, but most commonly seen dropping out at ~3.5V area.

This testing is done with solar panels connected but are in office lighting so barely any(if any) charging. The solar panels are VERY small.  Not sure why the BatOK turns off so early when discharging slowly. I have tried everything...cleaning the boards, and so on. I am using 0201, 1% resistors, with clean layout, and no noisy components. My inductors is close but not that close...about a few millimeters away. 

The only thing I noticed is the drive strength for the BatOK signal is a mere 10uA..why is this so low? My BatOK signal look fine on the scope. I can't catch the transition of the failure as I do not know when it come, and my battery discharges slowly, and my circuit is extremely small. 

Does anyone have any idea why this would occur? It works fine when I ramp a supply (~0.2V/second), but when it runs with the battery naturally, it will cut out prematurely.

- I am using a load-switch which uses the BatOK signal to turn on power to the rest of the system. My Vstor is a 0.1uF, and a 4.7uF Cap. I did this to make sure my 4.7uF VSTOR Cap can charge effectively. 

Please help! =(

Thanks

-Peter

  • Here is a link of the schematic.

    Also, I removed each resistor and verified they are all exactly as stated.

    SCHEMATIC: http://i59.tinypic.com/5d18k4.jpg
  • All voltage thresholds, including the VBAT_OK threshold, are determined based on VSTOR not VBAT. There is a PFET between VBAT and VSTOR that only turns on when VSTOR > VBAT_UV in order to prevent overdischarge the battery. If you attach a battery to VBAT_UV when ~100mV < VSTOR < VBAT_UV, the PFET will not come on and so VSTOR will drain even if the battery is charged above VBAT_UV threshold. Can you provide a scope shot showing VSTOR, VBAT, VBATOK, triggering on VBAT_OK?
  • Hey Jeff,

    I am above Vbat_UV. My UV = 2.5V, my BatOK is set up to go low at 2.76V. When I use a power supply to simulate this, it works fine. but I am ramping this fast. But when I attach a battery and let the system drain normally (many hours), the VbatOK goes low too early...well before 2.76V..it is random...sometimes 3.25V, sometimes 3.65V, but typically ~3.5V.

    See this picture:

    http://tinypic.com/r/2ex7yo5/8

    Why is BatOK going low (0) at ~3.5V, where is the 3.5V coming from? It should go low at 2.76V. Battery will disconnect at 2.50V. If I use a supply I don’t have this problem but as soon as I connect up a battery and the system does it’s typical discharge (slowly), BatOK tied to the load switchcuts power at a random 3.5V. I have pulled off the resistors and verified they are correct. I also verified my calculations as shown also. My test scenario is hot plug battery, no light on solar cells.Battery connects. If it doesn't, then I shine a light on it and then it connects the battery. 

  • If the resistor values are correct, the only other time I have seen similar issues is from solder flux on the >1M resistors changing their value. If you lower all of the resistors by a factor of 10, do you have the same issue? Alternatively, you can try standing the resistors on their side to give less area for the flux to contaminate.
  • Hey Jeff,

    Thanks for getting back to me. I figured this could be the issue and I thought the same way. I already have those resistor divided by 10 (100K's range), and will be changing them out for verification.

    I did however clean the boards with alcohol and it didn't go away. However I did have a problen previously on one of the boards on the BatOK_Hyst value. I did clean for this and sure enough it went away.

    A few things I have noticed is that my inductor is close to everything...a few millimeters away. Also, the drive strength of the BatOK signal is a mere 10uA. If I had some sort of AC-Coupling, could this cause an issue? Have you seen anything like that previously?

    My original circuit is VERY small. It's about as small as humanly possible for the circuit. I also have a dev kit, which I will use first to dupplicate the issue and then switch them over. Are there other experts on this device perhaps you can mention to as well?

    Thanks,
    -Peter
  • The drive strength of VBAT_OK is intentionally low so due to the nano power design of the IC. I don't think the inductor is the problem. On some of my boards, I had to use an outside vendor to remove the flux in a board cleaner. Simply cleaning with alcohol did not work.
  • Hey Jeff,

    Does the simple fix of resistors into the 100K's range fix this? We are using this design in a nano power system. Our circuit is also VERY small...it's a flex circuit. How would you recommend tackling this issue?
  • Parasitic resistors from solder flux are in the 1MegOhm range so lower the resistors simply makes them less susceptible to the parasitics but will lower the bq25504's efficiency. If you can prove that is the issue, then you will have to use a board assembler who has a board cleaner that can wash the boards and then measure the wash water's ionic contamination.
  • Hey Jeff,

    Thanks for all the quick replies. I know of the resistor strategy, but what I am asking is if you have seen or heard of people dropping their resistors to the 100K's range does fix this? Or is the parasitic so significant you need to go into the low 100K's?

    Just want to make sure you have seen this work before I go risk destroying very expensive prototypes =/

    I doubt we will be able to clean or boards, they are quite fragile =( But we can give it a shot.

    Thanks,
    -Peter
  • Hey Jeff,

    The 100K's range resistor replacement for recalculing OV and UV and BatOK_Prog and BatOK_Hyst did not work. However it seems to have moved the random trigger point lower to ~3.25V.

    We have cleaned and cleaned. I have checked my layout(s)(prototype and dev kit), and I get the same results. I am just not sure what to say here but this needs to be escalated here. Are there FAE's avasilable to visit? This is a serious issue for us which needs to be resolved. 

    because this is dealing with BatOK, I am not even sure what to scope here..

    Please get back to me when you have time 

    Here is my exact test scenario:

    - Battery charged to ~3.85V, 22mAH battery

    - OV = 4.27V, UV = 2.50V, BatOK_Prog = 3.76V, BatOK_Hyst = 2.76V.

    - Solar cells have bright office lighting.

    - Hot plug battery, device connects battery, BatOK goes high, system runs.

    - Battery slowly drains, and BatOK stays high, and BatOK trails Vbat for active high as expected

    - BatOK goes low prematurely at ~3.25V

    - Current being pulled from the BQ25504 in this state with BatOK low fluctuates between 0.5 - 1.4uA.

    Thanks,

    -Peter

  • Jeff,

    I have sent you an email, which has a document I'd like for you to review when you can. I am sending this via email due to IP. We have an NDA in place with TI.

    Please review and get back to me when you have time.

    Thanks.

  • Hey Jeff,

    So with the new testboard, it seems like my issue of BatOK going low early is gone. The nly difference is the 2 circuits is the removal of the top ground pour, and this test board uses semi-gloss green soldermask, while my internal DK board and prototype both use flat black soldermask. I am looking for datasheets as we speak.

    I still have one outstanding issue to solve: When VbatOK is low (system off by load switch, switched off), and then starting to charge my system using a solar cell or using a current-limited supply to simulate a solar cell, my system turns on prematurely.

    Here is my test scenario/condition:

    BatOK_Prog: 2.76V

    BatOK_Hyst: 3.76V

    If I use a power supply for battery simulation, and increasing/decreasing, these settings work fine. However when I use an actual battery and charge my device, my BatOK_Hyst will turn-on early.

    Example: 

    Vbat = 3.2V (22mAH)

    VIN_DC: Supply, 2.0V, 10mA current limited.

    - Without VIN_DC suppply turned-on, BatOK = low (0), as expected

    - Now I turn on Supply, device starts to charge but not efficiently as the MPPT has not come around to recalculate. Vbat slowly increasing as expect.

    - MPPT stops boost circuit, samples VDC_IN (open circuit), and then adjusts...When thjs occurs, my BatOK will go high (1), even though the battery is still in the 3.25-3.3V range. If being charged via boost circuit, the voltage applied to Vstor(Vbat), is around 3.4V. Now my load is connected since my BatOK went high (1), and enabled my system load switch. Now my battery is again being drained as the net power from the MPPT cannot supply all of the system power.

    -  And around and around I go in the loop.

    My BatOK should not turn back on until my Vstor(Vbat), is back at 3.76V from charging it up. Why does it cut on early? Only thing I can think of is that the switching noise (saw-tooth wave is much higher than the actual DC component of Vstor), and this triggers the internal comparator to turn activate BatOK? If so from what I can see this is a bad design. 

    Any ideas here?

    Thanks Jeff,

    -Peter

  • Can you provide a scope shot of VBAT_OK, VRDIV and VSTOR, triggered on VBAT_OK going low?  Since VSTOR is only measured every 64ms in order to determine the state of VBAT_OK, it is unlikely the boost switching ripple will consistently cause a false VBAT_OK signal, assuming there is a battery with at least 100uF of equivalent capacitance at VBAT to absorb the ripple.