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.

TPS65721: How to detect Battery Low?

Part Number: TPS65721
Other Parts Discussed in Thread: , TPS3808

Hi,

I would like to detect battery low level event. I am using a 3.7V rechargeable coin battery. The datasheet says "If the voltage on the BAT pin remains above VLOWV, it indicates that the battery is still connected, but has discharged". Moreover the event that signals battery low level is given by internal battery voltage comparator (section 8.3.10.3 of datasheet), but it works for Li-primary battery (CH_EN=0), not for rechargeable batteries.

So how can I detect a battery low level?

Thank you!

Amilcare

  • What are you powering with TPS65721 other than the battery?

    I would like to be sure that we make the correct PMIC recommendation before going into more detail.

  • Hi Brian!

    I am powering an nRF52 microcontroller (with Bluetooth communication) and 8 analog sensors. Everything works fine, but I want to blink a LED when the battery is low.

    Thank you,

    Amilcare

  • Amilcare,

    Thanks for the additional info. I am on international business travel right now, so I will respond to this question with a detailed answer as soon as possible after I return to the office.

  • Amilcare,

    I had some time to look into this, and I think that the answer is quite simple:

     Register 06h (CHGSTATE), bit 4 (CH_PRECH) == 1b when the battery is in pre-charge state, which generates an interrupt in register IR1 (11h), bit 4 when the PMU enters the pre-charge state

    The battery charge will be in the pre-charge state when VBAT < VLOWV = 3.0V typical

    You are using a rechargeable battery, and the default state of the CH_EN pin for TPS65721 = 1b. Charging will be enabled by default, so you do not need to worry about the case when CH_EN=0b.

    So, when CH_PRECH ==1b then you can use GPIO from MCU to blink LED to show that battery is in pre-charge state (VBAT < VLOWV).

    You can also blink the LED when CH_CC_CV bit == 1b, which indicates that the battery charger is in constant current or constant voltage operation (fast-charge mode, or VLOWV < VBAT < VBAT(REG)

  • Hi Brian,

    thank you for your answer and sorry for my delay in answering.

    I think the precharge phase is valid only when  the battery is charging. I need to detect low battery level without any supply at AC input.

    I tried to read CH_PRECH register and it is set to 1 also when VBAT is above the VLOWV, and in some cases it isn't set to 1 when it should be (VBAT<VLOWV).

    I am thinking to use the information written in paragraph 8.310.3 (Internal Battery Voltage Comparator), but I don't know if I am doing well.

    Thank you,

    Amilcare

  • I think I see what you mean. In section 8.3.10.3, the first sentence does not make sense:  "An internal comparator supervises the battery voltage at pin BAT when the device is configured for Li-primary battery (CH_EN = 0),"  Why would it matter if the Charger is Enabled or Disabled for this function to work? I do not know.

    To use the internal battery voltage comparator, you need to do the following in the CHGCONFIG2/3 registers:

    • Pick a voltage to monitor. Set VBAT1..VBAT0 accordingly: for example, VBAT[1..0] = 11b = 2.5V 
    • VBAT_COMP_EN = 1b, battery voltage comparator for Li-primary cells enabled
    • When VBAT_COMP = 0b, the battery voltage is above the threshold. When VBAT_COMP = 1b, an interrupt will be generated as long as VBAT_COMP_EN = 1b (comparator enabled) which indicates that the battery is low.
    • The interrupt is also named VBAT_COMP, bit 1 in IR0 register (not in CHGCONFIG3)

    Let me know what you are doing differently and if it is related to the confusion first sentence in section 8.3.10.3

  • Yes, thank you Brian, that was one of my questions.

    Just in a few words, I have a board with a 3.6V rechargeable coin battery and I have to detect when thw battery is low.

    The problems I am experiencing are the following:

    1. The precharge state, i.e. when the battery is below VLOWV, is detectable only when the charging is active. So I don't need it since I have to detect low battery level in order to supply and charge my board
    2. The battery voltage comparator can detect a maximum threshold voltage of 2.5V and I don't need it since the battery is already died at 2.5V, so I should be able to detect low level battery before.

    I am not understanding how I can detect battery low event with this kind of IC.

    Amilcare

  • Amilcare Barca said:
    The precharge state, i.e. when the battery is below VLOWV, is detectable only when the charging is active. So I don't need it since I have to detect low battery level in order to supply and charge my board

    This problem statement does not make sense to me.

    CH_EN = 1b by default, meaning the charger should be enabled all the time. Under what circumstances would you change CH_EN to 0b?

    from VBAT = 2.5V to VBAT = 2.9V, the battery charger should automatically enter pre-charge mode and begin charging the battery with the pre-charge current.

    The VBAT_COMP comparator is intended to prevent the battery from going below a voltage at which it will become impossible to re-charge because it begins to degrade. This would be very helpful if CH_EN = 0b, because when the charger is disabled you would need to know when the battery is dropping below a critical, dangerous threshold for the battery chemistry.

  • Brian Berner said:
    CH_EN = 1b by default, meaning the charger should be enabled all the time. Under what circumstances would you change CH_EN to 0b?

    I don't change CH_EN to 0b. It is set to 1b.

    Brian Berner said:
    the battery charger should automatically enter pre-charge mode and begin charging the battery with the pre-charge current

    The battery charger enters in pre-charge mode when the charging begins, that is when I connect the power supply to AC pin. If I don't connect the power supply to AC pin the pre-charge mode won't begin.
    For my application the power supply isn't always connected but I connect it only when the battery is low. If the battery isn't low I don't use the charger... it's like a smartphone. I charge the battery only when the battery is low. But I have to detect battery low level.

    I am thinking that this kind of IC doesn't have this function.

  • Amilcare,

    Thank you for explaining your application in more detail.

    Amilcare Barca said:
    For my application the power supply isn't always connected but I connect it only when the battery is low. If the battery isn't low I don't use the charger... it's like a smartphone. I charge the battery only when the battery is low. But I have to detect battery low level.

    I will test this use case in the lab using the TPS65721EVM-516 and see if there is any way to implemented your intended feature-set.

  • Amilcare,

    Considering that the VBAT_COMP is not useful (because it has a maximum threshold of 2.5V (below Li-Ion end-of-discharge value, 2.8-3V), I was looking for another way to accomplish your goal using the registers or simple hardware modifications.

    The first workaround I thought of is using the THRESHOLD --> RESETz pins: 

    On the TPS65721EVM-516, I re-wired THRESHOLD so that it connects to VBAT (R13 turned 90 degrees, then wired to the high-side pad of C4). R23 was changed to 23.7kOhms. Since there are diodes on the PCB, I also moved 0-Ohm resistor R24 to R25 (VPULLUP = VSYS instead of VLDO1) and used a wire to jump JP1 (near D2) to RESETz. Now, I have a red LED that turns on anytime VBAT < 2.98V. Due to hysteresis, it does not turn off until VBAT > 3.14V, which means the LED would turn on when the battery needs to be charged.

    Another workaround to fix your situation would be to add a Supervisor.

    For example, the TPS3808G30DRVR is a variant of the TPS3808 supervisor with a 3.0V nominal (2.79V threshold) voltage in a 6-pin WSON package. The TPS3808G33 version has a threshold of 3.07V if you think 2.79V is too low. the input supply range for VDD is 1.7V, so this product will work well below the usable range of your battery voltage. With this device, the BAT pin would be connected to both VDD and SENSE pins of the supervisor, and RESETz would be used to turn on the "low battery" LED.

    The only other possibility would be the VBAT/TS_OUT mux:

    The TPS657201 and TPS657202 versions of the PMIC has an multiplexer output (VBAT/TS_OUT) that could be used as an input to an ADC on an MCU that would read the battery voltage and drive an LED with a GPIO output when the battery is low (GPIO2/3 can drive LEDs up to 5mA). However, I am assuming that you are using the TPS65721 because both DCDC1 and LDO1 voltage can be set externally with resistors. Unfortunately, the TPS65721 does not have the VBAT/TS_OUT pin.

    I hope these options provide you enough information to move forward with your design. Happy New Year :-)