Other Parts Discussed in Thread: BQ28Z610,
Hi,
We have a custom board with 3 BQ28Z610 fuel gauges attached to PCA9544A channel 0, 1 and 2. We had established the I2C commands used for the PCA9544A when we connect one fuel gauge directly to the I2C line bypassing the PCA9544A (see link for I2C comm for PCA9544A : https://e2e.ti.com/support/power-management/f/196/p/814131/3028325#3028325).
Our I2C is running on 100Khz, standard mode. We has used the following format for the I2C mux slave address: 0xE0 + <values of A2-A0> + R/W as per Section 9 of the datasheet.
For I2C channel 0, the Hardware Selectable bits are: A2=0, A1=0, A0=0.
For I2C channel 1, the Hardware Selectable bits are: A2=0, A1=0, A0=1.
For I2C channel 2, the Hardware Selectable bits are: A2=0, A1=1, A0=0.
Using the I2C command protocol for the BQ28Z610 fuel gauge at channel 0, we issued an I2C write with I2C address = 0x30 and the transmitted data is exactly the same as suggested in the BQ28Z610 documents. We had then tried to read one of the registers of BQ28Z610 by issuing an I2C Read with I2C address = 0x31 but we read back a wrong register content. (i.e. attempt to read chem ID, expected value = 0x2158 but we read 0xF0F0).
Are we using the correct protocol format for the I2C mux or should we issue additional commands prior to attempting to read and write to the slave devices?
Thanks,
Kat