In the SLUUA97 I read this:
The bq27510-G3 fuel gauge uses a series of 2-byte standard commands to enable system reading and
writing of battery information. Each standard command has an associated command-code pair, as
indicated in Table 2-1. Because each command consists of two bytes of data, two consecutive I2C
transmissions must be executed both to initiate the command function and to read or write the
corresponding two bytes of data.
(emphasis mine)
As we can see, it is said that all standard commands require two bytes of data to be read or written.
So, naturally, I read two bytes from State of Health command and got 0x160 == 352%. I thought it can't be right so I went to BQ Studio and read all values in there. State of Health was shown as 96%.
Then I used logic analyzer to see how Bq Studio reads this command. And I saw this:
That is a one byte read. 0x60 is indeed 96 percent. I made two reads and I read lower byte 0x60 (which was correct) and then I read higher byte 0x01 (which is not).
My question is:
1) Who is to blame - documentation or Bq Studio?
2) Is there any more one-byte commands that I should be aware of?