关注+星标公众号,不错过精彩内容
来源 | 瑞萨嵌入式小百科
我们在做低功耗产品时,考虑低功耗,需要将单片机进入休眠状态,但我们也要定时唤醒单片机处理一些事件。比如:刷卡、无线接收等。
这个时候,我们就需要做定时休眠并唤醒,常见的做法就是通过RTC定时唤醒。
本文结合瑞萨RA2E1单片机,以及e2 Studio开发环境给大家讲述单片机RTC定时休眠唤醒实现方法。
硬件准备
准备一块RA2E1的开发板,这里使用的是我们自己做的简易RA2E1开发板,芯片是R7FA2E1A72DFL#AA0,其主频48Mhz,引脚数是48 pins,内部闪存为64KB。开发板如下图所示。
naioxve030464012093047.jpg
软件部分
1
打开e2 Studio开发环境
jv4cgpwxrrs64012093147.png
2
利用文件菜单新建项目,如下图所示。
v55j0s0dwoz64012093247.png
n5rhre2t0eh64012093347.png
3
填写工程名称和工程的保存位置,注意路径中不要包含中文和空格,点击下一步。
bjnaojte3b464012093447.png
4
选择芯片对应型号和Debugger方式。点击下一步。
al41aeamcb264012093547.png
5
选择Executable类型,保持RTOS选择为No RTOS,点击下一步。
2aowh5uug3f64012093647.png
6
选择最小系统,点击完成。
3gx0lo20ejf64012093747.png
7
工程新建完成后,出现下图界面,此时可以确认一下自己的配置信息是否正确。
ezlo4cr1gdk64012093847.png
8
添加RTC模块(RTC Driver on r_rtc)。
ur0z402xhgl64012093947.png
9
按照项目需求配置唤醒时间与相关的中断回调函数名称。
eo4avnnenry64012094047.png
10
添加休眠模块(Low Power Modes Driver on r_lpm)。
zzzosfqcnuw64012094147.png
11
设置相关休眠模式并勾选唤醒源,从而实现通过RTC Period唤醒。
z2g54lxggd564012094247.png
12
使用以下代码在hal_entry()函数中初始化RTC和LPM模块,并使系统进入低功耗模式。
rclutaho02v64012094347.png
13
其中通过以下函数设置RTC中断产生频率。
zzvanwtzggb64012094447.png
14
示波器实测数据。
kp25phx1agv64012094548.png
15
在RTC中断回调函数中控制GPIO翻转,上述示波器数据由此而来。
gizdycchxz464012094648.png
16
在初始化时注意应先初始化日历时间。
ycgllmr134x64012094748.png
17
至此,系统可以实现每65ms进入一次RTC中断,并唤醒MCU。
------------ END ------------
owrcrd0wrvm64012094848.gif
●瑞萨RA8系列教程 | 初识瑞萨 RA8 系列单片机●瑞萨RA8系列教程 | 瑞萨 RA8 开发环境搭建●瑞萨RA8系列教程 | 基于 Keil 开发 RA8单片机●瑞萨RA8系列教程 | 基于e2s实现RA8串口输出配置 |