I am working on a design containing a BQ27541-G1 Fuel Gauge. (I realize that this part is not recommended for new designs, but the customer chose this part because of a companion product with the same Gauge).
I have been going over the data sheet, attempting to learn how to communicate with the part, and how to program various areas of the data flash. I have a few questions, but I'll start with the simplest first. Eventually, I'll be getting at programming the Golden Image, but first some basics.
In the data sheet, Standard Data Commands have a two byte command code. For example, say I want to read the CONTROL_STATUS byte. Control() has a command code of "0x00 and 0x01" and CONTROL_STATUS has a sub-command of 0x0000. I don't see in the datasheet how the I2C transactions flow with these two byte commands and a sub-command word. I see some I2C message structures on page 27, but I don't see the two-byte command code referenced. Can you tell me how this works? Something like this?
Read CONTROL_STATUS byte:
I2C Start Condition
Send I2C Addr (0x55) + W
Send 0x00 (MSB control())
Send 0x01 (LSB control())
Send 0x00 (MSB sub-command)
Send 0x00 (LSB sub-command)
I2C Restart
Send I2C Addr (0x55) + R
Receive CONTROL_STATUS byte
I2C Stop Condition
Thanks for your help.