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.

BQ34Z100-G1: Battery level indication issue

Part Number: BQ34Z100-G1
Other Parts Discussed in Thread: BQ34Z100, BQ25896, BQ2589, BQSTUDIO

Tool/software:

Hi All,

I did the chemistry update succesfully wit BQ Studio according to TI reference doc.

We started to use and test our prototypes and we observe the following phenomena:

During the normal operation (powered by battery, the current consumption of the circuit between 50mA-250mA, the BMS(BQ34Z100) send the battery state in percentage value (the graph is quite linear),
suddenly the system is restart it self and the battery level changing from the last state e.g.: 34% to 74%. The expectation is that, to continue the decreesing of the battery level from 34% to 0% till the battery become "empty".
The symptome is the same if I restart the system manually. Do you have a idea what could cause this issue? Each starting process at our microcintroller make a BMS reset as well.
Do you think, could it be the root cause? Is the BMS reset cleare any stored battery related (learned) information?

Thanks,


Balazs

  • Hello Balazs,

    When you say the system restarts, what exactly is happening? Is the battery being disconnected from the device?

    Regards,

    Adrian

  • Hello Adrian,

    Thanks for your answer and handling my case!

    The battery is not disconnected, there is not switching part in the circuit, only the BMS(BQ34Z100).

    The manual restart mean that, pressing the reset button on the circuit.

    Regards,

    Balazs

  • Hello Balazs,

    What does the reset button on the circuit do specifically? Can you share a schematic of your design? Does it send the reset command to the gauge?

    Regards,

    Adrian

  • Hello Adrian,

    We use STM32 microcontroller connected a reset switch. If the switch is pressed the controller send a reset command to the BQ34z100 via I2C, according to the chart below:



    The scematic of the BMS is the recommendation of TI.

    Regard,

    Balazs

  • Hello Balazs,

    If you send the reset command, that is going to change the MaxError to 100%. Thus any SOC readings afterwards will be inaccurate. A charge relax discharge cycle will have to occur at a reset.

    Regards,

    Adrian

  • Hello Adrian,

    Thanks for your answer!

    We created  some logs to the easier understanding. Our current experience is the following:

    The battery level indication is 0%, the Battery voltage is 4017mV after reset the Battery voltage still 4017mV but the level change to 96% (seems good).

    It seems, after reset the percentage value become correct.

    Here the log:

    Before RESET:
    DBG: [62341725+125]     Core/Src/sensors.c[207] :Charger:
      - VBUS=18278 mV
      - VAC1=18243 mV
      - VAC2=18250 mV
      - VBAT=4032 mV
      - VSYS=4032 mV
      - IBAT=0 mA
      - IBUS=47 mA
      - TDIE=36 K
      - Charger status 0=07
      - Charging=Not Charging
      - FAULT status 0=00
      - FAULT status 1=00
      - Max Current = 2000
    BMS:
      - SOH            =87%
      - SOC            =0%
      - Battery Voltage=4017 mV
      - AVG Current    =-84 mA
      - Current        =-84 mA
      - Time To Full   =65535 min
      - Time To Empty  =0 min
    CPU Temp = 25
    RAM used = 50
    DBG: [62341754     ]    Core/Src/sensors.c[264] :Terminal Status=TS_NoPower
    DBG: [62341758     ]    Core/Src/sensors.c[288] :RTC Synchronize
    DBG: [62341761     ]    Core/Src/sensors.c[296] :  - Success
    DBG: [62341764     ]    Core/Lib/EPD_routines.c[378]    :Battery Enter... W=40, S=0
     DBG: [62341804     ]   Core/Src/main.c[1049]   :Battery Low, Span comm time!
    Perform RESET: 
    DBG: [62376806     ]    Core/Lib/bq34z100.c[424]        :Page 104 (68) block 0 contents:
    ================================ Flash bytes ================================
    00000000: 7f 71 20 5c 94 08 98 c0  fa 93 00 00 00 00 13 88   .q \............
    00000010: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   ................
    =============================================================================
    DBG: [62376824     ]    Core/Lib/bq34z100.c[426]        :Checksum: 0x77
    DBG: [62376838     ]    Core/Lib/bq34z100.c[459]        :Flash[0] <- 0x7F
    DBG: [62376841     ]    Core/Lib/bq34z100.c[459]        :Flash[1] <- 0x74
    DBG: [62376845     ]    Core/Lib/bq34z100.c[459]        :Flash[2] <- 0x1F
    DBG: [62376848     ]    Core/Lib/bq34z100.c[465]        :Flash[3] <- 0x21
    DBG: [62376852     ]    Core/Lib/bq34z100.c[459]        :Flash[4] <- 0x94
    DBG: [62376855     ]    Core/Lib/bq34z100.c[459]        :Flash[5] <- 0x0A
    DBG: [62376859     ]    Core/Lib/bq34z100.c[459]        :Flash[6] <- 0x9C
    DBG: [62376863     ]    Core/Lib/bq34z100.c[465]        :Flash[7] <- 0x08
    DBG: [62376866     ]    Core/Lib/bq34z100.c[459]        :Flash[8] <- 0xFA
    DBG: [62376870     ]    Core/Lib/bq34z100.c[465]        :Flash[9] <- 0x50
    DBG: [62376874     ]    Core/Lib/bq34z100.c[398]        :Writing new checksum for page 104 block 0: 0xA5
    DBG: [62377406+532]     Core/Src/main.c[919]    :+++++++++++++++++++++ MAIN WHILE ++++++++++++++++++++
    DBG: [62377410     ]    Core/Src/main.c[920]    :Spend 10 sec:
      - Next Comm = 24
      - LastStatusSend=23504 sec
      - ConnStatus = NotPowered
    DBG: [62377417     ]    Core/Src/main.c[931]    :+++++++++++++++++++++ MAIN WHILE ++++++++++++++++++++
    DBG: [62377421     ]    Core/Src/main.c[1016]   :Timer timeout: BATTCHECK
    DBG: [62377426     ]    Core/Lib/bq25896.c[194] :MPP status = false->true
    DBG: [62377539+113]     Core/Lib/bq25896.c[330] :BQ2589: Set ChargeCurrent to 200
    DBG: [62377664+125]     Core/Src/sensors.c[207] :Charger:
      - VBUS=18270 mV
      - VAC1=18234 mV
      - VAC2=18239 mV
      - VBAT=4030 mV
      - VSYS=4033 mV
      - IBAT=0 mA
      - IBUS=46 mA
      - TDIE=36 K
      - Charger status 0=07
      - Charging=Not Charging
      - FAULT status 0=00
      - FAULT status 1=00
      - Max Current = 2000
    BMS:
      - SOH            =0%
      - SOC            =0%
      - Battery Voltage=3600 mV
      - AVG Current    =0 mA
      - Current        =0 mA
      - Time To Full   =65535 min
      - Time To Empty  =65535 min
    CPU Temp = 25
    RAM used = 50
    DBG: [62377693     ]    Core/Src/sensors.c[264] :Terminal Status=TS_NoPower
    DBG: [62377697     ]    Core/Src/sensors.c[288] :RTC Synchronize
    DBG: [62377700     ]    Core/Src/sensors.c[296] :  - Success
    DBG: [62377703     ]    Core/Lib/EPD_routines.c[378]    :Battery Enter... W=40, S=0
    After Reset: 
    DBG: [62412690     ]    Core/Src/main.c[931]    :+++++++++++++++++++++ MAIN WHILE ++++++++++++++++++++
    DBG: [62412695     ]    Core/Src/main.c[1016]   :Timer timeout: BATTCHECK
    DBG: [62412699     ]    Core/Lib/bq25896.c[194] :MPP status = false->true
    DBG: [62412813+114]     Core/Lib/bq25896.c[330] :BQ2589: Set ChargeCurrent to 200
    DBG: [62412938+125]     Core/Src/sensors.c[207] :Charger:
      - VBUS=18270 mV
      - VAC1=18235 mV
      - VAC2=18242 mV
      - VBAT=4032 mV
      - VSYS=4034 mV
      - IBAT=0 mA
      - IBUS=45 mA
      - TDIE=36 K
      - Charger status 0=07
      - Charging=Not Charging
      - FAULT status 0=00
      - FAULT status 1=00
      - Max Current = 2000
    BMS:
      - SOH            =87%
      - SOC            =96%
      - Battery Voltage=4017 mV
      - AVG Current    =-80 mA
      - Current        =-87 mA
      - Time To Full   =65535 min
      - Time To Empty  =598 min
    CPU Temp = 25
    RAM used = 50
    DBG: [62412967     ]    Core/Src/sensors.c[273] :Terminal Status=TS_Normal
    DBG: [62412971     ]    Core/Src/sensors.c[288] :RTC Synchronize
    DBG: [62412974     ]    Core/Src/sensors.c[296] :  - Success
    Thanks,
    Balazs
  • Hello Balazs,

    What occurred before resetting the device. Seems odd that the SOC will report 0 at the high of a voltage.

    Regards,

    Adrian

  • Hello Adrian,

    Yes this is the issue why I opened this topic.

    "the battery state in percentage value (the graph is quite linear),
    suddenly the system is restart it self and the battery level changing from the last state e.g.: 34% to 74%. The expectation is that, to continue the decreesing of the battery level from 34% to 0% till the battery become "empty"."

    Sometimes the level seems 0% but after restert, the value jumps to any higher number like above.

    Thanks.

    Balazs

  • Hello Balazs,

    Are you able to gather a BQStudio log file? This will be helpful to see all the registers on the gauge. Also, can you provide the gg file from the gauge?

    Regards,

    Adrian