Other Parts Discussed in Thread: BQ76952, , BQ34Z100
I have a design with a host MCU communicating with a BQ34Z100-G1 (and also a BQ76952). The ALERT pin on the BQ34Z100-G is connected to the MCU to allow the gauge to wake the MCU on events.
If I set the Alert Configuration to enable assertion of the ALERT line for say, EOD (End of Discharge), I correctly get the ALERT pin asserted when the event happens. The problem that I see is that there seems to be no way to clear the alert, except for completely disabling the bit in the Alert Configuration register.
If the ALERT condition cannot be cleared, then it is no notification will be received if some other event occurs, such as BATLOW, as the ALERT line is continuously held low?
If I disable the EOD bit in the Alert Configuration, then ALERT will be deasserted, but then I would need to poll until the EOD bit clears in Flags() before re-enabling the Alert Configuration bit to ensure the MCU gets alerted on the next EOD event. Since the EOD flag might not clear until a long time in the future, polling for that long is undesirable.
In contrast the BQ76952 has separate ALERT status registers, which latch on an event, and can be cleared by the host MCU when they have been read. The ALERT will not be re-raised until the event happens again (clears and sets again). This is much neater to deal with from the MCU side.
