电子产业一站式赋能平台

PCB联盟网

搜索
查看: 25|回复: 0
收起左侧

单片机RTC定时休眠唤醒实现方法

[复制链接]

243

主题

243

帖子

1250

积分

三级会员

Rank: 3Rank: 3

积分
1250
发表于 昨天 11:45 | 显示全部楼层 |阅读模式
关注+星标公众,不错过精彩内容
来源 | 瑞萨嵌入式小百科

我们在做低功耗产品时,考虑低功耗,需要将单片机进入休眠状态,但我们也要定时唤醒单片机处理一些事件。比如:刷卡、无线接收等。

这个时候,我们就需要做定时休眠并唤醒,常见的做法就是通过RTC定时唤醒。

本文结合瑞萨RA2E1单片机,以及e2 Studio开发环境给大家讲述单片机RTC定时休眠唤醒实现方法

硬件准备
准备一块RA2E1的开发板,这里使用的是我们自己做的简易RA2E1开发板,芯片是R7FA2E1A72DFL#AA0,其主频48Mhz,引脚数是48 pins,内部闪存为64KB。开发板如下图所示。

naioxve030464012093047.jpg

naioxve030464012093047.jpg


软件部分
1
打开e2 Studio开发环境

jv4cgpwxrrs64012093147.png

jv4cgpwxrrs64012093147.png


2
利用文件菜单新建项目,如下图所示。

v55j0s0dwoz64012093247.png

v55j0s0dwoz64012093247.png

n5rhre2t0eh64012093347.png

n5rhre2t0eh64012093347.png


3
填写工程名称和工程的保存位置,注意路径中不要包含中文和空格,点击下一步。

bjnaojte3b464012093447.png

bjnaojte3b464012093447.png


4
选择芯片对应型号和Debugger方式。点击下一步。

al41aeamcb264012093547.png

al41aeamcb264012093547.png


5
选择Executable类型,保持RTOS选择为No RTOS,点击下一步。

2aowh5uug3f64012093647.png

2aowh5uug3f64012093647.png


6
选择最小系统,点击完成。

3gx0lo20ejf64012093747.png

3gx0lo20ejf64012093747.png


7
工程新建完成后,出现下图界面,此时可以确认一下自己的配置信息是否正确。

ezlo4cr1gdk64012093847.png

ezlo4cr1gdk64012093847.png


8
添加RTC模块(RTC Driver on r_rtc)。

ur0z402xhgl64012093947.png

ur0z402xhgl64012093947.png


9
按照项目需求配置唤醒时间与相关的中断回调函数名称。

eo4avnnenry64012094047.png

eo4avnnenry64012094047.png


10
添加休眠模块(Low Power Modes Driver on r_lpm)。

zzzosfqcnuw64012094147.png

zzzosfqcnuw64012094147.png


11
设置相关休眠模式并勾选唤醒源,从而实现通过RTC Period唤醒。

z2g54lxggd564012094247.png

z2g54lxggd564012094247.png


12
使用以下代码在hal_entry()函数中初始化RTC和LPM模块,并使系统进入低功耗模式。

rclutaho02v64012094347.png

rclutaho02v64012094347.png


13
其中通过以下函数设置RTC中断产生频率。

zzvanwtzggb64012094447.png

zzvanwtzggb64012094447.png


14
示波器实测数据。

kp25phx1agv64012094548.png

kp25phx1agv64012094548.png


15
在RTC中断回调函数中控制GPIO翻转,上述示波器数据由此而来。

gizdycchxz464012094648.png

gizdycchxz464012094648.png


16
在初始化时注意应先初始化日历时间。

ycgllmr134x64012094748.png

ycgllmr134x64012094748.png


17
至此,系统可以实现每65ms进入一次RTC中断,并唤醒MCU。
------------ END ------------

owrcrd0wrvm64012094848.gif

owrcrd0wrvm64012094848.gif

●瑞萨RA8系列教程 | 初识瑞萨 RA8 系列单片机●瑞萨RA8系列教程 | 瑞萨 RA8 开发环境搭建●瑞萨RA8系列教程 | 基于 Keil 开发 RA8单片机瑞萨RA8系列教程 | 基于e2s实现RA8串口输出配置
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


联系客服 关注微信 下载APP 返回顶部 返回列表