SLAZ148I October 2012 – May 2021 MSP430F167
I2C Module
Functional
ARDYIFG Interrupt flag generation can fail in I2C slave mode.
When the USART is configured for I2C mode (U0CTL.I2C, SYNC, and I2CEN are set) and the module is configured as an I2C slave (U0CTL.MST=0), the ARDYIFG interrupt flag generation can fail, even when both the I2C stop condition is received and the receive buffer is empty.
This condition occurs when the I2C clock source selected by I2CSSELx is disabled by the Status Register (SR) control signals OSCOFF or SCG1.
In this configuration, the hardware clock activation is enabled by the I2C module. However, if RXRDYIFG is polled to determine data reception, the I2C hardware clock activation may be disabled before the ARDYIFG is generated.
(1)Use interrupt service routines using the I2C interrupt vector generator feature (I2CIV) to handle all I2C interrupts.
OR
(2)After detection of I2C Own Address (OAIFG), the selected I2C clock source is enabled by clearing the OSCOFF or SCG1 Status Register (SR) bits. When the ARDYIFG is detected, the OSCOFF or SCG1 in the Status Register (SR) can be set to disable the clock source and return to the desired low power mode operation.
OR
(3)For slave only devices, it is normally not necessary to use ARDYIFG.