STM32F072CBT6产品设计参考②
STM32F072CBT6直接内存访问控制器(DMA)
直接内存访问(DMA)用于在外设和内存之间以及内存与内存之间提供高速数据传输。数据可以通过DMA快速移动,而不需要任何CPU操作。这使得CPU资源可以用于其他操作。DMA控制器最多有12个通道,每个通道专门用于管理来自一个或多个外设的内存访问请求。它有一个仲裁者来处理DMA请求之间的优先级。
直接存储器存取主要特点
•DMA上多达7个独立配置的通道(请求)
•STM32F09x在DMA2上提供了5个额外的独立配置通道(请求)
•每个通道都连接到专用的硬件DMA请求,每个通道也支持软件触发。这个配置是由软件完成的。
•来自DMA通道的请求之间的优先级是软件可编程的(4个级别,由非常高,高,中,低)或在平等情况下的硬件(请求1的优先级高于请求2,等等)。
•独立的源和目标传输大小(字节,半字,字),模拟打包和拆包。源/目的地址必须在数据大小上对齐。
•支持循环缓冲区管理
•3个事件标志(DMA半传输,DMA传输完成和DMA传输错误)逻辑上or在每个通道的单个中断请求中
•内存到内存传输
•外围设备到内存和内存到外围设备,以及外围设备到外围设备传输
•访问Flash, SRAM, APB和AHB外设作为源和目的地
•可编程传输数据数:最多65535
DMA功能描述,框图如下图所示。
DMA控制器通过与Cortex®-M0核心共享系统总线来执行直接内存传输。当CPU和DMA的目标是相同的目的地(内存或外设)时,DMA请求可能会在某些总线周期内停止CPU对系统总线的访问。总线矩阵实现循环调度,从而确保CPU至少有一半的系统总线带宽(到内存和外设的)。