Other Parts Discussed in Thread: C2000WARE
When check the example of ti\c2000\C2000Ware_5_01_00_00\driverlib\f28p65x\examples\c28x\i2c\CCS\
i2c_ex5_controller_target_interrupt
i2cLib_FIFO_controller_target_interrupt.c
I find two different send data styles
The first one
I2C_sendStartCondition(base);
//Wait for the target address to be transmitted
while(!(I2C_getStatus(base) & I2C_STS_REG_ACCESS_RDY));
//Generate STOP condition
I2C_sendStopCondition(base);
The second one
I2C_sendStartCondition(base);
I2C_sendStopCondition(base);
The question is, when msater send the address and data with FIFO, shall wait the while((I2C_getTxFIFOStatus(I2CA_BASE) != I2C_FIFO_TXEMPTY)) then I2C_sendStopCondition(base);
or it does not matter, after put the data to FIFO, then can send the start and stop condition together, the hardware will handle, after send out the data, it will send the stop condition.
// Setup data to send
I2C_putData(I2CA_BASE, u16Cmd);
I2C_sendStartCondition(base);
I2C_sendStopCondition(base);