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

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

3天内不再提示

瑞萨RA系列MCU中的DMAC和DTC关键特性对比

瑞萨嵌入式小百科 来源:瑞萨嵌入式小百科 2025-12-02 13:56 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

19.6

DMAC和DTC关键特性对比

FSP库里边的传输API可以由DMAC或者DTC实现,因此理论上来说我们可以在DMAC和DTC之间切换使用。但是DMAC和DTC还是有一些不同的,因此在它们之间进行选择时,请考虑以下因素:

表2:DMAC和DTC的特性对比

23c6c9e8-ca7e-11f0-8c8f-92fbcf53809c.png

中断

DTC和DMAC的中断行为不同:

DTC使用配置的IELSR事件IRQ作为中断源

而每个DMAC通道都有自己的IRQ

其他注意事项:

DTC需要一定的RAM

DTC将传输信息存储在RAM中,并在每次传输后写回RAM,而DMAC将所有传输信息存储在寄存器中。

当为多个激活源配置传输时,DTC必须在每次中断时从RAM获取传输信息。这可能会导致传输之间的延迟更高。

DTC使用激活源的IRQ中断CPU。每个DMAC通道都有自己的IRQ。

另外在传输信息的transfer_info_t::irq属性的设置上,根据所选模式的不同,其具体行为也略有不同。

表3:正常模式(Normal Mode)

中断模式 DMAC DTC
TRANSFER_IRQ_EACH N/A 每次传输后中断
TRANSFER_IRQ_END 完成最后一次传输后中断 完成最后一次传输后中断

表4:重复模式(Repeat Mode)

中断模式 DMAC DTC
TRANSFER_IRQ_EACH 每次传输后中断 每次传输后中断
TRANSFER_IRQ_END 完成最后一次传输后中断 每次传输后中断

表5:块模式(Block Mode)

中断模式 DMAC DTC
TRANSFER_IRQ_EACH 每次传输后中断 每次传输后中断
TRANSFER_IRQ_END 完成最后一次传输后中断 完成最后一次传输后中断

表6:重复-块模式(Repeat-block Mode)

中断模式 DMAC DTC
TRANSFER_IRQ_EACH N/A N/A
TRANSFER_IRQ_END 完成最后一次传输后中断 N/A

19.7

实验1:DMAC存储器到存储器传输

19.7.1

软件设计

19.7.1.1

新建工程

因为本实验需要用到LED,也会用到串口打印调试信息,因此我们在上一章的“实验1:UART收发回显”例程的基础上修改程序。

对于e2studio开发环境:拷贝一份我们之前的e2s工程“19_UART_Receive_Send”,然后将工程文件夹重命名为“20_DMAC_Memory_To_Memory”,最后再将它导入到我们的e2studio工作空间中。

对于Keil开发环境:拷贝一份我们之前的Keil工程“19_UART_Receive_Send”,然后将工程文件夹重命名为 “20_DMAC_Memory_To_Memory”,并进入该文件夹里面双击Keil工程文件,打开该工程。

工程新建好之后,在工程根目录的“src”文件夹下面新建“dmac”文件夹,再进入“dmac”文件夹里面新建源文件和头文件:“bsp_dmac_m2m.c”和“bsp_dmac_m2m.h”。工程文件结构如下。

列表1:文件结构

左右滑动查看完整内容

20_DMAC_Memory_To_Memory
├─ ......
└─src
├─ led│
│ ├─ bsp_led.c
│ └─ bsp_led.h
├─ debug_uart
│ ├─ bsp_debug_uart.c
│ └─ bsp_debug_uart.h
├─ dmac
│ ├─ bsp_dmac_m2m.c
│ └─ bsp_dmac_m2m.h
└─ hal_entry.c

19.7.1.2

FSP配置

打开该工程的FSP配置界面。然后按如图步骤加入DMAC。

24296a76-ca7e-11f0-8c8f-92fbcf53809c.png

加入DMAC后如下图所示。

24cb181c-ca7e-11f0-8c8f-92fbcf53809c.png

我们单击上图中新添加的r_dmac框,然后在左下角的“属性”窗口配置DMAC模块的各个属性参数。按照如下图所示来配置即可。

2528f7ac-ca7e-11f0-8c8f-92fbcf53809c.png

在上图中,实际上只需配置框中的那部分属性,其他的属性均按照默认即可。

DMAC的配置项(与上图相对应):

表7:DMAC配置属性描述

属性 描述
Name 名字。上图配置为g_transfer_dmac0
按照自己命名习惯设置、并且与代码中的对应即可。
Channel 通道:DMA传输通道选择。这里选择通道0,
通道0也是优先级最高的通道。
RA6M5有8个通道,0~7可选。其他MCU型号可能不同。
Mode 模式:DMA传输模式选择。默认选择正常模式即可。
Transfer Size 传输大小:传输数据单元的大小。默认设置为2字节即可。
Destination Address Mode 目标地址模式:默认设置为固定。
Source Address Mode 源地址模式:默认设置为固定。
Repeat Area(Unused in Normal Mode) 重复区域(正常模式下不使用):源地址。
Destination Pointer 目标指针:NULL(在这里不方便确定传输地址,后续在代码部分配置)。
Source Pointer 源指针:NULL(在这里不方便确定传输地址,后续在代码部分配置)。
Number of Transfers 传输次数:指定正常和重复模式的传输次数或重复-块传输模式的块大小。
Number of Blocks
(Valid only in Repeat,
Block or Repeat-Block Mode)
块数量:指定要在重复、块或重复-块模式下传输的块数。
Activation Source 触发源:选择DMAC传输开始事件。
如果未选择ELC事件,则可以使用软件启动。
Callback 回调函数:触发DMAC中断时调用的回调函数。
此处设置为dmac0_callback
Context 上下文:指向通过回调函数传递的上下文结构的指针。
Transfer End Interrupt Priority 传输结束中断优先级:传输结束中断的优先级设置。

配置完成后,点击生成代码,然后开始我们的代码编写。258ce46a-ca7e-11f0-8c8f-92fbcf53809c.png

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

    关注

    31

    文章

    5627

    浏览量

    130948
  • 存储器
    +关注

    关注

    39

    文章

    7779

    浏览量

    172689
  • RAM
    RAM
    +关注

    关注

    8

    文章

    1404

    浏览量

    121455
  • 瑞萨
    +关注

    关注

    38

    文章

    22553

    浏览量

    91859

原文标题:DMAC和DTC关键特性对比——瑞萨RA系列FSP库开发实战指南(54)

文章出处:【微信号:瑞萨嵌入式小百科,微信公众号:瑞萨嵌入式小百科】欢迎添加关注!文章转载请注明出处。

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    RA系列MCUDMAC模块框图分析

    软件触发、来自外设模块的中断请求和外部中断请求都可以指定为DMAC激活源。DMAC激活源是在DMTMD寄存器的DCTG[1:0]位进行设置。
    的头像 发表于 11-21 10:19 4627次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RA</b><b class='flag-5'>系列</b><b class='flag-5'>MCU</b><b class='flag-5'>中</b>的<b class='flag-5'>DMAC</b>模块框图分析

    RA系列MCUDTC模块框图分析

    MRA、MRB、SAR、DAR、CRA和CRB这些都是属于DTC内部的寄存器,它们是无法通过CPU直接访问的。这些DTC内部寄存器设置的值作为传输信息放置在SRAM区域中。当生成激活请求时,
    的头像 发表于 11-28 15:50 5089次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RA</b><b class='flag-5'>系列</b><b class='flag-5'>MCU</b><b class='flag-5'>中</b>的<b class='flag-5'>DTC</b>模块框图分析

    RA6M4系列DMAC和ADC的详细介绍(1)

    ADC在产品设计是非常常用的MCU外设模块,当在某些复杂的应用下需要非常快的采样速度时,使用DMA进行数据搬运,可以更便捷的来实现对数据的高效搬运,结合本例在FSP上轻松配置您的所需,同时也让我们了解一下
    的头像 发表于 11-29 12:14 3870次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RA</b>6M4<b class='flag-5'>系列</b><b class='flag-5'>DMAC</b>和ADC的详细介绍(1)

    RA8系列高性能MCU开发上手体验

    大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是RA8系列高性能MCU开发上手体验。
    的头像 发表于 08-08 15:21 3054次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RA</b>8<b class='flag-5'>系列</b>高性能<b class='flag-5'>MCU</b>开发上手体验

    RA系列MCUDMACDTC模块简介

    DMAC(Direct Memory Access Controller)为直接存储器访问控制器或者直接内存访问控制器,可以在不占用CPU的情况下将数据从一个内存位置传输到另一个内存位置。
    的头像 发表于 11-21 10:13 4784次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RA</b><b class='flag-5'>系列</b><b class='flag-5'>MCU</b><b class='flag-5'>中</b>的<b class='flag-5'>DMAC</b>和<b class='flag-5'>DTC</b>模块简介

    电子RA系列MCU解决智能物联网系统开发痛点

    电子株式会社今日宣布推出采用32位ARM®Cortex®-M核的RA(高端)系列MCU
    发表于 10-08 08:06 2627次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b>电子<b class='flag-5'>RA</b><b class='flag-5'>系列</b><b class='flag-5'>MCU</b>解决智能物联网系统开发痛点

    关于DTC问题,求解释

    DTC的触发源(activation request )怎么理解,在Block模式下,是来一个触发信号,然后开始传输一系列的数据吗?还是只传出一个数据(假如设置为16位数据类型
    发表于 07-30 22:25

    RA系列MCU选型指南

    RA系列MCU产品基于Arm Cortex-M内核,与自有内核RL78和RX系列一起,成为
    发表于 11-08 13:51 3398次阅读

    RA2系列MCU IIC通信速率分析

    一、RA系列MCU简介 RA(Renesas Advanced)系列MCU
    的头像 发表于 11-11 12:15 5119次阅读

    线下培训 | 电子RA MCU应用开发培训课程报名开启![野火电子]

    TRAINING RA应用开发培训课程来了! 电子RA系列MCU产品基于Arm  Corte
    的头像 发表于 03-21 10:30 2432次阅读

    RA MCU串口通信空闲中断

    RA MCU串口通信空闲中断
    的头像 发表于 09-26 16:59 2209次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RA</b> <b class='flag-5'>MCU</b>串口通信空闲中断

    MCU在新能源的应用

    接下来我们介绍在新能源应用重点主推的3个MCU型号,首先是RA6T2。顾名思义,来自ARM内核的R
    的头像 发表于 12-15 12:25 2432次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>MCU</b>在新能源<b class='flag-5'>中</b>的应用

    电子RA家族推出RA8系列高算力通用MCU

    电子RA家族推出RA8系列高算力通用MCU,是业界首款基于Arm® Cortex®-M85(
    的头像 发表于 04-02 14:14 3803次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b>电子<b class='flag-5'>RA</b>家族推出<b class='flag-5'>RA</b>8<b class='flag-5'>系列</b>高算力通用<b class='flag-5'>MCU</b>

    RA MCU家族推出集成Arm® Cortex®-M23内核的全新RA0系列

    RA MCU家族推出全新的RA0系列RA0E1
    的头像 发表于 04-10 14:32 3199次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RA</b> <b class='flag-5'>MCU</b>家族推出集成Arm® Cortex®-M23内核的全新<b class='flag-5'>RA</b>0<b class='flag-5'>系列</b>

    电子RA系列MCU 2025年新品回顾

    2025年RA系列推出10个新产品,覆盖了从入门级低功耗(RA0E2)、端低功耗(
    的头像 发表于 01-27 09:57 1964次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b>电子<b class='flag-5'>RA</b><b class='flag-5'>系列</b><b class='flag-5'>MCU</b> 2025年新品回顾