瑞萨单片机论坛
直播中

翁嘉杰

1年用户 204经验值
擅长:控制/MCU
私信 关注
[经验]

【RA4L1-SENSOR】07 低功耗待机模式及功耗实测

1. 前言

本次实验的目标是设置低功耗模式,并配置RTC周期中断唤醒,在时钟模式下保持低功耗。然后外接INA226电流计做功耗测试。

2. 电源管理——低功耗模式功能介绍

在很多应用场合中都对电子设备的功耗要求非常苛刻,如某些传感器信息采集设备,仅靠小型的电池提供电源,要求工作长达数年之久, 且期间不需要任何维护;由于智慧穿戴设备的小型化要求,电池体积不能太大导致容量也比较小,所以也很有必要从控制功耗入手, 提高设备的续行时间。 因此,RA芯片有专门管理设备的运行模式,确保系统正常运行,并尽量降低器件的功耗。

RA2L1支持3种低功耗模式:睡眠模式(Sleep Mode)、软件待机模式(Software Standby Mode)、贪睡模式(Snooze Mode)

2.1 睡眠模式

上电时,默认的低功耗模式即睡眠模式。睡眠模式是最方便的低功耗模式,它不需要任何额外的配置,只需要配置好用于唤醒的中断源。 在睡眠模式下,SRAM、处理寄存器和外设状态都会被保留,片上外设可以继续工作,进入睡眠模式以及从睡眠模式唤醒所消耗的时间都是极少的。 任何中断或者复位都会将MCU从睡眠模式下唤醒,并开始处理中断,这也包括Systick系统计时器,因此读者如果用到了RTOS, 进入睡眠模式前需要暂停Systick。

2.2 软件待机模式

在软件待机模式下,CPU以及大部分片上外设功能和所有内部晶振都停止工作。但是会保留CPU内部寄存器和SRAM数据的内容, 片上外设以及IO口的状态。软件待机模式可以显著降低功耗,因为大多数振荡器在这种模式下停止。 与睡眠模式一样,待机模式需要配置一个中断,并使用它来唤醒MCU。退出软件待机模式时,所有内部晶振都会被启动, 待所有晶振稳定后,MCU返回正常模式。

2.3 贪睡模式

贪睡模式与软件待机模式相似,但是在贪睡模式下,可以运行很多核心外设和所有时钟,可以执行一些比较简单的任务,与软件待机模式相比, 贪睡模式可以实现更加灵活的低功耗配置。

3. 软件部分

将先前的06_RTC_and_Button_Set_Time工程复制一份,重命名为07_Low_Power_Mode

3.1 配置lpm 低功耗模式

新建stack,点击power中的Low Power Modes
配置lpm.png

双击g_lpm0 Low Power Modes,打开下方的属性界面。修改低功耗模式为修改为软件待机模式
修改为软件待机模式.png

唤醒源配置3个:IRQ6IRQ7RTC Period
唤醒源.png

3.2 配置按键GPIO的中断请求IRQ

找到P000和P001,将它们的IRQ分别设置为IRQ6和IRQ7。

按键IRQ.png

3.3 修改 LCD_Display_Task_entry.c

生成代码后,打开LCD_Display_Task_entry.c

先在初始化部分增加开启LPM端口的函数R_LPM_Open(&g_lpm0_ctrl, &g_lpm0_cfg);

LCD_Init ();
    R_LPM_Open(&g_lpm0_ctrl, &g_lpm0_cfg);

再修改显示时钟部分的代码,在处理完LCD显示部分之后,调用R_LPM_LowPowerModeEnter(&g_lpm0_ctrl);进入低功耗模式 。

// 显示时钟
        if (adc_task_active == false && xSemaphoreTake(semphr_rtc_1s, 0))
        {
            RTC_getTime (&time);
            if (rtc_cnt > 10)
            {
                rtc_cnt = 0;
            }
            if (rtc_cnt <= 3) // 年月日显示4秒
            {
                // ...
            }
            else //时分秒显示7秒
            {
                // ...
            }
            rtc_cnt++;
            R_LPM_LowPowerModeEnter(&g_lpm0_ctrl);  //进入LPM
        }

4. 下载测试

下载到板子上,使用我自制电流分辨率2.5uA的INA226传感器模块,检测电压电流和功率,并用串口实时发送到电脑端,用VOFA软件绘制。下面是工作在ADC功能时的功率,为87mW
功率监测1.png

工作在时钟模式下的功率如下图所示,在每秒之间的间隔时的整板功率65.5mW,每秒被RTC短暂唤醒后的功率为68mW
功率监测2.png

在低功耗模式下,MCU的功耗是很低的,上面所展示的功耗是由外设(包括两个常亮的电源指示LED)以及各种转换芯片、LDO等工作功耗加起来的,算是开发板的静态功耗。

另外,读者可实验不在唤醒源中添加IRQ6和IRQ7,这样会导致按键触发极不灵敏,因为大部分时间MCU都在待机模式,没法处理按键任务。

回帖(1)

陈沐

2025-11-21 00:00:51
很实用,谢谢楼主
举报

更多回帖

发帖
×
20
完善资料,
赚取积分