Part Number: TMS320F28027F
Hi,
I'm having a lot of trouble getting the interrupts on the I2C module of the TMS320 to work. I've spent weeks on this, so any help you can give me would be appreciated.
I'm using a launchpad board as the slave receiver and a TMS570HDK as the master. The master sends out a 9 byte long message, but I can't get the slave to receive the whole message. I've tried various ways and there seems to be a common problem. Initially I tried using the AAS flag and then polled the RRDY flag to capture the payload. This works, but only once. The AAS flag remains set despite a STOP condition being received (and the flag set).
I then tried a different tack. I set the RRDY to generate the interrupt. This receives the first byte and nothing else. The RRDY flag in STR is cleared by writing a 1 to it, but it still only interrupts once. I did a ready of I2CISRC to see if that is being cleared and it is.
So to summarise:
AAS flag cannot be cleared and the interrupt is generated only once.
RRDY flag can be cleared but still only interrupts once
SCD never generates an interrupt, even though the flag is being set and the enable register configured to generate an interrupt.
Is there another register that needs to be accessed to reinitialise the interrupts?