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

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

3天内不再提示

基于瑞萨RA2L1 MCU的波形生成系统设计

瑞萨嵌入式小百科 来源:瑞萨嵌入式小百科 2026-01-30 15:09 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

引言

嵌入式系统开发与测试中,稳定、精确的测试信号生成是一项常见且关键的需求。传统方法依赖于CPU实时计算并搬运数据,这会持续占用处理器资源,增加系统功耗,并可能影响主程序的实时性。为解决这一问题,本文介绍一种利用瑞萨RA2L1微控制器MCU)的DAC、DTC和AGT三个外设模块协同工作的解决方案。该方案能够以极低的CPU参与度,高效生成正弦波、三角波等多种标准波形,为需要模拟信号输出的应用提供了一种高性能、低功耗的设计范例。

核心模块

DTC(数据传输控制器)模块

DTC(Data Transfer Controller)模块根据传输信息进行数据传输,需要先在SRAM区域存储传输信息。DTC被激活时,会读取与向量号相关联的DTC向量,从DTC向量中引用的传输信息存储地址读取传输信息并进行数据传输。

传输模式包括普通传输模式(Normal transfer mode)、重复传输模式(Repeat transfer mode)和块传输模式(Block transfer mode)。DTC在DTC传送源寄存器(SAR)中指定传输源地址,在DTC传送目标寄存器(DAR)中指定传输目的地址。在数据传输后,这些寄存器的值可以独立地增减或保持不变。

AGT(低功耗异步通用定时器)模块

AGT(Low Power Asynchronous General Purpose Timer)模块是一个灵活的16位定时器,可在低功耗模式下运行。在本设计中,它被配置为周期定时模式,用于产生固定时间间隔的中断。这些中断信号作为“触发源”,定期激活DTC,从而精确控制DAC输出每个数据点的时间间隔,决定了最终输出波形的频率。

DAC(数模转换器)模块

RA2L1提供一个带输出放大器的12位数模转换器(DAC12),由AVCC0和AVSS0提供模拟电源及模拟参考电压源,输出引脚为DA0。DAC12的D/A数据寄存器0(DADR0)适用于存储数模转换数据的16位读/写寄存器,启动模拟输出后,DADR0中的数值会被转换并输出到模拟输出引脚(DA0)中。

系统设计方案

系统架构

12fb288a-fcc8-11f0-92de-92fbcf53809c.png

图1.系统架构

DAC模块:负责最终的数模转换与电压输出。

AGT模块:作为系统的“节拍器”,产生固定周期的中断来触发数据传输。

DTC模块:作为“数据搬运工”,在每次AGT中断时,自动将LUT中的下一个数据点送至DAC。

波形查找表

波形查找表机制

两种波形的数据都预先计算并存储在查找表(LUT)中。系统运行时,DTC模块按固定时间间隔依次读取表中数据并传输到DAC寄存器,实现波形的周期性输出。这种方式避免了实时计算,大幅降低CPU负载。

正弦波查找表

