Other Parts Discussed in Thread: BQSTUDIO
Tool/software:
I am currently using the BQ40z50-R5 firmware and have noticed a few discrepancies and odd behaviors around RSOC, RemainingCapacity, and FullChargeCapacity that are contributing to improper charge terminations and Overcharge safety events. I think this can be best solved by asking a few clarifying questions:
- The BQ40z50-R2 TRM and earlier states the Overcharge Protection is determined by RemainingCapacity and FullChargeCapacity while the BQ40z50-R3 TRM and later state RSOC is what matters instead. Which is correct? While I think RSOC is generally RemainingCapacity/FullChargeCapacity, can't it also be affected by various settings such as RSOC_RND_OFF, RSOCL, and SMOOTH to where it would make a difference whether the Overcharge protection is based on RSOC or RemainingCapacity/FullChargeCapacity?
- Will BatteryStatus[TCA] ever be set from an Overcharge Alert if RSOCL is set? It seems like the answer would be no since RSOCL should prevent the conditions for the alert from being met.
- Is the "Internal charge counter" used for the Overcharge Protection:
- Flt Rem Q - Flt Full Chg Q
- True Rem Q - True Full Chg Q
- Some other value
- Can an Overcharge Trip happen while RSOCL is holding RSOC at 99% before a charge termination? From the TRM, it would seem the answer should be no since part of the conditions for a trip is that RSOC ≥ 100% which won't happen until charge termination with RSOCL set. However, I am certain I have seen OC events happen even with RSOCL set that have cut charging before a charge termination (often from a new pack that hasn't had it's field learning cycle yet). This makes me think that the Overcharge protection trip is not actually checking if RSOC ≥ 100% and is instead doing something else under the hood like using Flt Rem Q ≥ True Rem Q or something which isn't affected by RSOCL.
- In the TRM, the RSOC Rounding Option section says that, "In charge, RSOC is set to 100% only when FC is set." Is this true only if RSOC_RND_OFF is set or regardless of that bit? What is the purpose of requiring that, is it to prevent RSOC from going to 100% before it reaches a certain voltage if you base FC on cell voltage?
I think with all those questions answered that will help troubleshoot my real problem where I have noticed strange behavior where RSOCL did not stop RSOC from going to 100% before a charge termination. (I also had RSOC_RND_OFF set if that matters). When logging the register values from BQStudio I noticed that RemainingCapacity got to the value of FullChargeCapacity and then RSOC incremented to 100% even though a charge termination had not occurred. As I kept charging on the way to charge termination, RemainingCapacity no longer increased, but Flt Rem Q and True Rem Q kept updating until a charge termination (or Overcharge protection) happened. My gg.csv file for this gauge is in another post on this forum and a log file from BQ Studios showing what I just mentioned is below.
RSOCL_Not_Holding_At_99Percent.csv
When seeing this problem, I had FC configured to set on either a charge termination OR RSOC ≥ 99%. I removed the latter condition so that it was only based on charge termination and it seemed to allow the gauge to hold RSOC at 99% until charge termination. When logging this time, I noticed that RemainingCapacity got clamped at 99% of the value of FullChargeCapacity while Flt Rem Q and True Rem Q kept incrementing as expected. Upon charge termination, RSOC went to 100% as expected. What I don't understand is why I had to only allow FC to be set upon charge termination (and not also allow it to be set upon an RSOC ≥ 99%) to get RSOC to be held at 99% as the RSOCL bit should be doing that but it definitely was not.