Hello,
We are trying to interface a LTC6811-1 with two LTC1380 8:1 multiplexors. Currently, we are able to send only one correct message per IC power cycle (2 seconds without isoSPI comm). When sending multiple messages only the first message will go through. For debugging purposes we are currently using the Linduino/DC2792B with the LTSketchbook. We have modified the I2C communication code to fill the registers with:
for (uint8_t current_ic = 0; current_ic<TOTAL_IC;current_ic++)
{
//Communication control bits and communication data bytes. Refer to the data sheet.
BMS_IC[current_ic].com.tx_data[0]= 0x69; // Icom Start(6) + I2C_address D0 (0x90) << 4
BMS_IC[current_ic].com.tx_data[1]= 0x08; // Fcom master NACK(8)
BMS_IC[current_ic].com.tx_data[2]= 0x0F; // Icom Blank (0) + eeprom address D1 (0xF8) (channel 0 1380)
BMS_IC[current_ic].com.tx_data[3]= 0x89; // Fcom master NACK + STOP(9)
BMS_IC[current_ic].com.tx_data[4]= 0xff; // Icom No Transmit
BMS_IC[current_ic].com.tx_data[5]= 0xff;
}
wakeup_sleep(TOTAL_IC);
LTC6811_wrcomm(TOTAL_IC,BMS_IC); // write to comm register
print_wrcomm(); // print transmitted data from the comm register
wakeup_idle(TOTAL_IC);
LTC6811_stcomm(2); // data length=2 // initiates communication between master and the I2C slave
wakeup_idle(TOTAL_IC);
error = LTC6811_rdcomm(TOTAL_IC,BMS_IC); // read from comm register
check_error(error);
print_rxcomm(); // print received data into the comm register
