This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

MSP432 I2C Master Receiver Mode - Need to send Register Byte to Slave after Slave Address + R/W bit + Slave Register (MAX7313 Slave)



the standard Master Receiver read transaction sequence: (MSP432 as master with slave device)

  1. Send the start sequence
  2. Send the slave address with R/W bit low
  3. Send the register number
  4. Send the start sequence again (repeated start)
  5. Send the slave address with R/W bit high
  6. Read data byte(s)
  7. Send the stop sequence

This sequence does not work for a MAX7313 I/O Expander : 

[Start + 7bit Address + R/W low + Register Number to Read .. Restart + 7bit Address + R/W high  ... then Read N BITS]

-------------------------------------------------------------------------------------------

Desired Master Receiver Read Transaction Sequence to meet MAX7313 spec sheet: (MSP432 as Master    MAX7313 as Slave)

  1. Send the start sequence 
  2. Send the slave address with R/W bit high (EUSCI_B_CTLW0_TR set as Receiver)
  3. Send the Slave Register Byte
  4. Read data byte(s)
  5. Send the stop sequence

MAX7313 I/O expander chip  Requires   [Start + 7bit Address + R/W high + Register Number to Read .. then Read N BITS]

--------------------------------------------------------------------------------------------

This sequence does not work: [Start + 7bit Address + R/W low + Register Number to Read .. Restart + 7bit Address + R/W high  ... then Read N BITS]

Is this supported for MSP432 / What would be the best workaround?

Note: Master Transmit Sequence works well with I2C for setting MAX7317 outputs

**Attention** This is a public forum