Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
RT-Thread
功耗调优
基于RT-Thread功耗调优实战经验分享 -- 上手
发布于 2021-04-08 08:27:10 浏览:1640
订阅该版
[tocm] [RT-Thread 电源管理与功耗调优系列 - 目录](https://club.rt-thread.org/ask/article/3419.html) [基于RT-Thread功耗调优实战经验分享 -- 序](https://club.rt-thread.org/ask/article/2899.html) [基于RT-Thread功耗调优实战经验分享 -- 杂谈](https://club.rt-thread.org/ask/article/2735.html) [基于RT-Thread功耗调优实战经验分享 -- 上手](https://club.rt-thread.org/ask/article/2707.html) [基于RT-Thread功耗调优实战经验分享 -- 功耗测量](https://club.rt-thread.org/ask/article/2900.html) [实践:RT-Thread PM管理实战 系列](https://club.rt-thread.org/ask/article/2282.html) [进阶:RT-Thread精通PM功耗调优 系列](https://club.rt-thread.org/ask/article/2296.html) [应用:PM组件应用与经验分享 系列](https://club.rt-thread.org/ask/article/292.html) ## 前言 - 最近已经参与到某低功耗产品的功耗调优,操作系统内核使用的是RT-Thread - 项目没有直接使用RT-Thread功耗管理PM框架,而是根据RT-Thread PM框架稍作改造了一套管理框架。 - 自己是功耗调优管理的成员之一 ## 如何进行功耗管理 ![2021-04-10_074849.png](https://oss-club.rt-thread.org/uploads/20210410/209afb35c5ed9db69a1737b1112e3f4c.png) - 明白了工作内容是【功耗调优】,就开启了【功耗管理】。 - 本次功耗管理,依旧是【持久战】,前期定位是【辅助】,要保护【C位:功能、性能】很好的【发育】。 ## 第一步:【环境搭建】 - 首先安排好调试的软、硬件环境,准备好功耗相关的工具,如USB-Hub、USB线、杜邦线、各种程序下载Link,USB转串口、硬件Demo板、程控电源、万用表、电烙铁、焊锡丝、风枪,等等。 - 要到硬件Demo板的正确的原理图、PCB板的位号图,PDF格式的即可,因为前期硬件开发【改版】频繁,注意原理图纸与实际硬件Demo板的一致。 - 这个项目在硬件设计之初,已经为功耗测量留下很多的接口,前期有【大开发板】,引出了功耗控制、电源控制等接口,有丰富的测试点,便于功耗的测量、分析、拆解、控制。 - 大板中的【0欧姆】电阻,一般用于断开各路的电源,用于拆解单路电流 - 大板中电源部分串接的小电阻,如【100mR、10mR】,通过测量电阻的分压,可以获取这路的供电电流。 - 测量仪器最好是高精度的程控电源,高精度的万用表,对分析电路功耗组成、获取正确的测量数据、加快功耗的拆解与测量,有很大的帮助。 - 搞功耗,离不开【装备】【经验】【耐心】 ## 第二步【功耗拆解】 - 搭环境:产品开发之初,硬件不断的迭代,如果你入项目的时间不是立项之初,你要熟悉更多的东西,上几个版本的【坑】或【雷】,都要了解起来。 - 一般是大体简单的看两遍硬件原理图,对照实际的硬件板子,熟悉下基本的硬件架构组成。 - 根据现有的项目工程,根据MCU或主MCU,依照原理图,搭建一个自己的RT-Thread最小系统,包含基础的驱动,如LCD、Touch、USB等。如ST系列,可以使用HAL,轻松的配置引脚、各路电源的开关。专用于功耗的分析与调优,功耗的数据【对比】等。 【问】 搭建功耗调优【小系统】的意义? 【答】 功耗调优前期,可以两条腿走路。 * 一条腿是项目【主线】版本的功耗分析,一条腿是自己的【功耗专用】版本功耗分析。一般的开发项目的工程代码,参与人员很多,每天的代码提交过快,工程大,依赖项很多,可以用于功耗的摸底与验证,一般一天同步【一次】,或早晚同步【两次】即可。 * 为了达到快速的【敏捷】开发与调试,自己的【功耗专用】版本,快速的【迭代】,验证,方便【下载与调试】,达到【对比】与【快速开发】的目的。 * 要一直不断熟悉整个项目,熟悉各个硬件驱动,如果一下子给你一个不太成熟的【大系统】,你分析问题的时候,就要兼顾【程序BUG】【硬件问题】两个方向,不利于排查问题的所在。一个【小系统】,可以快速【定位】,当【硬件迭代】后,依旧可以快速的适配。 * 【小系统】可以快速方便的进行【引脚控制】、电源控制,方便编译、下载、调试,灵活的增删驱动。 ## 功耗拆解方法 -【问】 如何拆解?使用烙铁与风枪? 【答】:先看原理图,把每一路的电源控制起来,做成一个个MSH shell串口命令,用过验证引脚的配置、电源的控制是否正确。如果有测试点,测量电阻,就不用直接硬件拆解,只需要测量电阻,通过压差,估算出电流。目的是初步了解整个系统的耗电情况,区分功耗的【大鸡腿】与【蚊子肉】 -【问】MCU一直工作,如何测量功耗 【答】:开启RT-Thread PM框架,初步适配两个电源模式,DEEPSleep、Standby模式。即可方便的停下MCU,专注测量各路与各个模块的功耗。 - 进入Standby模式,用于验证硬件是否有漏电、电源不受控制的问题。使用RT-Thread PM2.0框架,只需要两个串口命令 ``` pm_request 4 pm_release 0 ``` - 进入深睡眠Deepsleep模式,测量待机功耗,只需要一条命令: `pm_release 0` - 注意整机电流与分路电流的关系。电流就像河流,分为【输入】与【输出】,一般【输入】为一条,如电池。【输出】会多个分支,因为大的项目,有几组不同的供电电压,所以有多个【输出电源分支】。理论上,【总输入】 = 【总输出】。 - 如果整系统包含多个子系统,即除了主MCU外,还有其他的功能模块,如BT/BLE。在其他模块驱动或功能不完善的情况下,让其他的模块进入关断或低功耗模式,保证不干扰正常的功耗拆解。 - 功耗拆解的流程:【模块化拆解】【分支电源的拆解】,做到各个【击破】,结合整机功耗情况,排查分析各个模块的耗电情况。 ## 解决疑难 - 进入【关机】模式,电流还是没达标,有漏电。一般关机模式,会进入【Standby模式】,并非完全断电。要确认是否可以配置上下拉电阻(根据MCU),保证某些模块的电源开关,处于可靠的开关状态。如【MOS管】,可能需要确定的【低电平】或【高电平】来关断。另外产品设计,有些外设,如【库仑计】,一般不会关闭,需要进入低功耗或关机模式。 - 清楚各个模块的功耗,完成了电流的拆解,这是功耗管理的第一步。通过开关外设电源、控制引脚电平,了解基础待机与关机功耗。 - 硬件初期设计可能不够完美,部分模块的供电肯能设计不够合理,部分硬件的漏电,待机正常,关机【异常】。不受控制的电源【模块】,要特别注意与硬件开发人员沟通。 - 保证在设备的【运行】【睡眠】【关机】【断电】等条件下,功耗无异常情况。有问题的,需要硬件【改版】的,需要【尽早】提出来讨论确定。 ## 总结 - 【功耗拆解】【引脚配置】【电源控制】,是开启功耗调优与管理的第一步,需要熟悉硬件原理,供电逻辑。 - 需要了解功耗的指标,如【续航指标】,根据【续航模型】估算出深睡眠时的功耗、工作时的时间。 - 前期调试功耗,虽然与PM功耗框架关系不大,不过开启RT-Thread PM框架,使用PM框架提供的命令,可以快速的调试、验证 - 功耗调优虽游离于【硬件】【驱动】【应用】三界,但作用不可忽视。
0
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
张世争
学以致用
文章
131
回答
805
被采纳
174
关注TA
发私信
相关文章
1
RT-THREAD在STM32H747平台上移植lwip
2
正点原子miniSTM32开发板读写sdcard
3
反馈rtt串口驱动对低功耗串口lpuart1不兼容的问题
4
Keil MDK 移植 RT-Thread Nano
5
RT1061/1052 带 RTT + LWIP和LPSPI,有什么坑要注意吗?
6
RT thread HID 如何收发数据
7
求一份基于RTT系统封装好的STM32F1系列的FLASH操作程序
8
RT-Thread修改项目名称之后不能下载
9
rt-studio编译c++
10
有木有移植rt-thread(nano)到riscv 32位MCU上
推荐文章
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
编译报错
SFUD
msh
rt_mq_消息队列_msg_queue
keil_MDK
ulog
MicroPython
C++_cpp
本月问答贡献
出出啊
1517
个答案
342
次被采纳
小小李sunny
1443
个答案
289
次被采纳
张世争
805
个答案
174
次被采纳
crystal266
547
个答案
161
次被采纳
whj467467222
1222
个答案
148
次被采纳
本月文章贡献
出出啊
1
篇文章
4
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
1
篇文章
1
次点赞
crystal266
2
篇文章
2
次点赞
whj467467222
2
篇文章
1
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部