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

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

3天内不再提示

如何使用DMA弹性映射请求

MCU开发加油站 来源:MCU开发加油站 作者:MCU开发加油站 2022-05-05 15:35 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

概述

在使用Artery部分系列MCU时(如AT32F413AT32F415AT32F403AAT32F407),可以使用DMA弹性映射功能。此功能使得DMA的通道配置更加灵活,可以将某外设的DMA请求通道指定到DMA1或者DMA2共14个通道中的任意一个通道。(如:可以将SPI1接受数据的DMA请求指定到DMA1的通道7)。

本指南将介绍如何使用DMA弹性映射请求,从而使得DMA传输变得更加灵活多变。

配置及使用方法

常规DMA使用(DMA固定映射)

常规的DMA使用以及配置方式为:外设的DMA通道已经固定且不可改变,使用时配置好再使能固定通道即可。这就意味着如果想开启某个外设的DMA功能,那么通道是不可改变的,例如想使用SPI1的RX DMA功能,那么就要查看RM的手册,如下:

表1. DMA固定映射请求

7faa1bec-cc45-11ec-bce3-dac502259ad0.png

从表格中可以知道需要开启DMA1的通道2。

DMA弹性映射使用

DMA弹性映射请求功能提供了一种更灵活的使用方式,即外设的DMA通道不固定,可选择DMA1和DMA2中,共14个通道的任意一个通道。想要使用此功能,需要通过以下几步的设定:

1) 开启DMA弹性映射功能

将DMA的通道来源寄存器1的第24bit写1,即DMA_SRC_SEL1寄存器的DMA_FLEX_EN位。向通道设置对应的寄存器中写入相应的硬件ID号。每个外设的DMA请求都分配了一个硬件ID号,只要将这个ID号写进通道来源寄存器中即可。ID号可查看RM中的表格,以403A为例,如下:

表2. 403A各个信道的DMA弹性请求一览

7fc7c174-cc45-11ec-bce3-dac502259ad0.png

上表中的CHx_SRC设定值就是硬件ID号,将这个ID号写进通道来源寄存器中的对应通道bit位就可以了。例如:要将SPI1的RX的DMA请求映射到DMA1的通道7,那么就要将0x09写入到DMA_SRC_SEL1寄存器的CH7_SRC[23:16]。其他配置与常规DMA配置相同通过以上3步的配置,弹性映射功能即可使用。

注:DMA1/2的DMA_FLEX_EN必须要同时设定为1或时,DMA1/2的映像模式必须一致。无法DMA1是固定式映像,DMA2是弹性式映像。

2) DMA弹性映射库函数使用

以上的配置在BSP中的dma.hdma.c的库文件中有提供相应的库函数,使用者只需调用库函数即可完成DMA弹性映射模式的配置。库函数说明如下:

表3. DMA弹性映射库函数说明

7fe6600c-cc45-11ec-bce3-dac502259ad0.png

此函数只需在配置好DMA常规功能后调用即可,如下:

图1. DMA固定映射库函数调用范例

8000c5e6-cc45-11ec-bce3-dac502259ad0.png

上图中为设置TIMER1的更新中断为DMA弹性映射请求范例。

例程说明

DMA弹性映射功能在BSP中例程,路径为:AT32F403A_407_Firmware_Library_V2.x.xprojectat_start_f403aexamplesdmadata_to_gpio_flexible(以403A路径为例)

下面将对这两个例程做一个使用说明。

• data_to_gpio_flexible

例程data_to_jpio_flexible

本例程实现的功能为利用DMA将SRAM的数据传输到GPIO口的输出寄存器中,从而达到控制GPIO口输出的目的。同时配置TMER2产生overflow中断并产生DMA请求,配置次DMA请求为弹性映射模式。TIMER2每产生一次DMA请求,DMA就从SRAM搬运一笔数据到GPIO口。DMA相关的配置代码:

8019eada-cc45-11ec-bce3-dac502259ad0.png

实验结果可采用逻辑分析仪抓取GPIO口数据查看。

关于雅特力

雅特力科技于2016年成立,是一家致力于推动全球市场32位微控制器创新趋势的芯片(MCU)设计公司,专注于ARM Cortex-M4/M0+的32位微控制器研发与创新,全系列采用55nm先进工艺及ARM Cortex-M4高效能或M0+低功耗内核,缔造M4业界最高主频288MHz运算效能,并支持工业级别芯片工作温度范围(-40°~105°)。

雅特力目前已累积相当多元的终端产品成功案例:如微型打印机、扫地机、光流无人机、热成像仪、激光雷达、工业缝纫机、伺服驱控、电竞周边市场、断路器、ADAS、T-BOX、数字电源、电动工具等终端设备应用,广泛地覆盖5G物联网、消费、商务及工控等领域。

审核编辑 :李倩

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

    关注

    147

    文章

    18604

    浏览量

    386648
  • 寄存器
    +关注

    关注

    31

    文章

    5588

    浏览量

    129042
  • dma
    dma
    +关注

    关注

    3

    文章

    577

    浏览量

    105332

原文标题:AT32 MCU DMA通道的灵活配置

