Because of the Thanksgiving holiday in the U.S., TI E2E™ design support forum responses may be delayed from November 25 through December 2. Thank you for your patience.

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.

BQ25121A: Functionality issues with the battery charger. Battery not charging via Charging IC

Part Number: BQ25121A

Hi,

We are using BQ25121AYFPT battery charger management IC. Our non-programmed Charging IC output is 2.5V and the programmed output is 3.3V We are facing issues of many kinds on our boards. To list down a few:

  1. First Case: The Board is not able to power up using the battery, but it is powering up via VIN. The battery is not charging as indicated by our boards and also when we check the voltages on the battery it is actually not charging. We indicate this via Our indicating led on the board to check whether the battery is charging or not. 
  2. Second Case: The Indicating led is showing that the battery is charging, but the battery level remains the same, and the battery doesn't charge. Here also, the board is not working with battery but only works with VIN, but the indicating led is showing charging here. 
  3. We try to set the LSLDO voltage to 3V, but we get 3.9V. Following are the parameters we set in the program
    1. charging current set 300mA get- 300 
    2. termination current set 1000 get- 1000 
    3. termination current state set true get- true 
    4. battery regulation vol set 4200 get- 4200 
    5. input current limit set 400 get- 400 
    6. battery Ublo vol set 2_2 V get- 2_2V 
    7. vinDpm vol set 4200 get- 4200 
    8. Vin Dpm state set false get- false 
    9. Set and Get SysOut state set-true get - true 
    10. voltage set-SYS_VOUT_3_3V get-SYS_VOUT_3_3V 
    11. Set/Get LsLDO state set- true get-true voltage set-3000mV get-3900mV 
  4. Following is the Power sequence we are following when we check on hardware via DVM

Step

System_OUT

LS/LDO

Power ON

2.48V

0V

LS_CTRL_RESET

2.48V

0V

Set_all the settings of charging IC as mentioned in Point no. 3

3.29V

0V

LS_CTRL_SET

3.29V

3.29V

LS_LDO_ENABLE voltage set

3.29V

3.29V

Here we can see a contradiction. When we check the LS/LDO output on DVM we get 3.3V, but in the program, after setting the parameters of charging IC, the LS/LDO output comes as 3.9V as mentioned in point no. 3 (k). We checked everything and we are unable to solve these mismatches. We have working boards as well, which are working on the above-mentioned conditions but in the due course of time, they get damaged at the charging IC end. 

Requesting your sincere help.

  • Hello,

    First Case: The Board is not able to power up using the battery, but it is powering up via VIN. The battery is not charging as indicated by our boards and also when we check the voltages on the battery it is actually not charging. We indicate this via Our indicating led on the board to check whether the battery is charging or not. 

    For this case, can you provide battery voltage as well as the status of the /CD pin? Additionally, when VIN is present but the battery is not charging, can you please share a register log during this scenario as well as VIN voltage, PMID voltage, and BAT voltage?

    Second Case: The Indicating led is showing that the battery is charging, but the battery level remains the same, and the battery doesn't charge. Here also, the board is not working with battery but only works with VIN, but the indicating led is showing charging here. 

    This seems similar to the previous case, can you please provide the same information? Additionally, can you describe how your indicating LED circuit works?

    Set/Get LsLDO state set- true get-true voltage set-3000mV get-3900mV 

    In order to change LSLDO voltage, you will have to disable the first LSLDO when the voltage is configured to a new value. This may be why you are getting the same value back. Please note that the LSLDO value is capped at 3.3V. So when a voltage above 3.3V is entered above that actually reflects Load Switch mode. In load switch mode, LSLDO voltage is not regulated. The LDO is used as a load switch so VLDO output will be equal to VINLS input. The default setting ("3900mV") actually means the device is in load switch mode.

    Best Regards,

    Juan Ospina

  • Hello Juan,

    Thanks for the suggestions and a prompt reply. We were able to solve the mismatch by resetting and then setting the LSLDO. Now when we are setting 3.0 V and we get 3.0V.

    Apart from this here are the details from Point 1 and Point 2. Im also curious to know whether you looked at the 4th point in the ticket I raised.

    First and foremost here is the register log you asked for.

    Register log when VIN is present but the battery is not charging:


        STATUS_AND_SHIP_MODE_CTRL_REG = 0x00,  /**< Status and ship mode control register memory location 0x00h */  = Hex:0x41
        FAULTS_AND_FAULTS_MASK_REG = 0x01,     /**< Faults and faults mask register memory location 0x01h */        = Hex:0x0
        TS_CONTROL_AND_FAULTS_MASK_REG = 0x02, /**< TS control and faults masks register memory location 0x02h */    = Hex:0x88
        FAST_CHARGE_CTRL_REG = 0x03,           /**< Fast charge control register memory location 0x03h */        = Hex:0xe8
        TERMINATION_PRE_CHARGE_REG = 0x04,     /**< Termination/Pre-charge register memory location 0x04h */    = Hex:0x6
        BATTERY_VOLTAGE_CTRL_REG = 0x05,       /**< Battery voltage control register memory location 0x05h */    = Hex:0x78
        SYS_VOUT_CTRL_REG = 0x06,              /**< SYS VOUT control register memory location 0x06h */        = Hex:0xfe
        LS_AND_LDO_CTRL_REG = 0x07,            /**< Load switch and LDO control register memory location 0x07h */    = Hex:0xd8
        PUSH_BUTTON_CTRL_REG = 0x08,           /**< Push-button control register memory location 0x08h */        = Hex:0xc0
        ILIM_AND_BAT_UVLO_CTRL_REG = 0x09,     /**< ILIM and battery UVLO control register memory location 0x09h */    = Hex:0x3f
        VOLTAGE_BASED_BAT_MONITOR_REG = 0x0A,  /**< Voltage based battery monitor register Memory location 0x0Ah */ = Hex:0x0
        VIN_DPM_AND_TIMERS_REG = 0x0B           /**< VIN_DPM and timers register memory location 0x0Bh */        = Hex:0x2


    /CD PIN STATUS (VIN is present but the battery is not charging:
    )-- "CD RESET"

    2nd Thing, the voltages in this condition are as follows (checked on DVM)

    PMID-  5.15v,
    VBAT-  4.08v,
    VIN-     5.15v.

    Thanks for your help in advance.

  • Hi,

    Im also curious to know whether you looked at the 4th point in the ticket I raised.

    Regarding this mismatch in voltage (3.3V vs 3.9V) this is because when the LDO is configured above 3.3V then it will actually behave in Pass-through mode (also called Load Switch mode). During this mode the LDO doesn't actually regulate to 3.9V rather it just outputs the same voltage as the input. In this case the input is 3.29V so the output is also 3.29V.

    CD PIN STATUS (VIN is present but the battery is not charging:
    )-- "CD RESET"

    Can you clarify, here you mean /CD is low voltage? If /CD is low while battery is present the device may be in HiZ mode which would disable I2C communications and reduce current consumption. This might explain the behavior that you are seeing as the device not powering on from BAT. Can you confirm if raising /CD resolves the behavior.

    First and foremost here is the register log you asked for.

    This log seems to indicate that the battery is charging and the device isn't seeing any faults. Are you able to measure current flowing into the battery if any or out of the input source? Alternatively, can you attempt to remove the battery and capture the waveform of VBAT? 

    The charger seems to indicate that charging is taking place, however you've mentioned that battery voltage is not rising. Can you provide charge current as well as the voltage and capacity of the battery that you are using to charge? 

    Best Regards,

    Juan Ospina