GD32 之低功耗下的唤醒问题(一)

GD32 省电模式有三种如下

之前用过的EFM32 有4中低功耗模式(对比下来就知道EFM32在功耗方面是多么领先)

目前的场景是要循环的读取温度sensor的数据,每隔一定的时间读取一次,并且在整个设备运行期间,要及时的响应按键的长按和短按,首先想到的就是deep sleep模式了。

OK,尝试一下,循环读取

循环读取我采用timer的方式,每隔2s读一次,设定好timer,读取温度之后进入deep sleep 模式

 

这样可行吗?

通过timer唤醒处于deep sleep模式下的设备?

低功耗模式先看时钟,哪个时钟?

你要用哪个外设唤醒系统,就看那个外设的时钟。注意这里的外设不仅指的是MCU的外设,而且也指的是Cortex M的外设。

deep sleep 模式的介绍:

深度睡眠模式下1.2V域中的所有时钟全部关闭。

timer用的时钟是怎么样的呢?是从哪里来的呢?

看下clock tree

 

看TIMER的时钟是由CLK_SYS通过AHB和APB2系统分频倍频来的。

所有如果系统时钟,或者AHB,APB时钟关掉的话,timer肯定无法工作的。

 

那么前面说到的deep sleep 模式下1.2V 电源域中时钟全部关闭,1.2V电源域中有哪些部分呢?

 1.2V电源域包括Cortex-M4 AHB ,APB 等部分。

也就是说deep sleep模式下这些clock都是关闭的,timer根本就起不来。所以想用timer来唤醒deep sleep,

送你两个字, 呵(休)呵(想)

 

那用什么可以唤醒处于deep sleep模式的设备呢?

除了SPEC中说的EXTI还有什么RTC可以吗?你看RTC是在备份域中,用的时钟是LXTAL.deep sleep好像并没有影响到RTC这部分。

 

在下一份博客中详细看下,RTC能否唤醒deep sleep模式下的设备

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值