DMA 模块提供了一种在外设和/或存储器之间传输数据的硬件方法,无需 CPU 干预,从而为其他系统功能释放带宽。此外,DMA 还能够在数据传输时对其进行正交重排,以及在缓冲器之间对数据执行“乒乓”操作。这些特性对于将数据结构化为模块以实现最优 CPU 处理非常有用。图 7-1 显示了 DMA 的器件级方框图。
DMA 模块特性包括:
- 具有独立 ePIE 中断的双通道
- 外设中断触发源
- ADC 中断和 EVT 信号
- 外部中断
- MCPWM SOC 信号
- CPU 计时器
- SPI 发送和接收
- UART 发送和接收
- 常规 FIFO 级别触发(UARTx_TX 和 UARTx_RX)以及单个请求触发(UARTx_TX_SREQ 和 UARTx_RX_SREQ)
- 数据源和目标:
- GSx RAM
- ADC 结果寄存器
- 控制外设寄存器(MCPWM、eQEP)
- 通信外设寄存器(SPI,UART)
- PGA 控制寄存器
- CMPSS 控制寄存器
- 字大小:16 位或 32 位(SPI 限制到 16 位)
- 吞吐量:每个字三个周期,无需仲裁
注: 具有 EALLOW 保护功能的外设寄存器受写保护,可防止非预期的 DMA 写入。要使用 DMA 写入这些寄存器、请禁用 EALLOW 保护机制。