低功耗设计把我逼疯了——从10mA到10μA的折腾之路

发布时间:2026/10/25 15:05:52

低功耗设计把我逼疯了——从10mA到10μA的折腾之路 有一个项目客户要求电池撑一年接到需求的时候我差点笑了。一个温度采集节点四节五号电池要跑一年。我说行吧STM32L0系列待机也就1μA出头传感器挑个低功耗的一年不是随便跑么。然后被打脸了。第一版打样回来实测整机功耗——2.3mA。对你没看错是毫安不是微安。查了一下午发现几个问题板子上的LDO静态电流就 5μA但后级挂着个电平转换芯片待机消耗 30μA传感器电源没做独立开关就算进入shutdown漏电流也有几个μA最要命的——GPIO浮空三个没用的IO没配置stm32l0的浮空IO在待机模式下会有额外的漏电路径这些都是些不起眼的小地方凑一起就是灾难。逐个排查的骚操作先说GPIO。很多人写完代码就把没用到的IO扔一边sleep之前记得配置一下void enter_stop_mode(void) { // 所有不用的GPIO拉低别浮空 for (int i 0; i 16; i) { HAL_GPIO_WritePin(GPIOA, (1 i), GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOB, (1 i), GPIO_PIN_RESET); } HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI); }这玩意儿坑就坑在——你以为CubeMX帮你配好了实际上它只配了你勾选的那些。我板子上有几路没用的GPIOCubeMX里压根没管结果全浮空。改完这一条直接从2.3mA掉到了1.4mA。然后是传感器电源。SHT30这种温湿度传感器就算进sleep也有几个μA的漏电流。最好的办法是加个P-MOSFET做电源开关void sensor_power_control(uint8_t on) { HAL_GPIO_WritePin(SENSOR_PWR_GPIO_Port, SENSOR_PWR_Pin, on ? GPIO_PIN_RESET : GPIO_PIN_SET); }高电平关断低电平导通。P沟道MOS管嘛源极接VCC漏极接传感器VDD栅极拉低就导通。这个做法的代价是PCB上多一个电阻和一个MOS管但换来的是待机时传感器那路完全断电零电流。改完这个整机待机降到了 80μA。最大的坑——ADC输入阻抗客户要求每五分钟采一次电池电压。最简单的方案电阻分压ADC。我之前也以为这就完事了结果发现STM32L0的ADC输入阻抗有限制分压电阻一大了采样值就飘得离谱。datasheet上写着建议输入阻抗 ≤ 10kΩ。我一开始用了 100k100k 的分压想着省电嘛——分压电阻本身的漏电流是 VCC / (R1R2) 3V/200k 15μA。不算大但加上ADC采样时的建立时间问题读数偏了 12%。后来换成了 10k10k采样准了但分压电流涨到了 150μA待机时又没法关断因为要监测电池电压。折中的办法是用一个NMOS把分压电阻的底端接到GND采样时打开采样完关掉void sample_battery(void) { HAL_GPIO_WritePin(BAT_SENSE_EN_GPIO_Port, BAT_SENSE_EN_Pin, GPIO_PIN_SET); HAL_Delay(1); // 等分压稳定 ADC_Value get_adc(); HAL_GPIO_WritePin(BAT_SENSE_EN_GPIO_Port, BAT_SENSE_EN_Pin, GPIO_PIN_RESET); }采样只花 2ms按五分钟一次算平均电流微乎其微。折腾了两个星期从 2.3mA 砍到了 8.5μA。四节南孚大概 2400mAh理论待机 2400 / 0.0085 ≈ 282352 小时 ≈ 32 年——当然这是纯理论电池自放电都不止这个数。实际跑下来一年是稳的。说实话低功耗设计没什么高深的算法也没啥炫酷的代码。就是排查——哪个器件在睡觉的时候还在偷电哪个路径没断开哪个电阻选大了选小了。一个一个剪掉最后剩下的就是能接受的功耗。哦对了还有件事——我最后发现LDO的使能引脚没接靠内部上拉保持开启但那个上拉电阻本身就消耗电流。换成直接下拉到EN有效电平又省了几μA。别问我怎么知道的问就是吃过亏。
延伸阅读

更多相关文章

2026/10/25 7:46:18

ROS 2 Dashing深度解析:嵌入式实时视觉系统的通信与调度基石

1. 项目概述:这不是一个“闪亮的头冠”,而是一套面向嵌入式视觉系统的轻量级实时数据分发框架“Dashing Diademata”——光看这个名字,你大概率会以为这是某个复古游戏MOD、小众手工艺品牌,或者某位独立音乐人的新专辑。但实际在R…

2026/10/24 17:26:53

构建可解释、可干预的AI辅助交易工作流

1. 项目概述:当“AI交易”从标题党变成案头工具 你肯定刷到过这类标题:“AI日内交易员24小时狂赚37%”、“零基础用ChatGPT自动盯盘,年化58%稳如老狗”。朋友圈、知识付费平台、甚至券商APP弹窗里,AI交易像一剂强心针,…

2026/10/24 23:25:12

C++条件变量std::condition_variable的5大陷阱与最佳实践

1. 项目概述:为什么我们需要深入理解std::condition_variable?在C多线程编程的世界里,std::condition_variable(条件变量)绝对是一个让人又爱又恨的家伙。爱它,是因为它提供了线程间高效、灵活的等待-通知机…

2026/10/25 15:04:40

EPS三维测图版:构建可验证的测绘内业数据流闭环

简介:EPS三维测图版是一款面向建筑、工程及GIS领域从业者的专业级三维数据采集与建模工具,深度集成于AutoCAD平台,专为解决地形建模、测绘数据编辑与三维场景渲染等核心任务而设计。资源包共621个文件,主体为318个DLL动态库&#…

2026/10/25 15:04:40

Rust 打造本地 NVR:Moonfire NVR 架构与实战

简介:Moonfire NVR 是一套面向安防监控场景的开源网络视频录像机实现,适合具备 Rust 与 JavaScript 基础、希望自建 IP 摄像机存储方案的开发者研究。它把来自摄像机的 H.264-over-RTSP 流直接落盘,视频帧按目录存放于磁盘、元数据存入 SQLit…

2026/10/25 15:04:40

C23标准文档高效阅读指南:新特性解析与编译器支持实践

简介:C23标准文档(ISO/IEC 9899:2024)是C语言最新国际标准的权威规范,面向C语言开发者、嵌入式工程师、编译器实现者及软件质量相关人员,用于厘清语言语法、执行库、环境模型与可移植性要求,弥补日常教程缺…

2026/10/25 15:04:40

C23标准新特性详解:nullptr、typeof与#embed的落地实践

简介:ISO/IEC 9899:2024(C23)是国际标准化组织发布的C语言权威规范,旨在提升C程序在多种计算机系统中的可移植性、可靠性、可维护性与执行效率;文档面向熟悉C语言的开发者、编译器实现者及翻译系统实现人员&#xff0c…

2026/10/25 15:04:40

Agent生产落地避坑指南:从架构选型到安全评测与观测

简介:《字节跳动 Agent 实践手册》是一份系统梳理字节跳动在 Agent 技术领域实践路径的 PDF 文档,面向具备技术背景的产品经理、AI 开发者、技术管理者及企业数字化转型负责人,尤其适合 1~3 年经验的智能系统设计、大模型应用开发…

2026/10/25 14:59:40

MATLAB实现贝叶斯优化图卷积网络BO-GCN多特征分类预测

简介:这份资源面向具备MATLAB基础、从事机器学习与深度学习研发的高校师生及工程技术人员,聚焦高维、非欧式结构、样本间存在复杂关联的多特征分类预测难题。项目以图结构表达样本相似性,用图卷积网络完成节点特征聚合,并引入贝叶…

2026/10/25 0:02:22

全国计算机二级C语言真题PDF高效刷题指南

简介:这份PDF是全国计算机二级C语言考试的试题与答案解析,专为备考二级C语言的考生准备。内容涵盖C语言特点与设计理念、程序基本组成单位、main函数执行流程、函数嵌套调用规则、标识符命名规范、整型实型字符型数据类型、八进制十六进制数合法形式、运…

2026/10/25 0:02:23

requests+BeautifulSoup:爬虫抓取h1标题的入门实战指南

简介:一份以实战为导向的Python爬虫入门资源,面向具备基本编程基础、希望快速掌握网络数据抓取的初学者,可解决从零编写简单爬虫的常见困惑。实例以requests库发送HTTP请求、BeautifulSoup解析HTML文档,完整演示从网页中提取 标题…

2026/10/25 0:02:23

递推最小二乘参数辨识MATLAB编程:二阶系统与渐消记忆实现

简介:这是一篇面向控制系统、信号处理与机器学习等领域学习者的最小二乘参数辨识程序说明文档。资源共包含一个docx格式文档,压缩包大小七十八KB,内容围绕递推最小二乘算法和渐消记忆最小二乘算法展开:先构造一个极点位于单位圆内…

2026/10/25 0:02:22

全国计算机二级C语言真题PDF高效刷题指南

简介:这份PDF是全国计算机二级C语言考试的试题与答案解析,专为备考二级C语言的考生准备。内容涵盖C语言特点与设计理念、程序基本组成单位、main函数执行流程、函数嵌套调用规则、标识符命名规范、整型实型字符型数据类型、八进制十六进制数合法形式、运…

2026/10/25 0:02:23

requests+BeautifulSoup:爬虫抓取h1标题的入门实战指南

简介:一份以实战为导向的Python爬虫入门资源,面向具备基本编程基础、希望快速掌握网络数据抓取的初学者,可解决从零编写简单爬虫的常见困惑。实例以requests库发送HTTP请求、BeautifulSoup解析HTML文档,完整演示从网页中提取 标题…

2026/10/25 0:02:23

递推最小二乘参数辨识MATLAB编程:二阶系统与渐消记忆实现

简介:这是一篇面向控制系统、信号处理与机器学习等领域学习者的最小二乘参数辨识程序说明文档。资源共包含一个docx格式文档,压缩包大小七十八KB,内容围绕递推最小二乘算法和渐消记忆最小二乘算法展开:先构造一个极点位于单位圆内…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