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
    +关注

    关注

    146

    文章

    18097

    浏览量

    371365
  • 寄存器
    +关注

    关注

    31

    文章

    5448

    浏览量

    125507
  • dma
    dma
    +关注

    关注

    3

    文章

    576

    浏览量

    103727

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

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    无法配置 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

    一文详解AXI DMA技术

    AXI直接数值存取(Drect Memory Access,DMA)IP核在AXI4内存映射和AXI4流IP接口之间提供高带宽的直接内存访问。DMA可以选择分散收集(Scatter Gather
    的头像 发表于 04-03 09:32 ?1219次阅读
    一文详解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 ?979次阅读
    CKS32F107xx系列的<b class='flag-5'>DMA</b>控制器简介

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

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

    ZYNQ基础---AXI DMA使用

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

    服务器如何处理 HTTP 请求

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

    如何调试 HTTP 请求和响应

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

    雅特力AT32F402/F405 DMA使用指南

    通道都支持外设的DMA请求映射到任意通道上。图1.DMA控制器架构DMAMUX简介对于如何将外设的DMA
    的头像 发表于 11-20 01:03 ?1096次阅读
    雅特力AT32F402/F405 <b class='flag-5'>DMA</b>使用指南

    Python编程:处理网络请求的代理技术

    在网络编程中,代理技术扮演着至关重要的角色,尤其在处理网络请求时。通过代理服务器,我们可以实现请求的转发、缓存、负载均衡以及安全控制等功能。Python作为一种功能强大的编程语言,为提供了丰富的工具和库,以便敏捷地实现和处理网络请求
    的头像 发表于 11-12 07:23 ?646次阅读

    DMA是什么?详细介绍

    系统性能。 DMA(直接内存访问)概述 1. DMA的定义 直接内存访问(DMA)是一种硬件特性,允许外围设备直接读写系统内存,而不需要CPU的直接控制。这种技术主要用于高速数据传输,如磁盘读写、网络通信等。 2.
    的头像 发表于 11-11 10:49 ?2w次阅读

    请求访问音频软件

    电子发烧友网站提供《请求访问音频软件.pdf》资料免费下载
    发表于 10-17 11:15 ?0次下载
    <b class='flag-5'>请求</b>访问音频软件

    低功耗蓝牙-无效的连接请求

    电子发烧友网站提供《低功耗蓝牙-无效的连接请求.pdf》资料免费下载
    发表于 09-20 11:22 ?0次下载
    低功耗蓝牙-无效的连接<b class='flag-5'>请求</b>

    用于ADC的DMA乒乓

    电子发烧友网站提供《用于ADC的DMA乒乓.pdf》资料免费下载
    发表于 09-07 11:27 ?1次下载
    用于ADC的<b class='flag-5'>DMA</b>乒乓