We're using the bq2060A fuel gauge in our NiMH battery pack for the past 2 years and everything has seemed to work fine until recently. Recently I've been getting what seems to be erroneous flags set in the BatteryStatus()[0x16] register. I'm using HDQ16 to read the register. With a partially charged battery every now and then I'll get one of the following bits set when it doesn't appear they should be set: TERMINATE_DISCHARGE_ALARM, OVER_TEMP_ALARM, FULLY_CHARGED.
The flags will be set for a short period of time. For example I have MaxT set to 0xC (48.8°C), the OVER_TEMP_ALARM flag will set and cause a battery overtemp
condition but the battery temperature Temperature()[0x08] will only report a temperature of around 25-30°C.
Similarly on occasion the battery will be charging, the FULLY_CHARGED flag will set and then it will clear and continue charging. My Pack Configuration is 0xA0, CSYNC
is set but when the flag is set it does not change the FCC to 95% as it would with a valid charge termination.
On occasion my device will shutdown due to the TERMINATE_DISCHARGE_ALARM however the battery capacity is full or nearly full and there shouldn't have been an undervoltage condition.
I'm wondering if anyone else has experienced this?
Up until this point I've been acting immediately on set flags in firmware w/o double-checking.
Recent changes I've made to the battery pack are jumping Vcc & Vout per Errata and setting bit CSYNC in the PackConfiguration.
One thing I noticed on my pack is I simply have a 0.1uF from RBI to Vss but don't have a pull-up to Batt+. Any chance that could cause it?