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.

28335 I2C Bus busy after stop condition transmitted?

Other Parts Discussed in Thread: TMP100

I am attempting to work with some I2C peripherals both the ezdsp 28335 and our custom board. I have whittled down the "Example_2833xI2C_eeprom" example from the control suite to produce a minimal, interrupt free, API for doing I2C (see I2C.c attached).

I have three devices I am trying to work with, the eeprom on the ezdsp, a tmp100 temperature sensor on our custom board, and a ISL12024 on our custom board. Using the API I am able to read the temperature values from tmp100 and both read/write from the eeprom on the ezdsp. As such I have at least a moderate confidence that I am setting up the I2C peripheral on the 28335 correctly. However I am having issues with doing repeated writes to the eeprom on the ISL12024 chip on our custom board.

According to the spec it has the same write protocol as the eeprom on ezdsp...

After a write my scope show that the transaction takes place with the slave address, 3 data bytes, appropriate acks and the stop condition. In addition the SCD bit in I2caRegs.I2CSTR shows that a stop condition has been detected this is consistent on both the ezdsp eeprom and eeprom on our custom board.

My problem, presumably, is that after the send the bus busy bit is set though a stop condition has been detected per the SCD bit. Also, there is a strang series of clock pulses (see circled above) following the write though another write operation has not been requested.

Can anybody provide some insight as to what I might be misconfiguring?