首页 / 行业
雅特力AT32F435/437 DMA使用指南
2023-03-23 10:26:00
DMA简介
DMA控制器的作用不仅在增强系统性能并减少处理器的中断生成,而且还针对32位MCU应用程序专门优化设计。DMA控制器为存储器到存储器,存储器到外设和外设到存储器的传输提供了7个通道。每个通道都支持外设的DMA请求映射到任意通道上。
图1. DMA控制器架构
DMAMUX简介
对于如何将外设的DMA请求映射到任意的数据流通道上,就需要使用到DMAMUX。DMAMUX针对每个外设都设计了独有的ID号,使用者只需要将此ID号写入对应的寄存器中并打开DMAMUX功能即可。DMAMUX的引入,使得DMA相较于传统DMA控制器变得更加灵活,使用者可以随意的分配7个通道的使用情况,不必再纠结与某个IP的DMA请求只能固定使用在某个或某几个通道上。
各IP对应ID号如下表:
表1. 各IP对应ID号列表
注:表格中“DMAMUX请求”为ID号;“来源”为各IP的DMA请求。
DMA功能解析
可编程数据宽度
DMA控制器的通道可支持传输不同数据宽度,byte/halfword/word。通过DMA_CxCTRL中的PWIDTH和MWIDTH位可以对源数据和目标数据的数据宽度进行编程,通常情况下需要设置PWIDTH和MWIDTH位相等,当PWIDTH不等于MWIDTH时,会依据PWIDTH/MWIDTH设定将资料对齐。 图2. PWIDTH:byte, MWIDTH:half-word
图3. PWIDTH:half-word, MWIDTH:word
配置DMAMUX
在M2P与P2M模式下,必须配置DMAMUX,否则DMA不会响应外设DMA请求。DMAMUX的作用是为外设的DMA请求复用通道,即任何一个外设的DMA请求可以映射到DMA1/DMA2的任意通道,这大大增加了DMA通道分配的灵活性。
配置DMAMUX比较减到,只需调用专门提供的两个接口函数即可:
DMA配置解析
以下对DMA的配置接口及流程进行说明。
函数接口
表2. 通道配置函数列表
数据流配置
设置外设地址(CxPADDR寄存器)
数据传输的初始外设地址,在传输过程中不可被改变。
设置存储器地址(CxMADDR寄存器)
数据传输的初始内存地址,在传输过程中不可被改变。
配置数据传输量(CxDTCNT寄存器)
可编程的传输数据长度最大为65535。在传输过程中,该传输数据量的值会逐渐递减。
数据流配置(CxCTRL寄存器)
包含通道优先级,数据传输的方向、宽度、地址增量模式、循环模式和中断方式。
优先级(CHPL)
分为4个等级,最高优先级、高优先级、中等优先级和低优先级。
若有2个流优先级设定相同,则较低编号的流有较高的优先权。举例,流1优先于流2。
数据传输方向(DTD)
分为存储器到外设(M2P),外设到存储器(P2M)或存储器到存储器(M2M)传输。
在存储器到存储器传输模式下不允许使用循环模式、双缓冲模式和直接模式。
数据传输宽度(PWIDTH/MWIDTH)
根据实际使用情景,可配置宽度为byte、halfword、word。
地址增量模式(PINCM/MINCM)
当通道配置设定为增量模式时,下一笔传输的地址将是前一笔传输地址加上传输宽度(PWIDTH/MWIDTH)。
循环模式(LM)
当流配置设定为循环模式时,在最后一次传输后CxDTCNT寄存器的内容会恢复成初始值。
使能DMAMUX(MUXSEL寄存器的TBL_SEL位)
在非存储器到存储器(M2M)模式下时,需要使能DMAMUX功能,才能启动数据流响应外设的DMA请求。
写入外设ID号(MUXCxCTRL寄存器的REQSEL)
在非存储器到存储器(M2M)模式下时,需要将外设的DMA请求ID号写入,才能启动数据流响应外设的DMA请求。
打开数据流(CxCTRL寄存器的CHEN位)
配置流程
打开DMA时钟;
调用通道复位函数复位数据流;
调用结构体初始化函数初始化通道配置结构体;
调用初始化函数初始化通道;
调用DMAMUX使能函数以及ID号写入函数配置DMAMUX相关内容;
调用通道使能函数开启通道。
审核编辑 :李倩
最新内容
手机 |
相关内容
写flash芯片时为什么需要先擦除?
写flash芯片时为什么需要先擦除?,擦除,芯片,充电,初始状态,存储单元,数据,Flash芯片是一种非易失性存储器技术,用于存储数据并实现固华为公开半导体芯片专利:可提高三维
华为公开半导体芯片专利:可提高三维存储器的存储密度,专利,存储密度,存储器,芯片,存储单元,调整,华为是全球领先的信息与通信技术解STC15W芯片A/D、D/A转换的简单使用
STC15W芯片A/D、D/A转换的简单使用,简单使用,转换,芯片,模拟,输入,输出,STC15W系列芯片是一种高性能的单片机芯片,具有丰富的外设资什么是可编程只读存储器,可编程只读
什么是可编程只读存储器,可编程只读存储器的基本结构、特点、工作原理、应用、发明过程、故障分析、日常保养及市场前景,可编程只读CPSR寄存器和APSR寄存器的组成
CPSR寄存器和APSR寄存器的组成,寄存器,执行状态,指示,中断,计算,用于,CPSR(Current Program Status Register)和APSR(Application ProgSoC芯片上的寄存器设计与验证
SoC芯片上的寄存器设计与验证,验证,寄存器,芯片,地址,正确性,操作,SoC芯片(System on Chip)是一种集成了多个功能模块的芯片,包括处理一文了解存储器在安防领域的应用
一文了解存储器在安防领域的应用,存储器,检索,读写,事件,监控系统,数据,存储器在安防领域的应用十分广泛,主要包括视频监控系统、入国产车规MCU,突破高性能应用
国产车规MCU,突破高性能应用,突破,车规,国产,控制,外设,优化,国产车规MCU(Microcontroller Unit)是指在国内汽车制造业中使用的LM350T