0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

AT32讲堂058 | 雅特力AT32F425 DMA使用指南

雅特力 AT32 MCU ? 2023-06-21 17:19 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

DMA简介

IDMA控制器的作用不仅在增强系统性能并减少处理器的中断生成,而且还针对32位MCU应用程序专门优化设计。DMA控制器为存储器到存储器,存储器到外设和外设到存储器的传输提供了7个通道。每个通道都支持外设的DMA请求映射到任意通道上。图1. DMA控制器架构b97e8c0e-1014-11ee-a579-dac502259ad0.png

DMA请求弹性映射简介

在使用AT43F425xx系列DMA时,必须配置DMA请求弹性映射功能,否则DMA不会运作。DMA请求弹性映射可将任意一个外设产生的DMA请求映射到通道1到通道7中的任意一个通道。当设定弹性模式时(DMA_FLEX_EN=1),每个通道的请求来源由CHx_SRC来设定[x=1~7]。使用例子:假如DMA通道1指定成I2C1_TX,通道3要指定成I2C1_RX,其他不使用,则设定上必须是DMA_FLEX_EN=1,CH1_SRC=11,CH3_SRC=10,CH[2/4/5/6/7]_SRC=0。CHx_SRC设定值对应请求来源见下表:各IP对应ID号如下表:表1. 各IP对应ID号列表b98b510a-1014-11ee-a579-dac502259ad0.png注:表格中“CHx_SRC”为ID号;“请求来源”为各IP的DMA请求。

DMA功能解析

编程数据宽度

DMA控制器的通道可支持传输不同数据宽度,byte/halfword/word。通过DMA_CxCTRL中的PWIDTH和MWIDTH位可以对源数据和目标数据的数据宽度进行编程,通常情况下需要设置PWIDTH和MWIDTH位相等,当PWIDTH不等于MWIDTH时,会依据PWIDTH/MWIDTH设定将资料对齐。图2. PWIDTH:byte, MWIDTH:half-wordb9b34692-1014-11ee-a579-dac502259ad0.png图3. PWIDTH:half-word, MWIDTH:wordb9c2507e-1014-11ee-a579-dac502259ad0.png

配置DMA弹性映射

在M2P与P2M模式下,必须配置DMA弹性映射,否则DMA不会响应外设DMA请求。DMA弹性映射的作用是为外设的DMA请求复用通道,即任何一个外设的DMA请求可以映射到DMA1的任意通道,这大大增加了DMA通道分配的灵活性。配置DMA弹性映射比较简单,只需调用专门提供的接口函数即可:b9d0e2e2-1014-11ee-a579-dac502259ad0.png

DMA配置解析

以下对DMA的配置接口及流程进行说明。

函数接口

表2. 通道配置函数列表b9dc0bd6-1014-11ee-a579-dac502259ad0.png

数据流配置

