BQ35100: Measured impedance stuck at 32767 mOhm

Part Number: BQ35100
Other Parts Discussed in Thread: EV2400

Hi,

I ran an accelerated test such that the battery (SAFT LS14500) drained in about 15 days. I noticed that the measured impedance value was at 32767 mOhm when EOS flag was set. I had stopped applying the load pulse (20 mA) at this point and allowed the battery to rest for a day. When I restarted the test, the measured impedance had gone down to a very low value, but within three measurements the measured impedance had exponentially climbed up and again hit a high of 32767 mOhm. Based on the TRM, the max. value this register can hold is 16 bits i.e. 65535, but in this case, it seems like it is only 15 bits. The scaled R value is also stuck at 20381, but then this is related to the measured Z value, which explains it. I verified that the value being read by my MCU is correct by comparing it with the value being read by EV2400. What could be happening here?

Regards,

ashare

  • Hi Ashare,

    Are you in EOS mode?

    Can you provide more information on your battery? Impedance is closely related to battery chemistry.

    What ChemID are you using?

    Regards,

    Evan

  • HI Evan,

    Battery Model - SAFT LS14500

    Chem ID - 0623

    Gauging Mode - EOS

    Measured Z and Scaled R values are plotted in the attached graph. You can see that it saturates at 32767 mOhm. The gauge did not update the measured Z and scaled R values after the EOS was flagged.

    Regards,

    ashare

  • Hello Ashare, 

    Evan is currently out of office, please expect a delayed response. 

    Regards, 

    Jonny. 

  • Hi Ashare,

    What was the measured impedance before the EOS flag was set?

    Is the EOS flag setting as expected?

    Can you share your .gg file and .log file of the discharge?

    Regards,

    Evan

  • Hi Evan,

    The flag was being set as per the trend detection setting of 20%, which seems to be fine. I am attaching the log file (.xlsx) and the .gg (.csv) files for your reference.

    /cfs-file/__key/communityserver-discussions-components-files/196/LS14500_5F00_gauge_5F00_params_5F00_after_5F00_test.gg.csv

    /cfs-file/__key/communityserver-discussions-components-files/196/EOS_5F00_Triggered.xlsx

    After I observed the constant measured Z values, I let the battery rest for a long period (>48 hrs) and restarted the test. Initially the battery started with a lower measured Z and corresponding scaled R values, but within 2 measurements, it quickly jumped to the high values previously observed and then saturated again at the 32767 mOhm for measured Z which prompted me to think if the internal register is indeed limited to that number. However as per TRM, it is 16 bits long.

  • Hi Ashare,

    Just to clarify the gauge is functioning as expected, the EOS flag is setting as expected. The issue is the Impedance value continues to rise after the flag is set to larger value but is not causing any direct issues in your system. 

    If I understand correctly, please allow me some time to check what the max value allowed in the code is. If I am wrong, please correct my misunderstanding.

    Regards,

    Evan

  • You are right. The impedance value rising after the EOS being set and the value being saturated at 32767 mOhm are not causing any issue for the battery sample I tested. I am worried that since the EOS flag is getting set almost at the same time when the measured Z hits 32767 mOhm, there is a possibility that for a different sample, the short term trend value may surpass long term trend value (by 20%) at a higher measured Z. I fear that if the system cannot process values higher than 32767 mOhm, the detection process might fail.

  • Hi,

    The max value for Impedance (measuredZ) is 65535 (16 bits).

    The EOS bit should only flip when these conditions are met.

    Regards,

    Evan

  • Hi Evan,

    The max value for Impedance (measuredZ) is 65535 (16 bits).

    Have you already confirmed this after cross-checking with the max value allowed in the code?

    I can confirm that this condition is being met. Please see screenshot of the trend averages read using EV2400 below:

    However, my concern is the reduced max limit of measured Z values that my system is reading. Although the EOS flag is set based on trend average values, aren't trend averages ultimately derived from measured Z? We know that measured Z is temperature dependent which means that there is a possibility that the EOS flag is set at values above 32767 mOhm. My system and the EV2400 are currently unable to read values above 32767 mOhm. If that's the case, there is a possibility that at a different temperature or with a different battery sample, the EOS is never triggered. Is my concern valid?

  • Hi Ashare,

    I quickly scanned the code yesterday because I was quite busy and thought the measuredZ was defined as a16 bits. However, after taking a closer look today I believe you may be correct. I am following up with the firmware team for clarification and confirmation.

    Regards,

    Evan

  • Hi Ashare,

    After verifying with my firmware team measuredZ is a signed integer, it is still 16 bits but the range is from -32767 to 32767. I have raised a ticket for the issue.

    Thanks for your help.

    Regards,

    Evan

  • Will you be updating this thread (so that I am notified) when the bug is fixed?

  • Hi Ashare,

    There is not a bug but simply a documentation error. It will be fixed when the document is refreshed.

    Regards,

    Evan

  • What purpose does it serve for the measured Z and scaled R values to be declared as a signed integer? They never go negative anyways. If we were to assume that it is indeed limited to 32767 mOhms then how do I address this issue I highlighted in my earlier post? I have highlighted it below:

    I am worried that since the EOS flag is getting set almost at the same time when the measured Z hits 32767 mOhm, there is a possibility that for a different sample, the short term trend value may surpass long term trend value (by 20%) at a higher measured Z. I fear that if the system cannot process values higher than 32767 mOhm, the detection process might fail.

    Regards,

    Ashare

  • Hi Ashare,

    Please share a log file of the EOS flag setting incorrectly.

    Regards,

    Evan

  • Hi Evan,

    I am not saying that in the test that I conducted, the EOS flag is being set incorrectly. It is getting set when the measured impedance is 32767 mOhm. What I am worried is if I use a different sample of the same battery, the moving average filter that detects the sharp rise in the impedance could trigger at different levels of the measured impedance (i.e. < 32767 mOhm or > 32767 mOhm), but the system cannot detect more than 32767 mOhm. If so, isn't there a possibility that the EOS flag is never set? For e.g. couldn't there be a case where the short trend average surpasses the long trend average by 20% (condition for EOS flag setting) at 32768 mOhm (undetectable due to system limitation) of measured impedance? 

    Regards,

    Ashare 

  • Hi,

    Please allow me some time to look into this.

    Thanks,

    Evan

  • Hi,

    I have notified the FW team and they will address this at their earliest convenience.

    Thanks,

    Evan