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: why does my energy harvester not work? What am I doing wrong?

Part Number: BQ25504

Dear TI Forum,

I've made a custom PCB with the BQ25504 energy harvester IC. I use this IC to charge a small LiPo battery. On top of that I have the XB5353A one cell Lithium protection IC. Currently I have tested the PCB while I power it with a USB, all the circuitry seems to work (to power an ESP32, some LEDs and an E-Paper). This is done with a simple FET:

Now I'm trying to power the circuit by a one cell Lithium Ion Battery that is charged up to 4.01V and a 2V solar panel. The BQ25504 datasheets provides a calculation sheet table for all the necessary values for cut-off voltages, under-over voltage etc, I've used these values:

Basically

  • Vbat overvoltage: 4.2 V

  • Vbat OK (output signal): 3.58 V

  • Vbat undervoltage: 3.27

  • For the solar panel the MPPT voltage 2.23V, with the open circuit voltage 2.76V

I've used the closest 1% resistor values. This gives me the following BQ25504 schematic with all the necessary resistor values:

And here the XB5353A LiPo protection schematic part:

And the solar panel input:

This is all the circuitry I have to power it using Vbat. Now when I disconnect the USB. Connect the 4.01V LiPo battery and the 2V solar cell, nothing happens. I measure on the Vstor/V_SOLAR_OUTPUT around 0.8V to 1.2V that is going up and down while I expect around 4.2V.

Now I've been running a lot of tests and in some very rare cases when I'm just constantly plugging in/out the battery and solar panels the voltage on Vstor (V_SOLAR_OUTPUT) suddenly jumps from around ~1.5V to 4.05V and the battery is able to power the circuit! I'm still unsure if this 4.05V is the direct battery voltage, or the supposed 4.2V that seems a little lower. I can then unplug and plug in the solar panel while the battery still maintains to power the circuitry. I am clueless at this point. 

What could cause this issue? Have I misinterpreted a datasheet or maybe a mistake in my schematic?

