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.

BQ25713: Detect Battery Removal

Part Number: BQ25713

Hi,

We are using BQ25713 charger for our product,

It is charging battery and we are able to measure battery voltage.

But we are not able to detect battery removal.

We tried enabling ADC 

Reg 0x3A = 0xFF

Reg 0x3B = 0x80

And tried measuring the ADC VBAT
Reg 0x2C = 0x15 // with battery connected

Reg 0x2C = 0x15 // with Battery removed

How to detect battery has been removed?

Regards

Justin

  • Hello Justin,

    In order to detect battery removal please measure the battery charging current. Enable, ADC_ICHG and ADC_START then measure the charging current by reading register 0x28. After battery removal it will read charge current as zero. When reading the current make sure that charge current limit in register 0x02 is set to something higher than zero current. 

    Best Regards,

    Munir

  • Hi Munir,

    Thanks for the feedback.

    We have already tried this and its not helping.

    Actually our system is always connected over USB and runs on VBUS power. Only in case of surge cases the power gets drawn from Battery(500 mAH)

    Since the system is operating within 500mA which is completly supplied by USB and Battery is fully Charged there is no Charge/Discharge current.
    Hence Register 0x28 and 0x29 are both 0 with or Without Battery connected.

    Batttery present

    [  235.149243] dump_register: reg = 0x0 val = 0xe
    [  235.149516] dump_register: reg = 0x1 val = 0x2
    [  235.149929] dump_register: reg = 0x2 val = 0x40
    [  235.151549] dump_register: reg = 0x3 val = 0x0
    [  235.151722] dump_register: reg = 0x4 val = 0x68
    [  235.152128] dump_register: reg = 0x5 val = 0x10
    [  235.152679] dump_register: reg = 0x6 val = 0x0
    [  235.153241] dump_register: reg = 0x7 val = 0x0
    [  235.153806] dump_register: reg = 0x8 val = 0x0
    [  235.154358] dump_register: reg = 0x9 val = 0x0
    [  235.154912] dump_register: reg = 0xa val = 0x0
    [  235.155465] dump_register: reg = 0xb val = 0x0
    [  235.156018] dump_register: reg = 0xc val = 0x0
    [  235.156570] dump_register: reg = 0xd val = 0x10
    [  235.157124] dump_register: reg = 0xe val = 0x0
    [  235.157677] dump_register: reg = 0xf val = 0xb
    [  235.158241] dump_register: reg = 0x20 val = 0x0
    [  235.158795] dump_register: reg = 0x21 val = 0x82
    [  235.159349] dump_register: reg = 0x22 val = 0x80
    [  235.159956] dump_register: reg = 0x23 val = 0xa8
    [  235.161313] dump_register: reg = 0x24 val = 0x0
    [  235.161479] dump_register: reg = 0x25 val = 0xb
    [  235.161888] dump_register: reg = 0x26 val = 0x0
    [  235.162451] dump_register: reg = 0x27 val = 0x1c
    [  235.163016] dump_register: reg = 0x28 val = 0x0
    [  235.163622] dump_register: reg = 0x29 val = 0x0
    [  235.164153] dump_register: reg = 0x2a val = 0x1d
    [  235.164717] dump_register: reg = 0x2b val = 0x0
    [  235.165325] dump_register: reg = 0x2c val = 0xd
    [  235.165854] dump_register: reg = 0x2d val = 0x13
    [  235.166420] dump_register: reg = 0x2e val = 0x40
    [  235.167027] dump_register: reg = 0x2f val = 0x8a
    [  235.167603] dump_register: reg = 0x30 val = 0x10
    [  235.168178] dump_register: reg = 0x31 val = 0x2
    [  235.168753] dump_register: reg = 0x32 val = 0xb7
    [  235.169285] dump_register: reg = 0x33 val = 0x2
    [  235.169891] dump_register: reg = 0x34 val = 0x30
    [  235.171337] dump_register: reg = 0x35 val = 0x0
    [  235.171506] dump_register: reg = 0x36 val = 0x65
    [  235.171914] dump_register: reg = 0x37 val = 0x4a
    [  235.172519] dump_register: reg = 0x38 val = 0xa0
    [  235.173093] dump_register: reg = 0x39 val = 0x81
    [  235.173668] dump_register: reg = 0x3a val = 0xff
    [  235.174243] dump_register: reg = 0x3b val = 0x80

    battery not present 

    [  131.296176] dump_register: reg = 0x0 val = 0xe
    [  131.296444] dump_register: reg = 0x1 val = 0x2
    [  131.296862] dump_register: reg = 0x2 val = 0x40
    [  131.297414] dump_register: reg = 0x3 val = 0x0
    [  131.297965] dump_register: reg = 0x4 val = 0x68
    [  131.298526] dump_register: reg = 0x5 val = 0x10
    [  131.299083] dump_register: reg = 0x6 val = 0x0
    [  131.299643] dump_register: reg = 0x7 val = 0x0
    [  131.301506] dump_register: reg = 0x8 val = 0x0
    [  131.301690] dump_register: reg = 0x9 val = 0x0
    [  131.302085] dump_register: reg = 0xa val = 0x0
    [  131.302637] dump_register: reg = 0xb val = 0x0
    [  131.303188] dump_register: reg = 0xc val = 0x0
    [  131.303739] dump_register: reg = 0xd val = 0x10
    [  131.304293] dump_register: reg = 0xe val = 0x0
    [  131.304846] dump_register: reg = 0xf val = 0xb
    [  131.305412] dump_register: reg = 0x20 val = 0x0
    [  131.305963] dump_register: reg = 0x21 val = 0x84
    [  131.306518] dump_register: reg = 0x22 val = 0x80
    [  131.307126] dump_register: reg = 0x23 val = 0xa8
    [  131.307700] dump_register: reg = 0x24 val = 0x0
    [  131.308275] dump_register: reg = 0x25 val = 0xb
    [  131.308807] dump_register: reg = 0x26 val = 0x0
    [  131.309371] dump_register: reg = 0x27 val = 0x1c
    [  131.309935] dump_register: reg = 0x28 val = 0x0
    [  131.311321] dump_register: reg = 0x29 val = 0x0
    [  131.311492] dump_register: reg = 0x2a val = 0x1d
    [  131.311899] dump_register: reg = 0x2b val = 0x0
    [  131.312504] dump_register: reg = 0x2c val = 0x15
    [  131.313034] dump_register: reg = 0x2d val = 0x15
    [  131.313643] dump_register: reg = 0x2e val = 0x40
    [  131.314217] dump_register: reg = 0x2f val = 0x8a
    [  131.314792] dump_register: reg = 0x30 val = 0x10
    [  131.315367] dump_register: reg = 0x31 val = 0x2
    [  131.315941] dump_register: reg = 0x32 val = 0xb7
    [  131.316472] dump_register: reg = 0x33 val = 0x2
    [  131.317080] dump_register: reg = 0x34 val = 0x30
    [  131.317612] dump_register: reg = 0x35 val = 0x0
    [  131.318220] dump_register: reg = 0x36 val = 0x65
    [  131.318752] dump_register: reg = 0x37 val = 0x4a
    [  131.319360] dump_register: reg = 0x38 val = 0xa0
    [  131.319933] dump_register: reg = 0x39 val = 0x81
    [  131.321379] dump_register: reg = 0x3a val = 0xff
    [  131.321549] dump_register: reg = 0x3b val = 0x80

    Please let us know in this scenario how to detect Battery removed consition?

    Regards
    Justin

  • Hello Justin,

    This part does not have a battery detection feature with software. One workaround was to measure the charge current but this is not possible in your scenario. You need to pull the CELL_BATPRESZ pin low to indicate battery absent. Hence, you need external hardware logic to detect battery removal and pull CELL_BATPRESZ pin low.

    Best Regards,

    Munir