顾FR 发表于 2025-4-15 10:30

低功耗

有一个低功耗方案,需要不断检测输入端口电平状态,现在不加检测部分程序功耗在几微安,但是在while中加检测代码后功耗一直在五六百微安,想请教一下可以怎么做才能降功耗

hjl2832 发表于 2025-4-15 17:04

1S检测一次行不行?这个的关键是加大休眠时间的占比,使整体平均功耗降下来。
软件考虑用状态机制,休眠唤醒后,除了检测IO,其它都根据状态识别来快速进入休眠,避开不必要的软件循环。这样IO检测占用的时间小于10mS就可以休眠了。

coody 发表于 2025-4-15 18:45

比如1秒醒来一次,检测IO,睡眠,假设醒来时间0.1ms,醒来电流1mA,则平均电流0.1uA,相对于睡眠电流几uA,可以忽略。

xch 发表于 2025-4-15 18:51

本帖最后由 xch 于 2025-4-15 18:58 编辑

根据 “不加检测部分程序功耗在几微安”应当是进入深度休眠模式了。 可以用唤醒中断引脚来检测(WKUP)。或者用RTC 32k时钟作为MCU系统时钟来检测。

huquanz711 发表于 2025-4-15 21:47

不检测的时候进入休眠模式,需要检测的时候再唤醒。

jiabin1024 发表于 2025-4-16 08:16

可以考虑使用电平变化中断

xionghaoyun 发表于 2025-4-16 08:43

什么单片机

xionghaoyun 发表于 2025-4-16 08:44

合泰触摸芯片有一个定时扫描的中断

前功尽弃 发表于 2025-4-16 09:15

io电平检测采用边沿中断触发唤醒的方式,唤醒后延迟几ms来确定稳定电平

qeeuly 发表于 2025-4-16 09:30

如果在检测输入端口电平状态时不做别的事,可以单纯用IO中断唤醒;如果还要定时做别的事,就结合定时中断唤醒。

丙丁先生 发表于 2025-4-16 09:37

优化检测方式:使用中断替代轮询,配置GPIO省电模式,启用休眠并降低主频。

页: [1]
查看完整版本: 低功耗