低功耗
有一个低功耗方案,需要不断检测输入端口电平状态,现在不加检测部分程序功耗在几微安,但是在while中加检测代码后功耗一直在五六百微安,想请教一下可以怎么做才能降功耗 1S检测一次行不行?这个的关键是加大休眠时间的占比,使整体平均功耗降下来。软件考虑用状态机制,休眠唤醒后,除了检测IO,其它都根据状态识别来快速进入休眠,避开不必要的软件循环。这样IO检测占用的时间小于10mS就可以休眠了。 比如1秒醒来一次,检测IO,睡眠,假设醒来时间0.1ms,醒来电流1mA,则平均电流0.1uA,相对于睡眠电流几uA,可以忽略。 本帖最后由 xch 于 2025-4-15 18:58 编辑
根据 “不加检测部分程序功耗在几微安”应当是进入深度休眠模式了。 可以用唤醒中断引脚来检测(WKUP)。或者用RTC 32k时钟作为MCU系统时钟来检测。 不检测的时候进入休眠模式,需要检测的时候再唤醒。 可以考虑使用电平变化中断 什么单片机 合泰触摸芯片有一个定时扫描的中断 io电平检测采用边沿中断触发唤醒的方式,唤醒后延迟几ms来确定稳定电平 如果在检测输入端口电平状态时不做别的事,可以单纯用IO中断唤醒;如果还要定时做别的事,就结合定时中断唤醒。 优化检测方式:使用中断替代轮询,配置GPIO省电模式,启用休眠并降低主频。
页:
[1]