Thanks for any help!

  • Hi,

    The schematic looks okay unless you plan to operate without a battery.  If no battery, then a large capacitor (>=47uF) on BAT is highly recommended.  

    This charger does not support battery hot plug.  The battery must be attached when there is no input power and the VSTOR and VBAT capacitors are < 100mV.  

    Based on what you are seeing, it appears that your light source is on the edge of having enough power to get the IC to exit cold start (VSTOR>1.9V).  Is there a load VSTOR?  Can you provide oscope shots similar to below and I can provide more insight?

    also, for regulation point issues, please review datasheet section 11 about PCB layout regarding 0.1-0.01uF cap placement and parasitic resistors from solder flux.

    Regards,

    Jeff

  • Hi Jeff,

    Thanks for your reply! My battery alone should be enough to power my circuit (for testing purposes). I indeed have a load attached to the chip that is always on. The load is an ESP32 WiFi microcontroller that immediately turns on. Could it be that this is asking for too much?

    To try it, I have a battery connected, nothing happens. I power my circuit with the USB (I have a FET that overrules the battery when a USB is attached), I then remove the USB and the battery is able to power the circuit by itself, great! It seems indeed maybe that the load may be to heavy for the cold-start? The battery itself is easily able to power the load at least, for testing I'm using a 3.7V 1100mAh, which is more than sufficient. I have tried with a solar panel attached and not attached and it gives the same results (as expected).

    I see now in the datasheet that it is recommended to add a P-FET between the load and VSTOR and connect VBAT_OK to the gate as a signal. I'm wondering if this solution might resolve my issue or will still ask too much to overcome the cold-start. Since I don't understand how the battery itself does not have enough power to overcome the cold-start (assuming that's the issue), since it should be able to overcome the cold-start all by itself in terms of power delivery. I also wonder if VBAT_OK will stay on if the battery is between VBAT_UV and VBAT_OV to power the load. If it only does between VBAT_OK and VBAT_OV, this solution won't work for me. 

    Another thing that does concern me though is that the voltage I measure on VSTOR is around ~4.0V, it seems to simply match the exact battery voltage, while I expect 4.2V there. Is something wrong here?

    I currently do not have the proper tools (scope and adjustable power supply) to properly test this. I hope to try at work with the proper tools later in the following ~2 weeks, but wanted to share this finding with you already. 

    As for the layout I've exactly followed this datasheets layout.

    Thanks for any help!

  • Hi,

    Cold start can't drive a resistive load.  If you attach a battery that is charged>VBAT_UV setting, then the PFET between VSTOR and BAT should turn on, as long as VIN_DC, VSTOR and BAT are close to GND at battery attach.  Then the charger will exit cold start.

    Isolating the load with external PFET is the best option if your application requires operation when no battery is attached.

    Regarding the regulation error, it is likely the parasitic resistance in the 1-Megohm range formed by residual solder flux.

    Regards,

    Jeff

  • Thank you once again Jeff. I will make these changes and report back later if it worked or not!

  • Hi Jeff once again. I've done some more testing with proper equipment and something seems wrong.

    The setting is as follows: I power VBAT with a variable power supply (but also tested with a LiPo 3.7V @ 1100mAh), VIN_DC is powered with a variable power supply as well. The circuitry is able to turn on and run on the VBAT power supply, or a real LiPo cell charged at 4.0V after I'm able to exit the cold-start by powering the circuitry with a USB first.

    Now what's interesting is that VSTOR seems to output the exact voltage as VBAT, with or without a solar cell connected. I've been playing with the variable power supply between 3.3V (my UV) and 4.2V (my OV) and VSTOR = VBAT. Below UV the device turns off, as it should, however above OV the device bumps back from 4.25V to ~3.9V but stays on.

    When I simulate a solar cell that is able to output 2V @ 25mA consistently (this won't work with an actual solar cell), the output on VSTOR becomes 4.1V. Then when I disconnect the simulated solar cell, VSTOR = VBAT again. So the chip does seem to do some boosting here. 

    I've measured with an oscilloscope VSTOR (always yellow), LBST (green 1 & 2) and VIN_DC (green 3). The graphs don't match the graphs from its datasheet, but I'm not sure what is going wrong here. VBAT was 4.0V here, and so is VSTOR. 

      (LBST green)

     (LBST green, same as above but zoomed in)

     (VIN_DC green, an actual solar cell)

  • Hi, 

    VSTOR should be connected to VBAT through an internal PFET when V(VBAT)>VBAT_UV.  The PFET has a high RDSon (close to 1 ohm) so if a load on VSTOR pulls current from VBAT, there will be a voltage drop.  When the PFET is closed (i.e. V(VBAT)<VBAT_UV, its body diode allows current flow from VSTOR to VBAT but the VBAT voltage will be Vdiode=0.6V below VSTOR.  

    Your LBST does not look correct.  It should be more of square wave.  Also, if the input source is high impedance, then VIN_DC should drop to the MPP while the boost converter is switching.  

    Regards,

    Jeff

  • Hi Jeff, thanks for your response. Do you have any suggestions what I should change in my circuit, or things I should measure/try out? I'm clueless at this point. 

    About the voltage drop, I assume this will be a relative small voltage drop? I expect VSTOR to be at least somewhat close to the set 4.2V, not to be 3.5V when VBAT is also 3.5V Slight smile, otherwise the chip wouldn't be suited in an application to charge a LiPo battery, so there is probably going something wrong in my case.

  • Hi Theagainmen,

    Since VSTOR is connected to VBAT through a PFET switch that is either or off (not providing any regulation), if a big capacitor or battery at VBAT is at 3.5V then VSTOR will be at 3.5V.  As the boost converter dumps current into VSTOR, tied to VBAT through the PFET, VBAT and VSTOR will rise to the regulation voltage.  If there is a load on VSTOR that is pulling high current, that load is prioritized and the battery will not charge and could discharge. 

    Regards,

    Jeff

  • Hi Jeff,

    Thanks again. I've been finally able to add a PFET switch in between the load connected to an inverted VBAT_OK signal. Sadly the VSTOR voltage stays the exact same voltage as the battery (3.7V @ 1100mAh) and not the wanted 4.2V, even with the load manually disconnected. So here is already something wrong and I can't figure out what. 

    For this VSTOR = VBAT voltage, it doesn't seem to matter whether I connect a solar panel (2.0V @ 12 mA) or not.

    Next to that, when the load does get switched on, everything seems fine (except for the VSTOR=VBAT voltage) and the moment WiFi gets turned on VBAT_OK goes low, it seems to pull too much current, is there any rough estimated max current for the BQ25504? My load is around 200-250mA at 3.3V. I can't find anything about it in the datasheet. My battery is powerful enough at least to power the load. 

  • Hi Theagainmen,

    The charger is discontinuous mode, PFM boost converter.  So, like all boost converters and especially one in DCM, there is no easy formula to compute exact output power so we have use efficiency estimate and power balance.  The max average input current possible at 50% duty cycle is Ipk=230mA typical divided by 2 so 115mA.  Using efficiency power balance eff=Po/Pin where you get the efficiency estimate from the datasheet curves.  With a 2V solar panel and 115mA, Pin = 230mW.  The output load is over 650mW.  So the charger cannot provide this power constantly.  But if you only turn on the load periodically and charge the battery in between, the BQ25504 might work for you.  The link below has a calculator to help determine the size of battery needed for a given periodic load.

    https://www.ti.com/lit/zip/sluc462

    Regards,

    Jeff

  • Hi Jeff,

    Thanks for this calculator, I will check it out! I'm not expecting the solar input to supply enough current, but I have a battery that is powerful enough on itself. I see that the input power from the solar panel is max at around 115mA, but I actually mean the VSTOR output current, that is also able to use the battery power. My system is in standby mode for all day, except for 15 seconds. During these 15 seconds I expect the battery to supply most (almost all) power to the system, the solar panel is then used to slowly charge the battery over the day. 

    Do you also have any clue on the VSTOR = VBAT voltage, I expect VSTOR to always be 4.2V (also charging voltage), this is with load disconnected, so it's not the load that pulls too much current. 

  • Hi Theagainmen,

    If the load is disconnected then VSTOR and VBAT should be at the VBAT_OV resistor value setting eventually.  If not, then either the 0.01-0.1uF VSTOR bypass capacitor isn't placed close enough to IC VSTOR and GND pins and the switching noise is changing the regulation value.  Or, the solder flux has formed parasitic resistors across your resistors and changed their effective values as explained in the layout section of the datasheet.  If you remove the VBAT_OK resistors, clean the board then replace them standing on their edge to reduce surface are for parasitic resistor, does VSTOR get to 4.2V? 

    Regards,

    Jeff

  • Hi Jeff, thanks again.

    The bypass capacitors are placed directly next to the IC, I have included my PCB layout for you so you can check yourself. Maybe you spot something very wrong or maybe something I could improve (but doesn't cause the issue). Any feedback is welcome Slight smile

    3D view

    PCB layout (electrical schematic is in first post in this thread)

    Due to the small component sizes I cannot easily test your last suggestion without a (big) chance of messing up my PCB, since I do not have the proper SMD tools here, the board was assembled in a factory. 

    I've cleaned the board and removed the solder flux around all the resistors, it does not change the behaviour. With the load disconnected I still measure the battery voltage directly on VSTOR. 

  • Hi Theagainmen,

    Your layout looks okay.  I suspect it is solder flux under the resistor.  We had this same issue with our EVMs and had to move to a different vendor who cleaned the boards much more thoroughly.

    Regards,

    Jeff

  • Hi Jeff, 

    Thanks for your reply again! As I'm thinking the whole process through I have doubts whether I fully understand what is going on, so I thought I might share.

    When charging a LiPo battery, you can't measure the actual applied ~4.2V voltage, rather you measure the actual battery voltage that you should slowly see increasing. To test this I applied a 2.5V input source on VIN_DC and measured VBAT with no battery connected, it outputs 4.08V!

    The moment a real LiPo is connected, there is no way to actually measure this 4.08V, is there? Since this voltage will be used to charge the battery and will thus 'collapse' to its battery voltage that you should see slowly increasing.

    On the other hand I doubt, even with this, my board is correctly working. Since if I connect a tiny solar panel (so not a power supply this time) from 2.0V and constantly shine a light on it, without a battery connected, VBAT won't go any higher than 1.0V (contradicted to the previous 4.08V). Note that all these tests are with the load disconnected.

    I hope what I say makes sense to you, altough the overvoltage shutoff didn't seem to work anyway, so that might yield back to the flux under the resistor issue. I've now used alcohol and a small brush to clean the board, I've done this a few rounds and made images with a macro lens to see if it's clean and it does look all clean now. Do you have any more tips I could try to clean it?

  • Hi Theagainmen,

    To prove my theory about the solder flux, you can look at two things on the scope:

    1.  If LBOOST pin stops pulsing when the VSTOR stops rising 

    2.  If VRDIV is correctly measuring the VSTOR voltage (first pulse below) but the second pulse is not 2/3 of the VBAT_OV setting.

    Regarding attaching a battery and not measuring 4.2V, I assume you mean that you attached the battery at VBAT but VSTOR was less than 4.2V?  If so, first, you can only attach a battery when VIN_DC, VSTOR and VBAT <100mV, i.e. you can't hotplug a battery.  If you do then the PFET between between VSTOR and VBAT does not close.  If the PFET is closed, with its 1 ohm max possible Rdson, the voltage at VSTOR will be VSTOR=VBAT-Iload*RDson.  If you have a 200mA load, then VSTOR will be 4.2V-0.2A*1ohm = 4.0V.

    Regards,

    Jeff

  • Hi Jeff, thanks for your reply. 

    I'm not able to currently run tests with the scope, hopefully later. I have been running other tests however with a 120mAh 3.7V battery. With a solar cell connected 2V@35mA it is able to charge the battery! It only does this in full sunlight or when shining a bright light directly at the cell. When I disconnect the battery and measure VSTOR only thén it becomes ~4.1V (~VBAT_OV) in full sunlight or bright light, even though it should also do this when the cells voltage is >0.3V (after cold start), right? The voltage of the solar cell is around 1.0V-1.8V in cloudy weather, which should be sufficient for the harvester.

    I did another good clean of the PCB with alcohol, I have attached some images (6 images) of the components so you can check yourself if this is indeed causing the issue, or maybe if it looks good/acceptable.

    Very happy already that it does seem to actually charge, one step in the right direction :). 

        

        

  • Hi Theagainmen,

    Good to hear.  The converter doesn't exit cold start until VSTOR>1.9V.  Cold start circuit needs at least 600mV not 300mV to get VSTOR>1.9V.  The boost converter is powered by VSTOR>1.9V.

    Regards,

    Jeff

  • Thanks, I misunderstood that part.

    Even with the solar cells 1V > 600mV it is only able to charge VSTOR up to 1.2V. Once in full sunlight VSTOR does get above 1.9V and jumps to ~4.1V indeed, however the moment that solar cells goes back to ~1.2V (out of full sunlight) VSTOR collapses right away too, it should keep VSTOR at VBAT_OV then right (no load, no battery connected, exited cold start)?

  • When VSTOR>1.9V, the charger itself consumes ~300nA from VSTOR at room temp (more at higher temps).  So if there is no battery and only a small cap on VSTOR, the cap discharges quickly.

    Regards,

    Jeff

  • Hmh thanks, how can I then verify that my battery is still being charged? With the battery connected to VSTOR I can only measure the battery's voltage. 

  • You have to monitor the voltage and see that it is not decreasing.  If you are asking how to know if the charger is harvesting, you can monitor the LBOOST voltage for a square-ish switching pulse.

    Jeff

  • Thanks, I will do that! Soon I should be able to use a scope again.

    1. Just to make sure, did the images from my PCB from a few minutes earlier ring any alerts? Or does that look ok/good?

    2. And what could be a reason that VSTOR is not able to charge up to 1.9V, even with VIN_DC >600mV.

  • Regarding 1, the boards looks good.

    Regarding 2, if the battery is attached at VBAT (or VSTOR), the cold start circuit has to charge both the VSTOR capacitor and then, through the internal PFET's body diode, the battery at VBAT if VSTOR is not shorted to VBAT.  The cold start circuit is very inefficient and if there is any resistive load on VSTOR, it will take all of the input power.   The internal PFET doesn't close until VBAT reaches the VBAT_UV setting so the charger can't get can help from the battery until VBAT>VBAT_UV.  

    Regards,
    Jeff