基于RT-Thread功耗调优实战经验分享-上手篇

发布于 2021-04-08 08:27:10

基于RT-Thread功耗调优实战经验分享 -- 上手篇

【PM组件】RT-Thread PM2.0 应用 -- 平台适配篇

实践:RT-Thread PM管理实战 系列

进阶:RT-Thread精通PM功耗调优 系列

前言

  • 最近已经参与到某低功耗产品的功耗调优,操作系统内核使用的是RT-Thread
  • 项目没有直接使用RT-Thread功耗管理PM框架,而是根据RT-Thread PM框架稍作改造了一套管理框架。
  • 自己是功耗调优管理的成员之一

如何进行功耗管理

2021-04-10_074849.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 条评论

发布
问题