Tool/software:
Hi,
We are developing a product using the BQ25896, and we have observed some strange behavior related to the NTC fault: we frequently read the fault register, and after some time, the NTC status oscillates between "hot" and "normal". More precisely, the register reports "NTC hot", then, in subsequent reads, it reports "normal", then reports "NTC hot" again once, etc, with a variable period between 1 and 10 seconds.
We expect the NTC fault to remain at "hot" if the battery is indeed hot, in accordance with §9.2.16.7 of the datasheet: " The only exception is NTC_FAULT which always reports the actual condition on the TS pin".
However, the battery we were using was nowhere near 60°C, so we should not be seeing "NTC hot" at all.
VBUS was unplugged, but this also occurred a few times with a 4.2V VBUS.
When testing with the BQ25896's evaluation board, we were able to reproduce the same issue consistently, both with VBUS off and at 4.2V. We had to set JP10 off and JP8 on to force the oscillation though. We narrowed the issue down to a simple configuration - the default one - with the watchdog disabled and continuous ADC conversion enabled.
Some interesting observations:
- the frequency of the oscillation increases when we sample the NTC fault more frequently (this is not the I2C frequency). For instance, sampling 5 times per second causes the NTC fault to oscillate with a 1s period. Sampling it only twice per second results in an oscillating period of ≈5 seconds. The INT and STAT pins also oscillate (see the first two images below), with varying duty cycles. STAT sometimes fades away and stops pulsing (duty cycle drops to 0%), while the issue still persists, making the STAT output unusable for our application. Since the jumpers are configured to force NTC to "hot", we expected to read "NTC hot" continuously and for the STAT pin to blink at 1Hz (as described in §9.2.16.7 and Table 5).
- we tried reading the value of CONV_START to see if ADC conversion was ongoing while reading the NTC fault. CONV_START was more often 1 than 0 when we observed "NTC hot", though this is hard to confirm due to the delay between reads.
- the issue seems to be resolved when switching to one-shot ADC conversion, and manually writing/reading CONV_START before reading the NTC. In that case, NTC fault stays at "hot" and STAT blinks at 1Hz with a 50% duty cycle, as expected.
- the issue also seems to disappear when VBUS goes above 4.3V. NTC fault remains "hot" and STAT blinks at 1Hz with a 50% duty cycle, as expected.
This leads us to assume that when ADC conversion is active, the NTC value may not be reliable and does not persist correctly in the internal state machine. However, we cannot explain the last point.
What is your opinion on this? Do you have any insight into why this occurs?
If our conclusion is correct, do you have a workaround for this issue, other than using CONV_RATE at 0 (which we would prefer to avoid)?
Captures of the logic analyzer output on the BQ25896-EVM664: Channel 0 & 1 are I2C, channel 2 is INT pin, channel 3 is STAT pin.
What was obtained while the battery was plugged: INT pulses, in sync with the oscillation of the NTC fault observed
What was obtained in the same situation, while the battery was unplugged:
Also, when VBUS was on, and we were unplugging and plugging the battery, the INT pin and STAT pin would start pulsing at 11Hz, which seems similar to this (unanswered) issue. This occurred with JP9 and JP10 on (NTC was measured as normal, as expected this time).
Do you have an insight on what could cause this?
STAT and INT at 11Hz.
The CHRG_STAT oscillates between "fast charging" and "charge termination done"