Why bq40z80's SMBUS communication is so time consuming, for example, reading GAUGING_STATUS 0x0056 data length is only 5 bytes to take 3.7ms, and reading DA_STATUS1 0x0071 data size 34 bytes reached 9ms.
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Why bq40z80's SMBUS communication is so time consuming, for example, reading GAUGING_STATUS 0x0056 data length is only 5 bytes to take 3.7ms, and reading DA_STATUS1 0x0071 data size 34 bytes reached 9ms.
Even the rate of 400K will not be improved. The most time consuming is waiting for a response(I2C). The design of this communication is too unreasonable. It takes a lot of time to read many necessary frames, which may cause the external program to freeze.
The gauge device has been designed to minimize power consumption during operation. You would not need to poll it very often since even in NORMAL mode, the device takes voltage, current, and temperature readings every 250 ms.
In addition, you don't need to read back the whole frame if you are only interested in a part of the info. For example, if you just want to monitor the 4 cell voltages, you just need to read back the first few bytes.