打印
[STM32L4]

ST,你在STOP2模式下对ADC做了什么???

[复制链接]
685|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
shizaigaole|  楼主 | 2019-8-17 23:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一个产品,需要休眠唤醒后采样5个ADC通道数据,采用STM32L4芯片,使用STOP2休眠模式,采用RTC唤醒,唤醒后,采样5个通道。

结果是,采用STOP2模式采样怎么都不正确!!!5个通道,要么是0,要么是2048.

实在没办法,改为低功耗方式STOP1模式,其他都没变,结果,采样数据全部正确!!!

使用特权

评论回复
沙发
shizaigaole|  楼主 | 2019-8-17 23:13 | 只看该作者
本帖最后由 shizaigaole 于 2019-8-17 23:52 编辑

翻遍手册,也没看到ADC再STOP2唤醒后采样,有什么特别注意的事项!

查看了一下STOP2和STOP1模式的差别,发现STOP2模式下sram3掉电,但这不会影响到adc啊,其他差别就是STOP2唤醒时间稍微长点。

正是令人费解,难道这是BUG???

使用特权

评论回复
板凳
shizaigaole|  楼主 | 2019-8-18 15:18 | 只看该作者
问题已解决!
最后还是仔细看手册,发现STOP2模式下不能工作的外设模块,在进入stop2模式之前需要关闭,休眠唤醒后重新打开。

可是这样一来,凭空增加运行时间,原因是外设模块关闭和打开,都要等待执行状态到位才行,远远不是只写一个寄存器的问题。

测试下来功耗,反而比STOP1模式大不少!!!

另外ADC使能以后,必须等待足够长的时间再采样,才能避免错误,
否则的话,有个很隐蔽的错误,就是执行若干次采样,会有一次采样值为零!

如果算上这个延迟时间,功耗就更是远远大于stop2模式!


所以,如果需要频繁唤醒,执行任务,采用stop2模式反而不能降低功耗,可能还会带来问题。

使用特权

评论回复
地板
shizaigaole|  楼主 | 2019-8-19 10:55 | 只看该作者
而且关键的地方使,频繁唤醒,执行任务,采用stop2模式,需要对各种不能在STOP2模式下不能工作的硬件频繁关断使能,
有可能会带来潜在的风险,有可能会有些软故障,
所以这种情况不如用STOP1模式。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:衰兰送客咸阳道,天若有情天亦老

146

主题

3735

帖子

11

粉丝