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.