|
上一篇简单配置了一下RTC,调用了一下设计及获取时间日期的函数。RTC在低功耗场景下还有一个功能就是作为一个低功耗唤醒源头,今天我要尝试进入standby模式,然后用RTC定时唤醒. _2 [; M0 t$ x: g1 f$ t( W: g- h+ \ 工程的话我就沿用上一篇RTC的那个工程了,只是需要把while1中调用的测试函数全部去除,让while1为空! H. W. x! i9 h$ y" S3 m; I0 h . d, D' w- U6 g0 s/ P 4 [. n8 Q9 `# _, j5 j 一.CUBE修改' B9 B( r4 W( y0 w. a 来到RTC这里,把WeakUp打开,选择Internal WakeUp- s% N( r2 I ]) \5 E. E1 ?5 r 6 ]; u* @+ @1 d2 q S' A+ J! q 下面的参数配置& g7 V6 i% _5 E# E2 ~- f* q+ Z' T$ A Wake Up Clock是唤醒用的时钟源,可以是RTC CLK的2/4/8/16分频、1Hz、1Hz with 1bit added to Weak Up Counter。我这边先选择8分频,这个可以根据实际情况选择 然后第二个Counter参数与定时时间的关系是 1.如果选择RTC CLK的分频:Counter = 定时时间(S)* (RTC时钟 / 分频系数) 2.如果选择1Hz,那Counter = 定时时间(S)(看名字应该是这么回事,但是我没有试过,不敢确定)% H8 z, @! V3 `# f6 v, K: a. [ 3.如果选择1Hz with 1bit added to Weak Up Counter,这个情况我还没搞明白,主要是不明白“1bit added to Weak Up Counter”是个什么意思 我选择的RTC CLK 8分频,定时时间为5S,所以counter = 5 * (32.768k / 8) = 20480( l: K* T. W; Q 0 c# ^, b0 m3 q1 `5 a8 p& U 第三个参数同第二个,是时间到了后的自动重装载值,为了保持定时唤醒,我就把这个参数和第二个参数一样1 {1 ^5 e& V% v
然后把中断打开7 L! j" `/ ^' W, S / ^; P k, c8 p/ }6 m. G& a
最后Project Manager中有一个选项是把所有没有用到的pin叫配置成analog,这个可以避免没有使用的引脚但是外部接了东西,导致的漏电,从而测量功耗偏高
最后生成工程(图略) % P9 ^( p# a3 h8 h$ B! M; F8 v2 V$ y8 X# |: m2 p 二.代码编写 - l0 R$ p# m- v5 _3 h# X8 G这次的代码修改很简单,先对cubemx生成的RTC的初始化函数做一下修改,如下
0 \1 h5 n; P' T5 ^8 ` O5 u . _ h/ }8 o3 _4 ]5 R' l. n. Y 在while1前面加如下代码
简单解释一下,standby就是倒数第二深的睡眠模式了,从standby唤醒后芯片就会reboot,但是唤醒后我们可以知道本次代码运行是因为硬件复位还是唤醒。所以我在代码中对这个情况加了打印,待会儿我们可以看一下效果。 如果是从standby唤醒的,那就清除standby的标志位(这个如果不清除,等睡下去后会立刻唤醒) ( t* T2 j; D/ D8 B* W然后不管是从什么状态下运行代码,我都让他打印一下RTC时间,主要是避免RTC时间被重置,最后进入standby 7 a9 w1 @# H1 O; ~6 m. v } d- K: t6 _% L1 a 好了烧录,运行,LOG如下
符合预期,首次通电打印normal run,之后每隔5s打印一次wkup from standby run,并且RTC时间也是正常的向后跑 3 E S1 a; Z2 {; T! M6 T 三.功耗测试 4 E9 K* l1 F7 ~6 @" H; ~6 q) Q功耗测试还是用上次LPTIM时用的PPK2 , A ?% V6 Q3 Q: f$ \1 aJP4供电跳帽调到CHG,JP6-11都去掉(不过这个不去掉也行,我试了不去掉也不影响功耗,毕竟STLINK已经断电了) 接线如下 ' m6 k h* X$ S4 D/ k
测量结果如下图 / W: t0 f* ?" ^- L% v5 |6 ?
690nA,我已经尝试了很多设置,但是不知道还有什么是没有配置对的(我现在还怀疑STLINK与MCU连接的串口,或者是睡眠时有些时钟没关?),和手册上的160nA还是差了好多,有没有懂行的大佬指导一下 ) @6 C- U1 f7 T& x: A2 z' i0 Y' C7 l- n1 ?1 x# ? 最后工程见附件
STM32U0_RTC AND STANDBY WKUP_test.rar
(5.23 MB, 下载次数: 0)
|
【STM32H5 评测】基础硬件加密与随机数性能 - STM32H5E5实测硬件AES加解密、HASH运算、TRNG真随机数输出速率与稳定性
【STM32H5 评测】内存读写性能 - STM32H5E5实测Flash,SRAM读写速度,用DMA搬运大块数据
【STM32H5 评测】CPU核心性能 - STM32H5E5跑 RTOS,观察任务切换速度、中断响应快慢
使用stm32C542做的低功耗密码锁示例
【STM32U3评测】使用INS5699 RTC模组
【评测汇总】STM32U3 系列开发板评测全汇总 | 吃透新品核心性能与实战场景
我中奖啦,这敢想象吗😁😄😄
【STM32U3评测】低功耗模式功耗测量
【STM32U3评测】并不优雅的点亮WS2812
【STM32U3评测】移植RTOS
微信公众号
手机版