27.6.4 DMA,中断和事件
27.6.4.1 DMA操作
为了DMA操作smart 模式(CTRLB.SMEN)必须被使能。
从机DMA
当用I2C从机DMA时,一个地址匹配将导致地址中断标志(INTFLAG.ADDRMATCH)被置位。在中断已经服
务后,数据传输将被通过DMA执行。
I2C从机产生下列请求:
。写数接收(RX):当主机写数据被接收请求被设置。当DATA被读出请求被清除。
。读数据需要传输(TX):当数据需要主机读操作请求被设置。当DATA被写请求被清除。
主机DMA
当用I2C主机DMA时,ADDR寄存器必须被写期望的地址,传输长度(ADDR.LEN),和传输长度使能
(ADDR.LENEN)。当ADDR.LENEN随着ADDR.ADDR被写1,ADDR.LEN限定传输的数据字节从0到255。DMA然后用来传
输ADDR.LEN字节,紧跟着一个自动产生非应答(主机读)和一个停止。
如果非应答从主机发出被从机接收在ADDR.LEN字节之前,一个停止将自动产生并且长度错误
(STATUS.LENERR)将被置位,同时INTFLAG.ERROR中断。
I2C主机产生下列请求:
。读接收的数据(RX):这个请求被设置当主机读数据被接收。DATA被读出请求被清除。
。写需要传输的数据(TX):这个请求被设置当数据需要主机写操作。请求被清除当DATA被写。
|