SLAU846A June 2023 – October 2023 MSPM0G1105 , MSPM0G1106 , MSPM0G1107 , MSPM0G1505 , MSPM0G1506 , MSPM0G1507 , MSPM0G3105 , MSPM0G3105-Q1 , MSPM0G3106 , MSPM0G3106-Q1 , MSPM0G3107 , MSPM0G3107-Q1 , MSPM0G3505 , MSPM0G3505-Q1 , MSPM0G3506 , MSPM0G3506-Q1 , MSPM0G3507 , MSPM0G3507-Q1
Typically, in any I2C transaction one would need to first write the target in order to set the register number, then do a repeated start + read to get back the data value. However, the RD_ON_EMPTY flag allows one to do two I2C transactions with a single setup of the I2C controller. One can set up both the write and read together; with the limitation being that the "write" phase cannot send more than the data that fits inside the TX FIFO. This is an optimization to minimize interrupt processing requirements.The high level set up is below: