SLUUCO5A december 2022 – august 2023 BQ34Z100-R2
HDQ, like I2C, runs in the highest priority process. However, it cannot clock stretch, so flow control between the host and gauge is not possible. For HDQ, there is concern for timing violations for the host read and write requests. The interrupt latency plus critical section plus command decode will not cause timing violations. However, gauge- or host-initiated data flash memory updates can cause timing violations. Host firmware should plan for these violations. It is recommended on timing-violation detection for the host to delay 70 ms before restarting a transaction to allow for a typical single-page flash update time. Three retries should be allowed to account for a possible flash write recovery and a possible two-page flash write. The restarted transaction should be preceded by the "break" signal to assure proper synchronization of the data frame.
The gauge provides a FULLSLEEP power mode feature to minimize power consumption by the gauge when the host system is in a standby mode: low power consumption. This mode disables a clock used by the HDQ communication peripheral. Because of this, it is likely when the gauge is in FULLSLEEP mode that a first communication to the gauge will time out. A signal on the HDQ pin will start the clock running, but it takes several milliseconds to stabilize and during that time the HDQ peripheral will not be able to read bits transmitted by the host. A reread or write of the register at 4-ms intervals will be successful by the third attempt.
A delay interval greater than 1 second may allow the gauge to reenter FULLSLEEP. Often, this is not an issue, because the host system having exited its standby mode will be drawing sufficient current, such that the gauge will have already not returned to FULLSLEEP until the FULLSLEEP conditions are satisfied.