32.6.4 DMA, Interrupts and Events

Each interrupt source has its own interrupt flag. The interrupt flag in the Interrupt Flag Status and Clear register (INTFLAG) will be set when the interrupt condition is meet. Each interrupt can be individually enabled by writing ‘1’ to the corresponding bit in the Interrupt Enable Set register (INTENSET), and disabled by writing ‘1’ to the corresponding bit in the Interrupt Enable Clear register (INTENCLR). As both INTENSET and INTENCLR always reflect the same value, the status of interrupt enablement can be read from either register.

An interrupt request is generated when the interrupt flag is set and the corresponding interrupt is enabled. The interrupt request is active until the interrupt flag is cleared, the interrupt is disabled or the I2C is reset. See the INTFLAG32.7.5 Interrupt Flag Status and Clear (Client) or INTFLAG32.8.6 Interrupt Flag Status and Clear (Host) register for details on how to clear interrupt flags.

Table 32-2. Module Request for SERCOM I2C Client
Condition Request
DMA Interrupt Event
Data needed for transmit (TX) (Client transmit mode) Yes

(request cleared when data is written)

NA
Data received (RX) (Client receive mode) Yes

(request cleared when data is read)

Data Ready (DRDY) Yes
Address Match (AMATCH) Yes
Stop received (PREC) Yes
Error (ERROR) Yes
Table 32-3. Module Request for SERCOM I2C Host
Condition Request
DMA Interrupt Event
Data needed for transmit (TX) (Host transmit mode) Yes

(request cleared when data is written)

NA
Data needed for transmit (RX) (Host transmit mode) Yes

(request cleared when data is read)

Host on Bus (MB) Yes
Stop received (SB) Yes
Error (ERROR) Yes