STM32G0微控制器中嵌入的直接存储器访问/DMA用于在外设与存储器、存储器与外设以及存储器与存储器之间提供高速数据传输,因此无需占用CPU,这样CPU可以用于执行其他操作。
DMA通道可以访问任何存储器所映射的空间,包括AHB外设(例如CRC)、AHB存储器(例如SRAM)或APB外设(例如USART)。DMA是AHB总线上的主设备,并具有灵活的配置,此外,还提供硬件和软件优先级管理,有三种不同的传输模式:外设到外设、外设到存储器、存储器到外设以及存储器到存储器。
应用优势:
首先,DMA支持各种不同的外设请求,例如定时器、ADC和通信外设,这将减轻CPU负载并简化集成。
负责处理DMA传输的有两个单元:DMA请求复用器/DMAMUX和DMA控制器。DMA控制器将数据从源地址传输到目标地址,并管理不同通道的优先级。DMAMUX使用户能够将请求映射到相应的DMA通道,DMAMUX还处理触发信号和同步。
在与STM32F0比较时我们会发现,主要的差异在于F0有两个不同的DMA,而G0只有一个DMA,DMA的特性是相同的,主要的差别在于G0内置有了DMAMUX,而F0没有。
DMAMUX请求复用器允许在STM32G0外设与DMA控制器之间实现DMA请求线的路由选择,该路由功能通过可编程的多通道DMA请求线复用器来确保实现每个通道将无条件地或配合DMAMUX同步输入事件,选择唯一的DMA请求线。DMAMUX还可以用作DMA请求生成器,基于其输入触发信号的可编程事件,并生成DMA请求。DMAMUX用于将外设请求映射到7个可用的DMA通道上,这种映射是可编程的。此外,DMAMUX内置4通道请求生成器,可将触发信号转换为DMA请求,支持的触发如下:16中外部中断、低功耗定时器1事件、两种超时事件,定时器14输出比较事件和DMAMUX自身生成的4种事件。
STM32G0中DMA和DMAMUX的特性:
DMAMUX有57个被映射到7个DMA通道的外设请求、4个请求生成器通道、23个触发信号输入和23个同步输入的外设请求。
DMA提供7个通道