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

    文章

    17370

    浏览量

    352987
  • 寄存器
    +关注

    关注

    31

    文章

    5377

    浏览量

    121394
  • dma
    dma
    +关注

    关注

    3

    文章

    566

    浏览量

    101100

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

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

收藏 人收藏

    评论

    相关推荐

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

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

    ZYNQ基础---AXI DMA使用

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

    服务器如何处理 HTTP 请求

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

    如何调试 HTTP 请求和响应

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

    雅特力AT32F402/F405 DMA使用指南

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

    DMA是什么?详细介绍

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

    请求访问音频软件

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

    2k1000LA中关于IODMA请求的描述

    在2k1000的用户手册中,有对IO互连网络的DMA请求路由方式进行阐述,如图。 其中提到窗口命中需要两个条件,一是地址经过掩码后与base相等,二是DMA访存属性和mmap[5]共同决定是否命中
    发表于 08-15 21:52

    揭秘车载VCU项目之外挂界的“大哥”DMA

    引脚配置此实例选择CAN0进行配置。三、外设配置对于DMA,其采用的固定映射,对于通道0至通道15,其映射一部分外设,通道16至通道31映射一部分外设,所以对于外设要使用
    的头像 发表于 07-30 08:11 874次阅读
    揭秘车载VCU项目之外挂界的“大哥”<b class='flag-5'>DMA</b>

    路由器映射是什么意思?路由器端口映射怎么设置?

    路由器映射是指将一台主机的内网(LAN)IP地址映射成一个公网(WAN)IP地址,当用户访问提供映射端口主机的某个端口时,服务器将请求转移到本地局域网内部提供这种特定服务的主机。  
    的头像 发表于 05-10 13:42 1550次阅读

    请问STM32L4R5ZI的DMA/DMAMUX是怎么管理请求

    原来的STM32系列,比如F1,是没有DMAMUX这个东西的,DMA1的1通道2通道具体对应什么样的请求,有一个专门的对应表。但是现在的DMAMUX加进来以后,对于89个外设请求,并没有地方说明什么
    发表于 04-28 06:19

    请问STM32H750VB的DMA通道映射在哪里查看?

    准备用STM32H750VB这款芯片,在参考手册中发现找不到DMA通道的映射表,想问一下这个去哪里查看?
    发表于 04-11 07:15

    定时器TIM2输出TRGO信号,DMA使用DMA_REQUEST_TIM2_UP请求可以实现吗?

    定时器TIM2输出TRGO信号,DMA使用DMA_REQUEST_TIM2_UP请求可以实现吗?
    发表于 04-10 07:09

    什么是DMADMA究竟有多快!

    直接内存访问(Direct Memory Access,DMA):在计算机体系结构中,DMA 是一种数据传输方式,允许外部设备直接访问计算机的内存,而无需通过中央处理单元(CPU)的干预。这有
    的头像 发表于 02-22 10:43 2294次阅读
    什么是<b class='flag-5'>DMA</b>?<b class='flag-5'>DMA</b>究竟有多快!

    雅特力AT32F423 DMA使用指南

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