动脉AT32F423 DMA 用户指南

小夏 数码 更新 2024-02-22

DMA 简介

DMA 控制器的作用不仅在于提高系统性能和减少处理器中断的产生,而且还专门设计用于针对 32 位 MCU 应用进行优化。 DMA 控制器提供 7 个通道,用于内存到内存、内存到外设和外设到内存的传输。 每个通道都支持将外设的 DMA 请求映射到任何通道。 图1DMA 控制器架构

DMAMUX 简介

DMAMUX 用于将外设的 DMA 请求映射到任意流量通道。 DMAMUX 对每个外设都有一个唯一的 ID 号,用户只需将此 ID 号写入相应的寄存器并打开 DMAMUX 功能即可。 DMAMUX 的引入使得 DMA 比传统的 DMA 控制器更加灵活,用户可以随意分配 7 个通道的使用,再也不用担心某个 IP 只能在一个或几个通道上使用的 DMA 请求。 每个IP地址对应的ID号如下: 表1每个 IP 地址对应的 ID 号列表

注意:**中的“DMAMUX请求”是ID号;“* 每个 IP 的 DMA 请求。

DMA功能分析

可编程数据宽度

DMA 控制器的通道可以支持不同数据宽度、字节和半字字的传输。 源数据和目标数据的数据宽度可以通过 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 就像调用两个专门提供的接口函数一样简单

配置请求生成器模块

配置 DMAMUX 后,您可以选择配置 DMA 请求生成器模块,该模块共有 4 个请求生成器通道。 该模块不需要任何传统的外设(如定时器、SPI等)来提供DMA请求,可以通过外部EXINT输入作为DMA请求源输入。 配置 Request Generator 模块就像调用专门提供的接口函数一样简单:

配置请求同步模块

配置 DMAMUX 后,您可以选择配置 DMA 同步模块,该模块共有 7 个同步通道。 启用此功能后,当外设产生DMA请求时,DMA不会立即响应并发送数据,而是等待同步信号的到来,当接收到同步信号时,DMA会根据配置发送数据。 同步信号可由外部输出输入提供,配置同步模块就像调用专门提供的接口功能一样简单

DMA 配置解析

下面介绍 DMA 配置接口和流程。

功能接口

表2通道配置函数列表

数据流配置

设置外设地址(CXPADDR 寄存器)。在传输过程中,数据传输的初始外设地址不能更改。 设置内存地址(CXMADDR 寄存器)。数据传输的初始存储地址在传输过程中不能更改。 配置传输的数据量(cxdtcnt 寄存器)。可编程传输数据的最大长度为 65535。 在传输过程中,传输的数据量值逐渐减少。 数据流配置(cxctrl 寄存器)。

它包括信道优先级、数据传输方向和宽度、地址增量模式、循环模式和中断模式。

优先级 (CHPL)。

有 4 个级别,最高优先级、高优先级、中优先级和低优先级。

如果两个流具有相同的优先级,则编号较低的流具有较高的优先级。 例如,流 1 优先于流 2。

数据传输方向 (DTD)。它分为内存到外设 (M2P)、外设到内存 (P2M) 或内存到内存 (M2M) 传输。 在内存到内存传输模式下不允许循环模式、双缓冲模式和直接模式。 数据传输的宽度 (pwidth mwidth)。根据实际使用场景,您可以将宽度配置为字节、半字或字。 地址递增模式 (pincm mincm)。当通道配置设置为增量模式时,下一次传输的地址将是上一次传输的地址加上传输宽度(pwidth mwidth)。 循环模式 (LM)。当流配置设置为循环模式时,CXDTCNT 寄存器的内容将在最后一次传输后恢复为其初始值。 启用 DMAMUX(MUXsel 寄存器的 TBL SEL 位)。在非内存到内存 (M2M) 模式下,需要启用 DMAMUX 以启动数据流以响应来自外围设备的 DMA 请求。 写入外设 ID 号(muxcxctrl 寄存器的 reqsel)。在非内存到内存 (M2M) 模式下,需要写入外设的 DMA 请求 ID 号,以便启动数据流以响应外设的 DMA 请求。 打开数据流(cxctrl 寄存器的 chen 位)。

配置流程

打开 DMA 时钟;调用通道复位功能复位数据流;调用 struct 初始化函数,初始化通道配置结构;调用初始化函数初始化通道;调用 dmamux enable 函数并写入 id number 函数,配置 dmamux 相关内容调用通道使能函数打开通道。 如需数据表、样品测试、采购、BOM匹配等需求,**客服微信:13310830171。

相似文章

    英锦赛6-3!一飞冲天,破晓特晋级总决赛,丁俊晖将加盟火箭

    克英国锦标赛半决赛,中国明星丁俊晖面对准神特朗普。这场比赛引起了中国球迷的广泛关注,因为这是一场 五虎德比 而且丁俊晖在去年的英国锦标赛进入了决赛。虽然特鲁姆普最近状态不错,在英格兰 武汉和北爱尔兰公开赛上连续夺冠,但大家都很期待丁俊晖能够突破特朗普,与火箭奥沙利文决赛。第一场比赛开始丁俊晖比赛开始...

    一次性保付保险特别合适

    随着社会经济的发展,保险在人们的生活中扮演着越来越重要的角色。趸缴保险作为一种常见的保险形式,有其独特的特点和适用的群体。本文将详细分析一次性支付保险的特点,并针对不同人群给出适用的建议。整笔存款保险的特点 .一笔过缴付保费 趸缴保险的特点之一是投保人需要一次性支付全部保费。这在一定程度上增加了投保...

    VLIDATE引领健康新潮流,纯天然成分塑造生活品质

    越来越多的城市居民正在寻找一种高效安全的方式,在繁忙的生活中保持健康。作为健康品牌的领军企业,Vlidate以其高端的定位 纯天然的成分和科学的配方,为您的健康保驾护航。Vlidate从全球无污染地区收集 纯天然原料,并严格挑选,以确保产品的纯度和有效性。Vlidate拥有大自然最纯净的礼物。Vli...

    Abbott Elik SR 遵循国际营养指南,专为高血糖人群设计

    雅培礼品场景内容营销论文 随着生活方式的改变和饮食结构的调整,高血糖已成为现代人面临的普遍问题。为了满足这一人群的营养需求,Abbott Ileca 的 SR 被创造出来,成为一种专为高血糖人群设计的营养补充剂。Abbott Elekya SR 的营养比例完全符合美国 欧洲和中国多个医学会的营养指南...

    雅培伊利佳SR产品推广与品牌推广

    近年来,糖尿病问题日益严重,高血糖人群合理饮食和营养摄入的需求日益凸显。雅培Elikya SR作为专为高血糖人群设计的营养产品,具有独特的优势,通过全面 有针对性的推广,为消费者提供专业的营养解决方案。特征 种营养素 雅培伊利佳SR富含种营养素,满足高血糖人群多样化的营养需求。缓释配方 独特的缓释配...