Post Go back to editing

LTC6811 WRITE to ADG728 Multiplexer via I2C

What I want to achieve is very similar to this forum post with the difference that I use a ADG728 multiplexer (datasheet) in my setup. 

The address of the multiplexer is 0x4C. Below is the sequence that I put together.

ICOM0[3:0]--0x6(START) , D0[7:4]--0x9(1001) , D0[3:0]--0x8(1000) , FCOM0[3:0]--0x8(MASTER NACK)   (D0 as the mux 7-bits address + Write bit)

ICOM1[3:0]--0x0(BLANK) , D1[7:4]--0x0(0000) , D1[3:0]--0x1(0001) , FCOM1[3:0]--0x9(Master NACK + STOP)   (D1 as the mux channel: 0b00000001)

I package the sequences into tx_data array (refer to DC2259 of LTSketchbook).

BMS_IC[current_ic].com.tx_data[0]= 0b01101001; // 0x69;
BMS_IC[current_ic].com.tx_data[1]= 0b10001000; // 0x88;
BMS_IC[current_ic].com.tx_data[2]= 0b00000000; // 0x00;
BMS_IC[current_ic].com.tx_data[3]= 0b00011001; // 0x19;

Then I call the WRCOMM and STCOMM (data length = 2) commands before I call ADAX and RDAUX commands to read the data from GPIO1. I would like to know whether there's anything wrong with the sequences above because I cannot read a valid value from GPIO1. Any thought or help will be greatly appreciated.