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.

AM57xx - I2C issue with repeated start condition

Hello all,

I'm currently experiencing issues with the I2C controller if I want to read data from a slave which requires repeated start (i.e. no stop condition between access). As soon as a write operation is performed to address the register to be read, no data is physically written to the bus!

The current operation mode is interrupt driven master mode with the following settings:

I2C_IRQENABLE_CLR = 0x7fff
I2C_IRQENABLE_SET = AL | NACK | RRDY | XRDY | BF
I2C_CNT = 0
I2C_IRQSTATUS = 0xffff
I2C_CON = I2C_EN
I2C_SYSS => RDONE

In order to read a byte from this slave, first of all the register address which is accessed has to be written. Thus, the following is done:

I2C_CNT = 1
I2C_SA = <address>
I2C_CON = I2C_EN | MST | TRX | STT

Now the device generates interrupts with:

I2C_IRQ_STATUS_RAW = 0x1010
I2C_IRQ_STATUS = 0x0010

As I2C_IRQ_STATUS_RAW indicates XRDY, the address of the register to be accessed is written to I2C_DATA and XRDY is acknowledged in IRQ_STATUS.
I expected to see the write access in the oscilloscope, but nothing occurs besides of the start condition.  

Normal read/write operations with STT and STP are working as expected.
Do you have any idea what could be the root cause of this behaviour?

Thank you in advance!