Other Parts Discussed in Thread: MSP430F5638
I'm using an MSP430F5638 with the USCI in i2c master mode. In my application I have a need to send a number of back to back i2c transactions to a number of devices on the bus.
The MSP430F5xx interrupt vector register UCBxIV interrupt support for the UCSTPIFG does not exist for the i2c in master mode. I've enabled the interrupt in the UCBxIE, but I don't get interrupts when the STOP bit gets sent on the i2c bus. While in i2c master mode, I would like to know (preferably by interrupt) when the stop event occurred to mark the completion of an i2c bus transaction. I can then kick off another i2c transaction on the bus. I've seen numerous code examples that simply set the UCTXSTP and then poll in an infinite while loop waiting for the UCTXSTP bit to clear, before the next bus transaction is kicked off. This polling behavior is not desirable for my application.
Page 807 of SLAU208j describes the usage of the UCSTPIFG while is slave mode. It does not state that it's not supported in master mode.
Is the usage of the UCSTPIFG while in i2c master mode supported?
Any tips for determining when to kick off back to back i2c transactions without repeated polling of UCTXSTP or UCBBUSY?
Would I be better off by sending a restart by setting the UCTXSTT between the transactions instead of setting UCTXSTP?