31.5.4.2 Host DMA
When using the I2C host with
DMA, the ADDR register must be written with the desired address (ADDR.ADDR), transaction
length (ADDR.LEN), and transaction length enable (ADDR.LENEN). When ADDR.LENEN is written
to ‘1’ along with ADDR.ADDR, ADDR.LEN determines the number of data bytes
in the transaction from 0 to 255. DMA is then used to transfer ADDR.LEN bytes followed by
an automatically generated NACK (for host reads) and a STOP.
If a NACK is received by the client for a host write transaction before ADDR.LEN bytes, a STOP will be automatically generated and the length error (STATUS.LENERR) will be raised along with the INTFLAG.ERROR interrupt.
The I2C host generates the following requests:
- Read data received (RX): The request is set when host read data is received. The request is cleared when DATA is read.
- Write data needed for transmit (TX): The request is set when data is needed for a host write operation. The request is cleared when DATA is written.