使用余弦函数计算一个完整周期(T=input_spp)的采样点数据。通过cos(2πi/input_spp)计算每个采样点的瞬时值(i=0,1,˴˴˴,input_spp-1)。由于余弦函数输出范围是[-1,1],需要加1后乘以DAC中间值((DAC_MID_VAL),将其映射到DAC的有效输出范围(0~4095)。采样点数越多,生成的波形越平滑。

正弦波查找表函数

左右滑动查看完整内容

voidgenerate_sin(void)
{
 /* Calculate look up table for sin function */
 for(int i=0; i< input_spp; ++i)
    {
        look_up_table[i] = (uint16_t) 
14041fa2-fcc8-11f0-92de-92fbcf53809c.png14041fa2-fcc8-11f0-92de-92fbcf53809c.png

三角波查找表

采用分段线性计算方式。前半周期线性递增,从0上升到最大值;后半周期线性递减,从最大值下降到0,形成对称的三角波形。计算公式基于当前采样点位置与总采样点数的比例关系,通过简单的线性插值即可得到每个点的输出值。

三角波查找表函数

14041fa2-fcc8-11f0-92de-92fbcf53809c.png15577886-fcc8-11f0-92de-92fbcf53809c.png

软件流程

14041fa2-fcc8-11f0-92de-92fbcf53809c.png160674bc-fcc8-11f0-92de-92fbcf53809c.png

图2. 主流程

系统时序

1663c842-fcc8-11f0-92de-92fbcf53809c.png

图3.系统时序图

开发环境

表1 开发环境

项目 内容
所用微控制器 RA2L1(R7FA2L1AB2DFM
工作频率 HOCO:48MHz,PCLKB:24MHz
工作电压 3.3V(工作电压范围1.6V~5.5V)
开发板 CPK-RA2L1 MCU评估板(LQFP64)
集成开发环境 e2studio v2025-07(瑞萨电子开发)
FSP v6.0.0
LLVM for ARM v18.1.3
BSP文件 Renesas.RA_board_ra2l1_cpk.3.7.0.pack

RA2L1 - 48MHz Arm Cortex-M23超低功耗通用微控制器 | Renesas瑞萨电子

https://www.renesas.cn/zh/products/ra2l1?queryID=0135065201ac0d335ce3d718259fb7b4

CPK-RA2L1 - RA2L1 MCU群组中国本地评估板 | Renesas瑞萨电子

https://www.renesas.cn/zh/design-resources/boards-kits/cpk-ra2l1?queryID=7488f1b4dfae70a40b8d81382c878554

e²studio | Renesas瑞萨电子

https://www.renesas.cn/zh/software-tool/e2-studio?queryID=c68ed897f8fb82511bedafe733272066

RA可扩展性强的配置软件包(FSP) | Renesas瑞萨电子

https://www.renesas.cn/zh/software-tool/ra-flexible-software-package-fsp?queryID=a5545772de53314f3a65441b56a71922

硬件配置

18214cfe-fcc8-11f0-92de-92fbcf53809c.png

图4.硬件配置示例

参考例程

为便于读者快速上手,本文提供了一个完整的波形生成参考例程。该例程实现了正弦波和三角波的生成与切换功能,读者可以在此基础上进行测试、二次开发和功能扩展。

dac_cpkcor_ra2l1_ep.zip

https://e.gitee.com/recn-mcu-ae/repos/recn-mcu-ae/dac_cpkcor_ra2l1_ep/sources

gitee下载链接

https://e.gitee.com/recn-mcu-ae/repos/recn-mcu-ae/dac_cpkcor_ra2l1_ep/sources

14041fa2-fcc8-11f0-92de-92fbcf53809c.png

例程操作说明

硬件准备

参考例程使用的是瑞萨中国本地推广板CPK-RA2L1 MCU评估板(LQFP64),如图5所示。开发板调试接口为J11,波形输出端口(P014)从J2连接器Pin 21引出(见图5中红框)。

198d2a5e-fcc8-11f0-92de-92fbcf53809c.png

图5.CPK-RA2L1 MCU评估板(LQFP64)

工程配置

由于例程中使用的开发板为CPK开发板,因此在首次使用时需要导入BSP文件,导入方法见《向FSP中添加CPK评估板的BSP》。导入BSP文件后可选择CPK-RA2L1评估版,请确认configuration.xml中的BSP信息与图6一致。

向FSP中添加CPK评估板的BSP

https://www.renesas.cn/zh/document/gde/fsp-cpk-bsp?r=1596841

1a4fd586-fcc8-11f0-92de-92fbcf53809c.png

图6.参考例程中BSP信息

编译与烧录:

确认BSP信息无误后即可对工程进行编译,烧录到开发板中并运行程序。

交互控制

打开J-Link RTT Viewer,选择USB连接方式,将“Specify Target Device”设定为“R7FA2L1AB”,“RTT Control Block”选择为“Auto Detection”,点击“OK”后即可连接到开发板。

1aaf2950-fcc8-11f0-92de-92fbcf53809c.png

图7.J-Link RTT Viewer配置信息

成功连接到开发板后可看到如图8的工程信息,包括工程版本、FSP版本、例程说明等等。

1b08cc26-fcc8-11f0-92de-92fbcf53809c.png

图8.J-Link RTT Viewer工程信息显示

如图9所示,用户需要对J-Link RTT Viewer中发送数据的方式进行以下设置。

1b698f48-fcc8-11f0-92de-92fbcf53809c.png

图9.J-Link RTT Viewer输入设置

参照图8中的提示,用户输入“0”可以选择生成正弦波,输入“1”可以选择生成三角波,首先输入“0”选择正弦波输出,如图10所示。

1bc11ad8-fcc8-11f0-92de-92fbcf53809c.png

图10.选择正弦波输出

根据图10中的信息,下一步需要输入期望采样点数,注意输入值需要在2到256之间。

1c19988e-fcc8-11f0-92de-92fbcf53809c.png

图11.输入期望采样点数

最后需要输入期望输出波形频率,注意波形频率的最大值已根据期望采样点数计算得出,因此输入的期望频率需要小于最大波形频率。

1c74b868-fcc8-11f0-92de-92fbcf53809c.png

图12.输入期望频率

波形观测

图13为输入“0”后生成采样点为256,频率为100Hz的正弦波输出结果。

1cccdfa2-fcc8-11f0-92de-92fbcf53809c.png

图13.正弦波输出结果

图14为输入“1”后生成采样点为256,频率为100Hz的三角波输出结果。

1d2a9124-fcc8-11f0-92de-92fbcf53809c.png

图14.三角波输出结果

代码说明

常量一览

例程中所用常量见表2。

表2 常量说明

常量名称 数值 说明
SPP_MIN_VAL 2 最小采样点数
SPP_MAX_VAL 256 最大采样点数
DAC_MID_VAL 2047.5 波形放缩系数
DADR0 0x4005E000 DADR0
寄存器地址
DAC_MAX_
CONVERSION_PERIOD
30 DAC最大采样周期

变量一览

例程中所用变量见表3。

表3 变量说明

类型 变量名称 内容
uint16_t look_up_table
[SPP_MAX_VAL]
波形查找表
uint16_t input_spp 用户期望采样点数
uint32_t input_freq 用户期望输出波形频率
uint32_t wave_output 用户期望输出波形类型
double sample_freq DAC采样频率
uint32_t freq_max_val 最大输出频率
double dac_max_samp_rate DAC最大采样率

函数一览

例程中所用函数见表4。

表4 函数说明

类型 内容
R_FSP_VersionGet() 获取FSP版本
R_IOPORT_PinCfg() 配置引脚设置
R_DAC_Open() 初始化DAC
R_DAC_Start() 开启数模转换输出
R_DTC_Open() 启用DTC
R_DTC_Enable() 启用传输
R_AGT_Open() 初始化AGT
R_AGT_Start() 启动定时器
R_DTC_Reconfigure() 配置DTC
R_FSP_SystemClockHzGet() 获取系统时钟频率
R_AGT_PeriodSet() 更新AGT周期
generate_sin() 生成正弦波波形查找表
generate_triangle() 成三角波波形查找表

结语

本文详细阐述了基于RA2L1 MCU的硬件协同波形生成方案。通过巧妙运用AGT定时触发、DTC自动搬运、DAC转换输出三者形成的“硬件流水线”,成功将CPU从频繁的数据搬运任务中解放出来,实现了极低的处理器占用与功耗。预存波形查找表的方法不仅保证了高精度输出,也预留了强大的扩展能力,可轻松支持方波、锯齿波或任意自定义波形。

该设计理念突出了利用MCU丰富外设实现功能卸载、优化系统效率的嵌入式设计思想。读者可基于提供的参考例程,快速进行原型验证,并灵活调整采样率、输出频率及波形种类,以满足各类嵌入式应用中对模拟信号生成的需求。

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

    关注

    49

    文章

    8833

    浏览量

    165612
  • mcu
    mcu
    +关注

    关注

    147

    文章

    19111

    浏览量

    403361
  • 瑞萨
    +关注

    关注

    38

    文章

    22516

    浏览量

    91165
  • 定时器
    +关注

    关注

    23

    文章

    3372

    浏览量

    124454
  • 波形
    +关注

    关注

    3

    文章

    407

    浏览量

    33191

原文标题:基于瑞萨RA2L1的波形生成系统设计——DTC、AGT与DAC的协同应用

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    RA MCU众测宝典 | 环境搭建之【RA-Eco-RA4M2】搭建Keil开发环境

    “RAMCU众测宝典”环境搭建专题再添硬核实操!开启宝典概览电子RA4M232位微控制器(MCU
    的头像 发表于 04-03 17:59 7019次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RA</b> <b class='flag-5'>MCU</b>众测宝典 | 环境搭建之【<b class='flag-5'>RA-Eco-RA4M2</b>】搭建Keil开发环境

    RA2L1微控制器:架构特点及应用分析

    RA2L1微控制器:架构特点及应用分析 在当前电子设备不断追求低功耗与高性能的大趋势下,电子推出的
    的头像 发表于 04-01 11:20 160次阅读

    基于RA2L1波形生成系统设计——DTC、AGT与DAC的协同应用

    的实时性。为解决这一问题,本文介绍一种利用RA2L1微控制器(MCU)的DAC、DTC和AGT三个外设模块协同工作的解决方案。该方案能够以极低的CPU参与度,高效
    的头像 发表于 03-27 17:29 8328次阅读
    基于<b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RA2L1</b>的<b class='flag-5'>波形</b><b class='flag-5'>生成</b><b class='flag-5'>系统</b>设计——DTC、AGT与DAC的协同应用

    基于RA2E1 MCU的LCR数字电桥项目介绍

    但这也是他第一次系统性地接触到MCU在模拟测量中的应用,以此为起点,他在2025年基于RA2E1 M
    的头像 发表于 02-10 09:22 1779次阅读
    基于<b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RA2E1</b> <b class='flag-5'>MCU</b>的LCR数字电桥项目介绍

    RA-Eco-RA2E1-V1.0开发板试用】开箱

    控制、智能外设等场景的高性价比嵌入式开发方案,也是 RA 生态中入门级低功耗开发的核心载体。 该套件核心基于 RA2L1/RA2L2
    发表于 02-04 19:54

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

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

    RA MCU众测宝典 | ADC/DAC之【RA2L1】DAC电压输出及ADC电压采集实验

    “RAMCU众测宝典”ADC/DAC通信专题上线啦!咱们接下来要解锁嵌入式开发中“连接模拟与数字世界”的关键技能——ADC/DAC专题。这次,嵌入式小百科将和大家一起聚焦【
    的头像 发表于 01-20 18:43 5741次阅读
    <b class='flag-5'>RA</b> <b class='flag-5'>MCU</b>众测宝典 | ADC/DAC之【<b class='flag-5'>RA2L1</b>】DAC电压输出及ADC电压采集实验

    【直播预告】RT-Thread带你首发体验:基于RA8P1 MCU的Titan Board | 问学直播

    首款搭载RA8P1双核AI加速MCU的TitanBoard来了!11月5日晚19:30,RT-Thread携手专家团队,带大家首发体验基于
    的头像 发表于 10-30 11:54 997次阅读
    【直播预告】RT-Thread带你首发体验:基于<b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RA8P1</b> <b class='flag-5'>MCU</b>的Titan Board | 问学直播

    解读电子RA4C1 MCU的核心特性

    近日电子推出了一款新的RA产品——RA4C1,作为新一代的RA4产品,它有哪些新的特性,以及相较之前的
    的头像 发表于 08-27 09:34 3004次阅读
    解读<b class='flag-5'>瑞</b><b class='flag-5'>萨</b>电子<b class='flag-5'>RA4C1</b> <b class='flag-5'>MCU</b>的核心特性

    RA家族RA4C1低功耗MCU发布

    RA家族在2025年8月推出RA4C1低功耗MCU,基于Arm Cortex-M33(CM33)内核,提供低功耗/低电压操作、LCD段码
    的头像 发表于 08-22 15:00 2600次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RA</b>家族<b class='flag-5'>RA4C1</b>低功耗<b class='flag-5'>MCU</b>发布

    RA2L1 MCU e² studio和FSP的使用指南

    本期“RA MCU众测宝典” 继续聚焦 “环境搭建” 专题,带大家走进【RA-Eco-RA2L1-48PIN-V1.0】的世界,查看e² studio和FSP的下载、安装及使用指南从零开始完成开发环境的配置。
    的头像 发表于 08-04 13:45 3172次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RA2L1</b> <b class='flag-5'>MCU</b> e² studio和FSP的使用指南

    RA4L1-SENSOR】RA4L1-SENSOR开发版开箱评测+e2studio软件安装

    RA4L1-SENSOR开发板。如下图所示 拿出里面的开发板,可以看到3件套,接上USB线, 二、e2studio软件安装 e2 studio (简称为 e2 或 e
    发表于 06-12 23:23

    全新RA2L2 MCU 搭载48MHz ArmCortex-M23内核 超低功耗、支持CAN及USB-C

    电压范围,-40至125°C的宽工作温度范围,并具有丰富的外设,如 I3C、SSI、低功耗UART、CAN、USB FS,以及USB Type-C接口 。   RA2L2RA2L1系列、RA2E1系列和
    的头像 发表于 06-11 15:22 1745次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b>全新<b class='flag-5'>RA2L2</b> <b class='flag-5'>MCU</b> 搭载48MHz ArmCortex-M23内核 超低功耗、支持CAN及USB-C

    RA4L1的表计应用解析(上)

      RA4L1 RA4L1今年推出的又一款低功耗MCU,集成了低功耗模式下全保持的SRAM,还有
    的头像 发表于 05-13 10:46 2274次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RA4L1</b>的表计应用解析(上)

    基于电子RA8D1 MCU的USB和I2S数字音频应用解决方案

    今天给大家介绍一下上海觉鑫智能科技有限公司基于电子RA8D1 MCU的USB&I2S数字音频应用解决方案。
    的头像 发表于 04-30 14:47 2961次阅读
    基于<b class='flag-5'>瑞</b><b class='flag-5'>萨</b>电子<b class='flag-5'>RA8D1</b> <b class='flag-5'>MCU</b>的USB和I<b class='flag-5'>2</b>S数字音频应用解决方案