DMA

Posted 『流浪的Coder』

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DMA相关的知识,希望对你有一定的参考价值。

DMA:如果将一串字符串通过串口传送到外设中去,用传统的方法,则CPU将不断的去扫描UTSTAT这个寄存器,在字符发送期间,CPU将不能做任何其他事情。为了解决这个问题,则在诞生了DMA

 

CPU只需要告诉DMA控制器,目标地址和目的地址就行了,其他事情就直接交由DMA去完成。

 

DMA控制器控制:
通道数

2440支持4channelDMA 通道

 

请求源

 

由上图说示,每一个通道支持6个请求源,所谓请求源就是指,哪些支持哪些通信去使用DMA

 

工作时序

 

由上图所示可以看出,DMA请求信号响应大约两个时钟周期后,响应信号开始响应,大约响应三个时钟周期后,将DMA正式接管总线

 

工作模式

请求模式(demand模式):如果DMA完成一次请求信号后,request信号任然有效,DMA就任务这是下一次请求信号,并继续下一次信息传输。

 

握手模式(handshake模式):DMA完成一次请求后,等待request信号无效,在等待下一次的请求信号有效后,再进行信息传输

 

DMA 源地址数据寄存器:

作用分析:

用于将告诉DMA 源数据的起始地址是多少,并将该地址写入其中

 

源地址控制寄存器:

作用分析:

用于决定数据传送通道使用什么通道,和数据源地址增长变化形式。

 

DMA目的地址数据寄存器:

作用分析:

用于将存放传送数据的目的地起始地址

 

DMA目的控制寄存器

作用分析:

用于存放目的地址的控制信息

 

控制字详情:

这里采用APB总线,又因为这里的目的地址就只有UTHX0所以INC0

 

DMA控制寄存器(该控制寄存器级别略大):

作用分析:

用于选择DMA源,中断源软件类型还是硬件类型,传输完成后是否继续传输,给定所传输数据的大小

 

控制字详情:

 

 

 

 

DMA开关寄存器

作用:用于使能DMA

 

控制字详情:

以上是关于DMA的主要内容,如果未能解决你的问题,请参考以下文章

DMA保护关闭有什么影响

STM32 DMA问题

STM32 ADC 多通道 DMA 问题??

DMA 是如何工作的? DMA的工作流程是啥? [关闭]

STM32F103(二十一)DMA(超详细的~)

[STM32F103]DMA原理