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

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

3天内不再提示

AT32讲堂004 | AT32 MCU DMA通道的灵活配置

雅特力 AT32 MCU 2022-05-10 09:57 次阅读

概述

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

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

配置及使用方法

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

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

表1. DMA固定映射请求

9e433768-c7e6-11ec-8521-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弹性请求一览

9e5a4f52-c7e6-11ec-8521-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.h\dma.c的库文件中有提供相应的库函数,使用者只需调用库函数即可完成DMA弹性映射模式的配置。库函数说明如下:表3. DMA弹性映射库函数说明9e7d845e-c7e6-11ec-8521-dac502259ad0.png

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

图1. DMA固定映射库函数调用范例9e98c476-c7e6-11ec-8521-dac502259ad0.png上图中为设置TIMER1的更新中断为DMA弹性映射请求范例。

例程说明

DMA弹性映射功能在BSP中例程,路径为:AT32F403A_407_Firmware_Library_V2.x.x\project\at_start_f403a\examples\dma\data_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相关的配置代码:9eb5aa1e-c7e6-11ec-8521-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

    文章

    16977

    浏览量

    350212
  • FAT32
    +关注

    关注

    0

    文章

    32

    浏览量

    13754
收藏 人收藏

    评论

    相关推荐

    STM32转AT32代码转换

    1.引言在嵌入式开发中,我们经常会遇到更换单片机芯片的事情,若芯片是同一厂家的还好说,若是不同厂家的则需要重新写,重新调,重新去学习其底层驱动程序,比较费时费力。如:ST32转AT32、ST32转
    的头像 发表于 09-28 08:09 265次阅读
    STM32转<b class='flag-5'>AT32</b>代码转换

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

    简介时钟是芯片正确高效运行的基础,正确的时钟配置是芯片能正确运行的必要条件,其重要性不言而喻。AT32各系列产品的时钟配置部分可能存在细微的差异和需要注意的事项,本文档就着重针对各系列的情况来详细
    的头像 发表于 09-15 08:08 393次阅读
    <b class='flag-5'>AT32</b><b class='flag-5'>讲堂</b>088 | 雅特力AT32F402/F405时钟<b class='flag-5'>配置</b>

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

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

    雅特力AT32 MCU的随机数生成

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

    AT32讲堂085 | 雅特力AT32 MCU HICK时钟校准

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

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

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

    RL78系列MCU DMA在UART中的使用

    对于RL78系列的MCU,为了提高运行效率,减少CPU的占用,建议UART数据收发使用DMA功能。DMA(Direct Memory Access)是RL78 MCU内置的一个控制器,
    的头像 发表于 07-17 14:24 534次阅读
    RL78系列<b class='flag-5'>MCU</b> <b class='flag-5'>DMA</b>在UART中的使用

    CW32使用DMA通道、定时器触发ADC实现了多路AD采集

    本测试样例基于CW32F030C8T6MCU,使用DMA通道、定时器触发ADC实现了12路AD采集。
    的头像 发表于 05-24 09:29 786次阅读
    CW32使用<b class='flag-5'>DMA</b>单<b class='flag-5'>通道</b>、定时器触发ADC实现了多路AD采集

    雅特力AT32 MCU与SEGGER携手合作,开发量产事半功倍

    近日,雅特力与SEGGER共同宣布J-Link仿真调试器与Flasher在线烧录器全面支持AT32 MCU产品,SEGGER工具链的加持使AT32 MCU开发如虎添翼。 雅特力自201
    的头像 发表于 02-23 10:27 356次阅读

    AT32 定时器配置中pr和div的作用

    AT32定时器是51系列单片机中的一种定时器,可以实现多种定时功能。在AT32定时器中,pr和div是两个相关的参数,用于配置定时器的工作参数。 首先,需要了解pr和div分别代表什么含义。pr
    的头像 发表于 01-08 10:12 1221次阅读

    dma通道技术的区别

    DMA(Direct Memory Access)和通道技术是计算机系统中用来优化数据传输和处理的重要技术。尽管它们都与数据传输相关,但它们在实现方法、特点和应用场景等方面存在一些重要的区别
    的头像 发表于 01-04 14:31 2256次阅读

    润开鸿AT32开发平台通过OpenHarmony兼容性测评

    近期,江苏润开鸿数字科技有限公司(以下简称“润开鸿”)AT32开发平台通过OpenAtom OpenHarmony(以下简称\"OpenHarmony\")3.2.
    发表于 12-21 17:20

    润开鸿AT32开发平台通过OpenHarmony兼容性测评

    点击蓝字 ╳ 关注我们 开源项目 OpenHarmony 是每个人的 OpenHarmony 近期,江苏润开鸿数字科技有限公司(以下简称“润开鸿”)AT32开发平台通过OpenAtom
    的头像 发表于 12-20 21:10 653次阅读
    润开鸿<b class='flag-5'>AT32</b>开发平台通过OpenHarmony兼容性测评

    润开鸿AT32开发平台通过OpenHarmony兼容性测评

    近期,江苏润开鸿数字科技有限公司(以下简称“润开鸿”)AT32开发平台通过OpenHarmony3.2.Release版本兼容性测评,助力润开鸿基于该开发平台全新研发推出的行业终端设备顺利融入
    的头像 发表于 12-15 08:02 581次阅读
    润开鸿<b class='flag-5'>AT32</b>开发平台通过OpenHarmony兼容性测评

    STM32的DMA的五大问题

    一个数据传输任务。通道的数量取决于具体的STM32型号,每个通道可以独立配置,使得DMA可以同时执行多个数据传输任务。数据传输方向寄存器:该寄存器用于
    的头像 发表于 12-10 08:00 1812次阅读
    STM32的<b class='flag-5'>DMA</b>的五大问题