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.

BQ25723: Current is not constant during CC Charging Phase

Part Number: BQ25723

Hi TI Support,

I am working with the BQ25723 for a battery charger project. The battery is a 3S LiPo and the schematic of the Battery Charger follows the main indications provided by the TI documentation. The Battery Charger always works in Buck-mode (because VIN always greater than VBAT)

I notice that in some conditions, the charging current is not constant during the CC (Constant Current) phase as it should be. In particular, I noticed that:

  • If the ChargeCurrent (03/02h) is set to values up to 6.5A, then the charging cycle is ok (charging current is normally constant during CC).
  • If the ChargeCurrent (03/02h) is set to values greater than 6.5A, then the real measured charging current is "clamped" to lower values. In particular I notice that:
    • Charging current decreases for higher VIN (aka VBUS)
    • Charging current decreases for lower VBATT
    • Lowest current clamping is for VIN_max AND VBATT_min for duty-cycle ~50%

The data above make me think about a "mechanism" proportional to the max current ripple (in a Buck-mode, ripple is maximum for duty ~0.5 for VIN_max and VOUT_min).

I wonder whether the BQ25723 has some HW / FW protection that may produce a clamping of the charging current.

 

As further info:

  • IIN_DPM (25/24h) is set to an high-enough value that does not limit the current;
  • ICO mode is disabled;
  • Input / Output capacitance meet the minimum effective requirements.

Thanks,

Regards

Alberto

  • Hello Alberto,

    Please note the below Maximum Current Limit and compare against your setup. 6.35A seems close to what you are observing as a cutoff point. If your setup is matching one of these rows then you could be hitting IINDPM even though you have it set higher in the register.

    Thanks,
    Khalid

  • Hi Khalid,

    thanks for your answer. I can confirm on my design, I have R_IADPT=169 kΩ and RSNS_RAC=1b.

    Moreover, the value 6.5A is referred to the output charging current; for Duty-cycle close to 0.5, the output current starts clamping for I_IN ~ 3.5A and the value increases for higher Duty-Cycle. Therefore, it seems being something more related to the Duty/Ripple than the I_IN.

    Thanks

    Alberto

  • As further info:

    • PROCHOT/ pin is never asserted during clamping
    • I tried to short RAC (adapter-side shunt resistor) and the current limitation disappears: charging current is constant all over the VIN / VOUT range

    This makes me think about a protection or a mechanism linked to the input current reading.

    Alberto

  • Hi, Alberto,

    The IINDPM will limit the input current to 6.4A. 

    Regards,

    Tiger

  • Hello Alberto,

    What setup do you have on ILIM_HIZ? You mentioned you are following TI layout recommendations, and the EVM is configured for 3A limit (2.2V setting). 

    If EN_EXTILIM = 1 then the charger will use the lower of ILIM_HIZ and IIN_HOST setting as an input current limit. You can disable the EN_EXTILIM to control the Input Current limit using IIN_HOST.

    Khalid

  • Hi Khalid,

    I am currently using EN_EXTLIM=0 so I am disabling the HW resistor divider. On the IIN_HOST register, I wrote a current value >10A (using the 5mR shunt) that should not clamp during the normal working point.

    Alberto

  • Hi Tiger,

    I am using the 5mR shunt so the maximum input current should be 16.256A

    On the current design, I am using a value on IIN_HOST higher than 10A that should not limit during the normal working point.

    Alberto

  • Hi Alberto,

    Just a clarification to your comment 16.256 A should be the maximum charge current, not the maximum input current. The maximum input current is 10A with the 5 mR sensing resistor.

    Can you confirm the IIN_DPM setting you end up with (this could be different than IIN_HOST setting) and also check the ChargerStatus register (21/20h) for any anomalies?

    Thanks,

    Khalid 

  • Hi Khalid and Tiger,

    I'm on Alberto's team. The value read from IIN_DPM register during charging is 0x6400, which translates into a 10A actual input current limit with a 5 mOhm input current sense resistor. No alert flags in either ChargerStatus or ProchotStatus registers are set when current clamping is observed. Looks like it's caused by something else.

    Could you suggest what else we could explore to move forward with our investigation? Let us know if you'd find our complete register configuration useful.

    Puzzled by the fact that charge current gets clamped for higher input voltage values (at Vext=19V the target current of 7.5A gets clamped at ~6.9A but at Vext=12V we get full 7.5A) we had a wild speculation that clamping may depend on the operating mode of the charger (i.e. buck, boost, buck-boost) but we're not sure how to test this hypothesis since the operating mode transition is completely opaque to us. Any suggestions would be highly appreciated.

    Thanks,

    Vasily

  • Hello Vasily,

    Thanks for the updated information. I will discuss more with my colleagues on things you can try to debug. A couple notes:

    You can probably monitor LODRV1/HIDRV1/LODRV2/HIDRV2 to check the transition point for the operating mode per below:

    Also, this is a basic question I meant to confirm earlier, but have you turned off the watchdog timer while debugging this? Upon timeout a lot of the settings including IINDPM will reset.

    Thanks,

    Khalid

  • Hello,

    Have you had any further progress debugging this issue?

    We confirmed on our EVM that we are able to source 12A of charge current and 9A input current. One suggestion from my colleague was to completely disable IIN_DPM using ChargeOption0 (00h Bit 1 - EN_IIN_DPM - set to 0) to rule this out.

    Khalid

  • Hi Khalid,

    Thanks for the heads-up. As a matter of fact, we've made some progress, I wanted to post an update tomorrow.

    IIN_DPM has nothing to do with the current clamping, as shown by the permanently reset IN_IIN_DPM flag during charge current clamping and EN_IIN_DPM having no effect on clamping.

    I stumbled upon the IL_AVG average inductor current clamping configuration in the ChargeOption3 register, which in our case remained at the default value of 15A, and observed that clamping disappeared as soon as the setting was disabled. This, however, simultaneously introduced significant errors in Vbus, Iin, Ibat measurements reported by the charge controller. Scoping waveforms of controller outputs, Vsys and Vbus power rails I noticed substantial ripple on the latter both and sine-wave-like instability on the former (instead of expected constant duty cycle) at 8.6A charge current with clamping disabled.

    This eventually led my teammates and me to discover section 10.2.2.1 in the datasheet that emphasizes the critical nature of a tuned filter around the input current shunt. Our working hypothesis is that the filter configuration we copy-pasted from the reference design is inadequate and leads to ringing across the shunt at high charge currents.

    I have several questions about this:

    * Can you provide guidelines / suggestions on tuning this filter beyond those mentioned in the datasheet? Is there a online simulator we can use to calibrate the values of passives?

    * Can this ringing be avoided by changing the software configuration of the charge controller? For example, would setting ACX_OCP to 0 help?

    * Do you have any other suggestions for tackling the issue?

    Thank you very much in advance and kind regards,

    Vasily

  • Hi Vasily,

    Can you share the schematic? I will answer the rest of the questions but I would like to have a look at the schematic.

    Khalid

  • Hi Khalid,

    Do you require the whole schematic of the charge controller circuit or would a section with the input current filter be sufficient?

    Vasily

  • If you can share the whole schematic it would help as I could look for other issues.

  • I reached out to your email address.

  • Hi Khalid,

    I haven't heard from you since I emailed in our schematic.

    In the meantime, I added a 10nF capacitor designated as C11 and DNP in the BQ25723 EVM user guide (see schematic on p.18) to our circuit and observed that it stabilized the charge controller during charge at 8.6A across the entire battery voltage range. Our LTSpice simulation shows that without this cap the filter cutoff frequency is above 900kHz, which is above the 800kHz that our controller switches at and likely doesn't adequately filter out the resulting ringing over the input current shunt. The value of 10nF is probably too small since it moves the cutoff frequency to ~750k, which most likely explains why the controller becomes unstable again when the Vext is reduced from 19 to <18V during charging. I will test 22nF tomorrow.

    Configuring ACX_OCP -> 0 also helped stabilize the controller in certain cases because it increases the range of input current that can be read and likely prevents saturation at high charge current.

    At this point I'd appreciate a sanity validation of the steps we took so far. Perhaps adding the C11 cap and resetting ACX_OCP are half-measures to solve the root cause of an issue we're not aware of. Please let us know what you think and whether you know a better solution.

    Also, I'd appreciate if you could comment on our schematic and if any other parts of our charge circuit look off to you.

    Kind regards,

    Vasily

  • Vasily,

    Responded via email. 

    Thanks,

    Khalid

  • To document our findings for future generations, I would like to share that we found the following two errors in our design to cause the described failure mode:

    1. Inadequately tuned low-pass filter around the input current shunt:
      • Originally, we copy-pasted the reference EVM design, which has various filters tuned in one-size-fits-all fashion that works for many less demanding applications than ours.
      • We had to lower the cutoff frequency of the filter by increasing the R11/12 resistances, which stabilized the controller throughout the relevant input charger voltage and battery voltage ranges.
    2. Insufficient input (VEXT) capacitance:
      • In certain scenarios when controller would go unstable, we'd also observe significant ripple in the range of 17-19 kHz on various signal waveforms (controller outputs, inductor current, voltages).
      • Thanks to Khalid, we realized the charge controller was overloading the power supply during instability and had to add another 33 uF cap on the VEXT rail.

    Huge thanks to the TI folks for helping us figure this out.

    Cheers,

    Vasily

  • Hi Vasily,

    Thanks for the follow up and happy to help!

    Khalid