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.

TMS320F28P650DK: I2C

Expert 2390 points
Part Number: TMS320F28P650DK
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);