I have an application in which I need to conditionally ACK or NAK the last received byte on the I2C bus based on the value of that byte.
However, with the eUSCI_B in I2C Slave Receiver mode on the FRAM MSP430FR5739 device, the eUSCI_B automatically ACKs the received byte before indicating it has received the byte to the firmware. I had attempted, in the UCRXIFG0 handler, to test the received value and do a NAK with the UCTXNACK bit, but that NAKed the next received byte - too late!
Is there a way to turn off the automatic ACK of received bytes in the eUSCI_B in I2C Slave Receiver mode similar to turning off the automatic ACK of received addresses with the UCSWACK bit?
I have no problems doing this with the USI in the MSP430G2231 device as the USI allows/requires more low-level control by the firmware, but the eUSCI_B seems have its own way about doing things automatically (which is generally simpler to code than with the USI).
Thanks,
Dan