suweisuwei 发表于 2023-7-25 14:16:24

低功耗模式异常跳出

情况说明,目前正在处理一个低功耗相关的项目,涉及到需要让fm33lc013进入低功耗模式,但是现在的问题是,好像低功耗模式可以正常进去但是会跳出来我该如何排查问题发生的原因和解决这个问题,目前开启了低功耗定时器 低功耗串口
要实现的功能是 开启低功耗功能 将功耗控制在50ua

interFF 发表于 2023-7-31 16:26:07

如果楼主所说的异常跳出指的是,不知什么原因MCU由休眠状态转为正常工作状态,即被唤醒了。那么建议楼主从以下方面进行排查,以下是复制粘贴的文本(详细可参考FM33LC0xx产品说明书 4.3章节)

---------------
唤醒源
唤醒源 应用 可唤醒模式
Sleep DeepSleep
停振检测 可屏蔽,32786Hz 晶振停振时唤醒
芯片 √ √
VREF 可屏蔽,在 VREF1p22 建立后产生
中断唤醒芯片 √ √
SVD 可屏蔽,在电源电压跌落至阈值以
下或升高至阈值以上时唤醒芯片 √ √
比较器 可屏蔽,用于外部事件唤醒 √ √
ADC 可屏蔽,ADC 的各种中断均可用于
唤醒 √ √
RTC 可屏蔽,根据需要的唤醒周期设置 √ √
IO 引脚中断 可屏蔽,用于外部事件唤醒 √ √
Debug 不可屏蔽,用于 debug 唤醒 √ √
LPUART 可屏蔽,接收数据唤醒 √ √
WKUPx 引脚 可屏蔽,用于外部输入唤醒 √ √
NRST 不可屏蔽,用于全局复位 √ √
LPTIM32 可屏蔽,用于定时唤醒 √ √
BSTIM32 可屏蔽,用于定时唤醒 √ √
I2C 从机 可屏蔽,用于从机接收唤醒 √ √
通过Cortex-M0的PRIMASK功能,可以实现以上中断事件唤醒芯片,但是CPU不执行中断处理程序。
此时唤醒后CPU将继续从休眠前的指令之后开始运行。
注:芯片从休眠模式唤醒后,软件可以通过查询PMU.WKFR
寄存器来快速识别当前的唤醒源,唤醒
源的清除需要进入各个外设模块分别完成。

顾博文 发表于 2023-8-1 08:40:23

这是复位了吧。 建议用我们的例程pmu_sleep的例程跑下,然后将lpuart 与 lptimer 加进去,这样比较快些。lpuart不占功耗, lptimer功耗如果不是频繁唤醒,1秒一次。整体功耗应该在几个 uA。

suweisuwei 发表于 2023-8-2 13:24:07

这个问题已经解决了 不知道为啥 同事换了一个板子就好了 同样的代码
然后当我进入睡眠模式的时候他的功耗居然在3500ua
最后我还尝试了官方的deepsleep历程 测试了下实际的功耗在700ua 不知道是不是板子的功耗问题
现在这个状态 如果是板子的问题 现在这个情况 是无法继续向下做低功耗的
这里放上两张图 一个是我们的代码 一个是官方历程

顾博文 发表于 2023-8-4 13:54:49

suweisuwei 发表于 2023-8-2 13:24
这个问题已经解决了 不知道为啥 同事换了一个板子就好了 同样的代码
然后当我进入睡眠模式的时候他的功耗居 ...

官方的例程的功耗应该是几个uA。如果不对,那就是硬件问题。换个板子试试。有官方的demo板试更好。

suweisuwei 发表于 2023-8-10 16:35:03

顾博文 发表于 2023-8-4 13:54
官方的例程的功耗应该是几个uA。如果不对,那就是硬件问题。换个板子试试。有官方的demo板试更好。 ...

在实际的开发过程中 我遇到了下面的问题 现在需要使用这个单片机采集各个传感器 这里平台上给我定了两个时间阈值,这里我每次到这个时间就会单片机采集数据,然后发送到服务器上,考虑到低功耗定时器比较费资源,这里使用的是rtc秒中断+全局变量的方式时间功能,这里当我开启低功耗模式的时候,rtc中断会将我的程序从低功耗模式跳出来,仔细看了手册,手册说是可以屏蔽,不知道这个地方的屏蔽指的是可以让rtc中断不唤醒单片机的低功耗模式么,还请大佬指点

suweisuwei 发表于 2023-8-10 16:50:30

顾博文 发表于 2023-8-4 13:54
官方的例程的功耗应该是几个uA。如果不对,那就是硬件问题。换个板子试试。有官方的demo板试更好。 ...

这个是我的程序代码 还希望大佬指点下

interFF 发表于 2023-8-14 10:05:56

按理说正常你跑官方的代码,应该是几个uA. 建议按照3#与5#的指导方式,先找出最小系统的最低功耗,后面再增加其他的外设功能(先拆后装,用不到的洛铁给拿下来,后面再装上)因为你不能确定是硬件问题还是软件问题。官方的代码都是经过验证的,所以在保证软件没有问题的情况下,测试硬件,如果硬件达不到几个ua的功耗,那就要检查下硬件了。总之,控制变量法,要保证有一个事情是确定的,确定是硬件问题,还是软件问题。
页: [1]
查看完整版本: 低功耗模式异常跳出