文章出处:【微信号:mcugeek,微信公众号:MCU开发加油站】欢迎添加关注!文章转载请注明出处。

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    芯源的直接内存访问(DMA)技术介绍

    芯片内置 DMA 控制器,4 条独立通道,外设和存储器之间、外设和外设之间、存储器和存储器之间的高速数 据传输。 每个 DMA 通道都通过专用的硬件连接 DMA 请求,并支持独立的软件
    发表于 11-12 07:40

    AG32 内置的CPLD 的DMA功能如何实现?

    内部数据准备就绪后,主动触发DMA请求信号 •检测到DMA请求后,MCU的DMA控制器自动将CPLD中的数据搬运至MCU指定的RAM地址
    发表于 10-31 15:42

    NVMe高速传输之摆脱XDMA设计42:DMA 读写功能验证与分析

    DMA 请求情况下的数 据传输。 对 DMA 功能的测试要考虑到 DMA 长度、 操作等配置因素, 在得到配置信 息后, 待测设计应能正确完成数据传输任务。 以 4KB 数据
    发表于 10-27 09:10

    NVMe高速传输之摆脱XDMA设计29: TLP 请求处理流程

    请求类型为 MEM 读写请求时使用地址路由的方式。 如果请求地址在此设备 BAR 空间内, 则对 BAR 空间进行读写操作,读操作将生成 CplD, 从对应请求端口的输出端口发出;
    的头像 发表于 09-23 09:05 385次阅读
    NVMe高速传输之摆脱XDMA设计29: TLP <b class='flag-5'>请求</b>处理流程

    NVMe高速传输之摆脱XDMA设计13:PCIe请求模块设计(下)

    在接收到请求总线接口的请求事务后,当请求类型的值为0时,表示通过PCIE硬核的配置管理接口发送请求,由于请求接口的接口和时序与配置管理接口基
    的头像 发表于 08-04 16:35 370次阅读
    NVMe高速传输之摆脱XDMA设计13:PCIe<b class='flag-5'>请求</b>模块设计(下)

    无法配置 ADC1 来触发 DMA 传输,怎么解决?

    启动。 您能帮我设置 DMA 通道的触发源吗? 此外,我在 ADC1 章节中读到以下声明: [i]比较通道有 8 个事件(CMPUPx 和 CMPLOx),可以请求 DMA,参见图 187。 [i]因此
    发表于 07-21 06:57

    NVMe IP高速传输却不依赖XDMA设计之五:DMA 控制单元设计

    寄存器组包含 DMA 操作寄存器、 DMA 长度寄存器、 DMA 源目的地址寄存器和 DMA 状态寄存器。 DMA 操作寄存器定义了
    发表于 07-02 19:45

    【产品介绍】动态热机械分析仪DMA 303 Eplexor

    动态热机械分析仪DMA303Eplexor动态热机械分析解读各种材料的机械性能动态热机械分析(DMA/DMTA)是确定工程材料机械性能,特别是聚合物的黏弹行为的一个不可缺少的工具。通过在动态振荡
    的头像 发表于 06-12 14:12 847次阅读
    【产品介绍】动态热机械分析仪<b class='flag-5'>DMA</b> 303 Eplexor

    一文详解AXI DMA技术

    AXI直接数值存取(Drect Memory Access,DMA)IP核在AXI4内存映射和AXI4流IP接口之间提供高带宽的直接内存访问。DMA可以选择分散收集(Scatter Gather
    的头像 发表于 04-03 09:32 2067次阅读
    一文详解AXI <b class='flag-5'>DMA</b>技术

    函数HAL_I2C_Slave_Seq_Transmit_IT和HAL_I2C_Slave_Seq_Receive_IT实现代码里有处理DMA请求,这是出于什么考虑?

    函数HAL_I2C_Slave_Seq_Transmit_IT和HAL_I2C_Slave_Seq_Receive_IT实现代码里有处理DMA请求,这是出于什么考虑?求解答!
    发表于 03-14 09:01

    CKS32F107xx系列的DMA控制器简介

    (DMA1有7个通道,DMA2有5个通道),每个通道专门用来管理来自于一个或多个外设对存储器访问的请求。还有一个仲裁器来协调各个DMA请求
    的头像 发表于 02-18 17:24 1275次阅读
    CKS32F107xx系列的<b class='flag-5'>DMA</b>控制器简介

    这些云服务器弹性公网ip连接方式,你知道几种?

    云服务器弹性公网ip主流连接方式包括:直接绑定云服务器、NAT网关映射、负载均衡器绑定、共享带宽包、多IP绑定单实例。下面UU云小编将对这些云服务器弹性公网ip连接方式和使用场景进行详细解析。
    的头像 发表于 02-13 09:43 761次阅读

    ZYNQ基础---AXI DMA使用

    前言 在ZYNQ中进行PL-PS数据交互的时候,经常会使用到DMA,其实在前面的ZYNQ学习当中,也有学习过DMA的使用,那就是通过使用自定义的IP,完成HP接口向内存写入和读取数据的方式。同样
    的头像 发表于 01-06 11:13 3569次阅读
    ZYNQ基础---AXI <b class='flag-5'>DMA</b>使用

    服务器如何处理 HTTP 请求

    服务器处理HTTP请求的过程是一个有序且复杂的流程,通常涉及多个步骤。以下是服务器处理HTTP请求的具体步骤: 监听端口 :HTTP服务器在特定的端口(通常是80端口,除非另有指定)上监听传入的连接
    的头像 发表于 12-30 09:37 1005次阅读

    如何调试 HTTP 请求和响应

    调试HTTP请求和响应是Web开发和网络编程中的一个重要技能。以下是一些步骤和工具,可以帮助你调试HTTP请求和响应: 1. 使用浏览器开发者工具 大多数现代浏览器都内置了开发者工具,这些工具可以
    的头像 发表于 12-30 09:28 1801次阅读