Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
PM电源管理
功耗调优
基于RT-Thread功耗调优与PM管理实战经验分享-基础篇
2.00
发布于 2020-10-17 12:31:13 浏览:5004
订阅该版
[tocm] [RT-Thread 电源管理与功耗调优系列 - 目录](https://club.rt-thread.org/ask/article/3419.html) [基础篇 概念与基础,理解什么是功耗](https://club.rt-thread.org/ask/article/2282.html) [调试篇 开始搭环境,动手调起来](https://club.rt-thread.org/ask/article/2283.html) [驱动篇 想要调功耗,代码也要有](https://club.rt-thread.org/ask/article/2284.html) [系统篇 如何利用PM框架,配合PMS线程,管理功耗](https://club.rt-thread.org/ask/article/2285.html) [实战篇 具体问题的实战思考与解决思路](https://club.rt-thread.org/ask/article/2286.html) [日志篇 功耗日志文件输出与解析](https://club.rt-thread.org/ask/article/2288.html) [收尾篇 高调做好功耗,低调掌握知识的回顾](https://club.rt-thread.org/ask/article/2289.html) [进阶:RT-Thread精通PM功耗调优 系列](https://club.rt-thread.org/ask/article/2296.html) [上手:产品功耗管理与调优经验分享 系列](https://club.rt-thread.org/ask/article/2707.html) [应用:PM组件应用与经验分享 系列](https://club.rt-thread.org/ask/article/292.html) ## 序 * 规划了一下,功耗调优涉及到多个方面的知识与经验,所以写几篇文章表达出来。 * 功耗管理注重理论联系实际,所以需要配合实践操作,才能产生更大的效果。 ## 背景 * 本篇为首篇:基础篇。 * 经验烂在肚子里,代码烂在自己的硬盘里,都无法获取到分享的快乐。 * 知识与技术,只有分享与交流,才能达到共赢。 ## 前言 * 最近也有功耗相关的童鞋在跟我谈论如何管理功耗的问题,我想,总结一下基于RT-Thread 嵌入式多任务操作系统的功耗调优实战项目的经验,希望大家在功耗处理上有点收获。 * 本篇打算只讲经验,与RT-Thread基本操作的,后面会不断补充。 * 基础知识一:具备基本或较好的硬件知识,需要更多的了解硬件,看懂电路原理图,熟悉功耗的测量与计算方法,了解电池的基本特性,对PCB电路板与元器件有较好的认识。 * 基础知识二:具备驱动软件开发的能力,可以灵活的设计与编写各种测试与调试程序,深刻的了解底层,清楚底层的硬件工作,会有助于更好的分析与解决问题。 * 基础知识三:良好的沟通能力,能与硬件、驱动、业务等相关人员,沟通功耗优化的问题,让他们理解,让他们认识到功耗的特殊性与重要性,否则他们只关心功能与高性能。 ## 流程 ### 硬件设计之初就要考虑功耗。 * 器件选型,首选超低功耗的主控MCU芯片 * 低功耗的电源芯片,LDO、DCDC、Loadswitch * 低功耗模块、传感器等 * 有些外设,如LCD TP,还要供应商提供低功耗的固件,降低运行时的功耗。 ### 了解每个模块的供电情况。 * 根据业务,运行时关闭一些按需工作的外设,让MCU与整个系统,处于间歇性工作状态。 * 运行功耗调优思路:【按需运行,空闲时睡眠】。 ![2021-02-01_221325.png](https://oss-club.rt-thread.org/uploads/20210201/540769fa7ae170ae354f1fa1b43aa231.png) ### 深入硬件电流拆解【重点,最繁琐,最有效】 * 新项目或者新产品,很多员工很难马上全面的认识整个系统的运行,所以功耗管理是一件【长久】的工作。 * 很难马上了解整个供电逻辑,开关机逻辑,各个模块供电情况。 * 很难马上了解耗电较大与耗电较少模块的划分,各个睡眠模式下,哪些需要一直开着,哪些可以关闭。 * 很难马上了解哪些外设可以马上关闭,哪些外设需要等业务处理完才能关闭。 * 很难马上了解哪些模块开机不需要开启,按需开启工作,工作完立即关闭。 * 很难马上了解哪些模块关闭需要很长时间,哪些外设断电就可以,哪些模块需要按次序断电,哪些外设断电后还要处理相关的引脚。 * 总之,不了解硬件的运行,不深入的熟悉每个模块,每个GPIO 引脚的配置,就无法真正做到超低功耗,无法让整机功耗达到最优。 * 这一步做的越深入,后面调试功耗会越轻松,当遇到功耗反弹的问题时,更容易快速定位与解决问题。 * 可能你10uA、100uA的努力降低待机功耗,一个业务异常、开关逻辑异常,会让功耗达到 10mA以上。 * 功耗就像手里的钱,怎样花才能花的时间更久。 * 对于耗电高外设的调优思路,降低运行的功耗,降低运行时CPU的参与时间,减短运行的时间。 * 如LCD屏,是否需要一直亮着?背光是否需要调到最亮?如GPS、BT等功耗较高的外设,是否一直要开着? * 先把相关引脚处理好,关闭所有外设,查看电路原理图,看是否有些外部的上下拉电阻,配置的中断是否会有内部上下拉,这些上下拉电阻,是否在待机或关机模式下产生漏电? * 是否有漏电较高的LDO、DCDC,loadswitch的默认使能是否有上下拉电阻,是否有漏电产生 * 是否有软件无法关闭的外设,如果有,需要配合硬件一起分析与解决 ### 无法关闭电源的外设,软件是否可以让其进入低功耗运行模式 * 如NFC关机卡模拟,如sesnor采样,保证数据可以使用的同时,尽量降低采样率,减短运行时间,运行在低功耗模式等。 ### 开始编写详细的GPIO PINS 引脚处理函数 * 普通PINS,SPI、I2C、UART等PINS,电源控制引脚等 * 这里需要有初始化配置,反初始化配置,用于睡眠前的处理,唤醒后的恢复处理。 ### 编写MCU的电源模式的测试用例 * 如深睡眠、如WFI浅睡眠,如关机(硬件断电、MCU进入Standby或SHUTDOWN模式)。 * 清楚目前情况下每个电源模式功耗情况,作为功耗调优的基础。 * 后期要考虑电源模式切换带来的额外的功耗开销,如减短切换时间 ### 开启RT-Thread PM组件 * PM组件分为【框架】与【平台适配】两部分。 * PM组件本身不能降低功耗,组件只是引导用户更好的管理功耗,方便功耗管理。 ### 考虑业务运行 * 直接深睡眠或关机是耍流氓。 * 功耗设计一定要保证业务正常的工作,这是前提,不了解业务,直接深睡眠,等于没做好功耗。 * 开始了解业务运行情况吧,如有GUI LCD显示,有PSRAM,有Flash或EMMC时,睡眠时如何处理相关的引脚,待机时是否需要全部下电,唤醒后是否能正常工作。 ### 详细的功耗日志 * 详细的电池电量消耗数据的记录。 * 把功耗日志写到指定的log文件里,功耗日志一般为时间、电量、系统PM状态、消息次数、唤醒次数、甚至睡眠时间等。 * 功耗日志一般是周期性的,如1min 10min 1hour等。 * 可以通过BT、BLE、USB、网络或者串口,把功耗LOG日志传到手机或电脑上。 * 可以使用python等脚本处理LOG日志文件,也可以把LOG文件发到远程云端,进行长时间的记录与大数据分析等。 ## 总结 * 功耗调优是个持久战。 * 伴随着从设计之初到产品的量产,如果想随便搞一下,功耗问题也会随便产生。 * 开始搞起你的功耗吧,需要学习的需要掌握的东西很多,超乎你的想象。
5
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
张世争
学以致用
文章
131
回答
805
被采纳
174
关注TA
发私信
相关文章
1
STM32F103的低功耗
2
最近用rtthread系统下AD采样并低功耗,中断响应不及时
3
rt-thread低功耗休眠应用问题请教
4
关于RTT对低功耗的支持
5
RT-Thread怎么休眠实现低功耗。
6
RT-Thread V3.0支持的低功耗,OS会自行进入吗?
7
关于RTThread3.0低功耗休眠模式
8
RTT3.0的bsp包中哪些MCU自带低功耗定时器?
9
关于低功耗上次说针对L4出个BSP的,怎么迟迟不见呀
10
低功耗问题。
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
WIZnet_W5500
UART
ota在线升级
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
msh
SFUD
rt_mq_消息队列_msg_queue
keil_MDK
ulog
MicroPython
C++_cpp
本月问答贡献
a1012112796
20
个答案
3
次被采纳
张世争
12
个答案
3
次被采纳
踩姑娘的小蘑菇
7
个答案
3
次被采纳
用户名由3_15位
13
个答案
2
次被采纳
rv666
9
个答案
2
次被采纳
本月文章贡献
程序员阿伟
9
篇文章
2
次点赞
hhart
3
篇文章
4
次点赞
RTT_逍遥
1
篇文章
8
次点赞
大龄码农
1
篇文章
5
次点赞
ThinkCode
1
篇文章
1
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部