28.6.8 DMA,中断和事件
28.6.8.1 DMA操作
每个串化器能被连接到一个单一的DMAC通道或者在立体声模式每一个数据时隙到一个DMAC通道。
这个选择是通过向SERCTRLm.DMA比特写来选择的。
I2S产生以下DMA请求:
。如果SERCTRLm.DMA=0,所有数据通道或时隙用I2S_DMAC_ID_RX_m DMA触发接收或者I2S_DMAC_ID_TX_m触发传输。
。如果SERCTRLm.DMA=1,在接收模式,奇数时隙用I2S_DMAC_ID_RX_m DMA触发并且在偶数时隙用I2S_DMAC_ID_TX_m 触发。
。如果SERCTRLm.DMA=1,在传输模式,奇数时隙用I2S_DMAC_ID_TX_m DMA触发并且在偶数时隙用I2S_DMAC_ID_RX_m 触发。
DMAC连续地从DATAm寄存器读和写全部的数据时隙。
DMAC传输可以用32比特字,16比特半字,或8比特字节根据SERCTRLm.DATASIZE字段的值来决定。
8比特紧缩立体声用16比特半字并且16比特紧缩立体声用32比特字。
28.6.8.2 中断
I2S有以下中断源:
。接收好(RXRDYm):这是一个同步中断并且能被用来从任何睡眠模式唤醒。
。接收上溢(RXORm): 这是一个同步中断并且能被用来从任何睡眠模式唤醒。
。传输好(TXRDYm):这是一个同步中断并且能被用来从任何睡眠模式唤醒。
。传输下溢(TXORm):这是一个同步中断并且能被用来从任何睡眠模式唤醒。
|