这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 【瑞萨RA2L1开发板】:01低功耗定时器AGT的测试过程

共1条 1/1 1 跳转至

【瑞萨RA2L1开发板】:01低功耗定时器AGT的测试过程

高工
2025-07-01 20:05:41     打赏

之前对瑞萨的开发板测评过一些板子,今天和大家分享一下RA2L1的定时器配置过程,及开发过程中遇到的问题。

开发环境:e2s 5.9版本。

一:开发板介绍:

        RA-Eco-RA2L1-48PIN-V1.0是一款基于48 MHz Arm® Cortex®-M23 内核架构的核心板,主控芯片为R7FA2L1AB2DFL。RA2L1 产品组基于 Arm® Cortex®-M23 核心(现今 Arm® Cortex-M 系列中功耗最低的 CPU)。 这款产品采用优化的制程和瑞萨电子的低功耗工艺技术,是业界一流水平的超低功耗微控制器。 RA2L1 产品组能够支持 1.6V 至 5.5V 宽电压工作,CPU 时钟频率最高 48MHz,且运行模式电流和待机模式电流更低。 RA2L1 产品群配备了增强型电容式触摸感应单元 (CTSU2)、串行通信接口、高精度模拟电路和定时器。 产品封装从 48 引脚到 100 引脚。

二:开发板特性:

1个复位按键

1个自定义按键

2个触摸按键

2个LED

板载USB转TTL模块

板载SWD接口,方便用户调试与下载

48MHz Arm Cortex-M23

256KB 代码闪存和 32KB SRAM(支持 ECC)

8KB 数据闪存,提供与 EEPROM 类似的数据存储功能

48 引脚封装

内部电压调节电路

增强型电容式触摸感应单元 (CTSU2)

12 位 ADC,12 位 DAC,低功耗比较器

32 位通用 PWM 定时器,16 位通用 PWM 定时器,低功耗异步通用定时器

实时时钟

串行通信接口(UART、简单 SPI、简单 I2C)

独立的SPI接口 / I2C 多主接口

CAN

安全功能

加密功能

三:开发板图片:

0701-3.png

四:FSP库配置如下:

4.1 定时器 AGT的配置如下:

0701-4.png

这里我配置的是每秒进入一次中断的

4.2 板载LED灯所使用的引脚如下:

0701-5.png

板载LED灯使用的是P104 和P105,所以我们再PIN 内配置两个引脚为输出模式,如下所示:

0701-6.png

4.3 时钟树的配置如下所示:

0701-7.png

五:程序编写如下:

实现功能如下:

1:板载LED1 在主函数中,以100MS的时间间隔闪烁,在主程序中被调用。

2:板载LED2 在定时器AGT中,以1S的时间间隔闪烁,在定时器回调函数中被处理。

主函数如下所示:

AGT_Time0_Init();
while(1)
{
R_BSP_SoftwareDelay(100, BSP_DELAY_UNITS_MILLISECONDS); // NOLINT
/*        R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_01_PIN_03, BSP_IO_LEVEL_LOW);*/
R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_01_PIN_04, BSP_IO_LEVEL_LOW);
R_BSP_SoftwareDelay(100, BSP_DELAY_UNITS_MILLISECONDS); // NOLINT
/*        R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_01_PIN_03, BSP_IO_LEVEL_HIGH);*/
R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_01_PIN_04, BSP_IO_LEVEL_HIGH);
}

定时器处理部分如下:初始化及其回调函数处理:

void AGT_Time0_Init(void) ;
#define LED_TOGGLE R_PORT1->PODR ^= 1<<(BSP_IO_PORT_01_PIN_03 & 0xFF)

/*定时器0 初始化函数*/
/* AGT初始化函数 系统定时器0用作系统时钟*/
void AGT_Time0_Init(void)
{
// 初始化 APT 模块 
R_AGT_Open(&g_timer0_ctrl,&g_timer0_cfg);
// 启动 APT 定时器 
R_AGT_Start(&g_timer0_ctrl);
}
/* 定时器溢出 中断回调函数  运行时间100MS   */
void g_timer0_callback(timer_callback_args_t * p_args)
{
if (TIMER_EVENT_CYCLE_END == p_args->event)
{
LED_TOGGLE ;
//  R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_01_PIN_03, BSP_IO_LEVEL_HIGH);
}
}

六:实物验证如下所示:

WeChat_20250701200343 00_00_00-00_00_30.gif

调试过程遇到问题:

1:对于官方的给出库,FSP库的版本太低,现在使用的FSP库有点高,在编译过程中,出现编译不通过的情况,所以这里我新建的工程,进行开发,调试。

2:在配置时候,需要参考板载的资源,由于开发板上面的外部晶振没有焊接,当我们使用时候,需要自行焊接,否则会导致程序运行错误的。

3:在着就是定时器时钟来源的配置,由于低功耗定时器是16位,开始配置时钟来源是PCLKB的,导致定时器中断进入的时间错误,在查询资料发现,是配置的问题,这里我使用的是HOCO的时钟来源。

4:熟练的掌握FSP的配置过程,对于二次开发会很方便。

七:测试代码如下所示:

01blink.zip




关键词: RA2L1     定时器     测试    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]