设置外设地址(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寄存器的内容会恢复成初始值。

配置DMA弹性映射(DMA_SRC_SELx寄存器的CHx_SRC)

在非存储器到存储器(M2M)模式下时,需要将外设的DMA请求DMA请求号写入,才能启动通道响应外设的DMA请求。

打开通道(CxCTRL寄存器的CHEN位)

配置流程

打开DMA时钟

调用通道复位函数复位数据流;

调用结构体初始化函数初始化通道配置结构体;

调用初始化函数初始化通道;

调用DMA请求映射使能函数配置弹性映射功能;

调用通道使能函数开启通道。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • dma
    dma
    +关注

    关注

    3

    文章

    576

    浏览量

    103687
  • AT32
    +关注

    关注

    1

    文章

    121

    浏览量

    2775
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    科技AT32F422/426系列MCU全新发布,超值型重塑高性能MCU标杆

    聚焦主流嵌入式应用的性能升级与成本优化双重需求,科技全新推出AT32F422/426系列超值型微控制器。该系列兼具高算、高性价比和应
    的头像 发表于 08-13 19:02 ?264次阅读
    <b class='flag-5'>雅</b><b class='flag-5'>特</b><b class='flag-5'>力</b>科技AT32<b class='flag-5'>F</b>422/426系列MCU全新发布,超值型重塑高性能MCU标杆

    ??AT32F435:240MHz多轴伺服控制成本最优解?

    AT32系列以“纳米级精度、微秒级响应、全栈式生态”重构伺服控制系统边界,其算架构、实时控制链及安全机制精准匹配工业自动化高可靠性需
    的头像 发表于 07-25 10:35 ?178次阅读
    ??<b class='flag-5'>雅</b><b class='flag-5'>特</b><b class='flag-5'>力</b>AT32<b class='flag-5'>F</b>435:240MHz多轴伺服控制成本最优解?

    首日速递 | 闪耀2025慕尼黑上海电子展,全方位展现智能“芯”实力

    4月15日,慕尼黑上海电子展(electronicaChina2025)在上海新国际博览中心盛大启幕。携多款AT32系列MCU新品及完整应用方案矩阵,重磅亮相本届展会,通过四大核
    的头像 发表于 04-16 00:15 ?498次阅读
    首日速递 | <b class='flag-5'>雅</b><b class='flag-5'>特</b><b class='flag-5'>力</b>闪耀2025慕尼黑上海电子展,全方位展现智能“芯”实力

    AT32F402/F405入门使用指南

    搭建AT32开发环境一、调试工具及开发板目前AT32F402/AT32F405开发板都自带AT-Link-EZ调试工具,AT-Link-EZ如下图左边红框所示,它也可拆开后单独搭配其他电路板使用,支持IDE在线调试、在线烧录、U
    的头像 发表于 03-28 18:59 ?990次阅读
    <b class='flag-5'>雅</b><b class='flag-5'>特</b><b class='flag-5'>力</b>AT32<b class='flag-5'>F</b>402/<b class='flag-5'>F</b>405入门<b class='flag-5'>使用指南</b>

    AT32 Workbench焕“芯”升级!引入Middleware助力开发高效提速

    近日,AT32Workbench开发工具完成重大更新升级,新增对MiddlewareFreeRTOS,以及MiddlewaresUSB_DEVICE和USB_HOST的支持。此次升级致力于深度
    的头像 发表于 03-07 18:46 ?549次阅读
    <b class='flag-5'>雅</b><b class='flag-5'>特</b><b class='flag-5'>力</b><b class='flag-5'>AT32</b> Workbench焕“芯”升级!引入Middleware助力开发高效提速

    基于AT32F421的遥控攀爬车电调应用方案

    目的,而以征服崎岖路面和各种地形障碍为目标,通常需要应对陡峭坡道、松软沙地以及崎岖岩石等复杂路面。基于AT32F421设计的摇控攀爬车电调,自适应调节扭矩输出
    的头像 发表于 01-20 18:36 ?556次阅读
    基于<b class='flag-5'>雅</b><b class='flag-5'>特</b><b class='flag-5'>力</b>AT32<b class='flag-5'>F</b>421的遥控攀爬车电调应用方案

    AT32F402/F405时钟配置

    电子发烧友网站提供《AT32F402/F405时钟配置.pdf》资料免费下载
    发表于 01-15 15:24 ?0次下载
    <b class='flag-5'>雅</b><b class='flag-5'>特</b><b class='flag-5'>力</b>AT32<b class='flag-5'>F</b>402/<b class='flag-5'>F</b>405时钟配置

    AT32F402/F405 DMA使用指南

    DMA简介DMA控制器的作用不仅在增强系统性能并减少处理器的中断生成,而且还针对32位MCU应用程序专门优化设计。DMA控制器为存储器到存储器,存储器到外设和外设到存储器的传输提供了7个通道。每个
    的头像 发表于 11-20 01:03 ?1090次阅读
    <b class='flag-5'>雅</b><b class='flag-5'>特</b><b class='flag-5'>力</b>AT32<b class='flag-5'>F</b>402/<b class='flag-5'>F</b>405 <b class='flag-5'>DMA</b><b class='flag-5'>使用指南</b>

    发布高性能电机控制专用MCU

    近日,科技正式推出了其首款高性能电机控制专用MCU——AT32M412/M416。这款MCU专为出行工具、家电及工业控制等应用而设计,旨在满足市场对于高效、精准电机控制解决方案的迫切需求。
    的头像 发表于 11-01 18:11 ?1404次阅读

    AT32讲堂088 | AT32F402/F405时钟配置

    介绍如何结合提供的V2.x.x的板级支持包(BSP)来配置时钟。以下介绍时钟配置的方法主要分两种:1、以手动编写代码调用BSP中提供的驱动函数接口来进行时钟配
    的头像 发表于 09-15 08:08 ?1140次阅读
    <b class='flag-5'>AT32</b><b class='flag-5'>讲堂</b>088 | <b class='flag-5'>雅</b><b class='flag-5'>特</b><b class='flag-5'>力</b>AT32<b class='flag-5'>F</b>402/<b class='flag-5'>F</b>405时钟配置

    AT32讲堂087 | AT32 IDE快速入门指南

    新建项目新项目向导AT32ID提供支持MCU的C语言项目模板,方便用户快速创建项目。菜单栏【File】>【New】>【CProject】。新建项目向导的对话框将出现。在对
    的头像 发表于 09-15 08:08 ?1562次阅读
    <b class='flag-5'>AT32</b><b class='flag-5'>讲堂</b>087 | <b class='flag-5'>雅</b><b class='flag-5'>特</b><b class='flag-5'>力</b><b class='flag-5'>AT32</b> IDE快速入门<b class='flag-5'>指南</b>

    STM32CUBEMX(7)--移植AT32F403AVGT(兼容STM32F103VGT6),DAC输出电压

    概述 本篇文章主要介绍如何使用STM32CubeMX移植到AT32F403AVGT7,并通过DAC输出电压,在芯片中有2个12位的DAC口可以供选择。 硬件准备 首先需要准备一
    发表于 09-06 16:40

    STM32CUBEMX(6)--移植AT32F403AVGT7,双串口通过DMA方式接收不定长数据

    概述 本篇文章主要介绍如何使用STM32CubeMX移植到AT32F403AVGT7,并通过双串口输出打印。 直接存储器访问(DMA)
    发表于 09-06 16:37

    AT32 MCU的随机数生成

    概述产品和生态系统安全性的需求比以往任何时候都更加重要。真随机数是所有安全系统的核心,其质量会影响设计的安全性。因此在没有内置硬件TRNG的AT32的微控制器系列中,如何提高随机数的有效,来符合
    的头像 发表于 08-30 12:26 ?1427次阅读
    <b class='flag-5'>雅</b><b class='flag-5'>特</b><b class='flag-5'>力</b><b class='flag-5'>AT32</b> MCU的随机数生成

    AT32讲堂085 | AT32 MCU HICK时钟校准

    简介AT32系列MCU内部都有提供适合运行的内部高速时钟(HICK),其本质就是内置于芯片的RC振荡器。在25℃下,其典型值频率8MHz的精度由工厂校准到±1%,在-40到105℃,该内部高速时钟
    的头像 发表于 08-30 12:26 ?1347次阅读
    <b class='flag-5'>AT32</b><b class='flag-5'>讲堂</b>085 | <b class='flag-5'>雅</b><b class='flag-5'>特</b><b class='flag-5'>力</b><b class='flag-5'>AT32</b> MCU HICK时钟校准