前言
之前根据实际项目的功耗管理抽空写了几篇功耗管理相关的文章,但感觉还没有讲透功耗是个什么,怎么按步骤进行管理
直观的感受,如手机充满用了一天,发现电量低于50%,晚上要接着充电吧,否则第二天电量估计不足,这个50%、充满100%是个什么概念?
引入实际的项目并讲解功耗管理(功耗调优)为大势所趋
一言以蔽之,前面的文章只是理论与基础,质量不太高
有了前面的文章的理论与基础,相信在电源管理、功耗调优方面会有一点方向感
实践与实战
假如项目使用一个低功耗的MCU,通过查看MCU的手册,如STM32L系列,直观上会认为让STM32L475本身进入低功耗模式,实现电源模式切换,功耗管理就完成了
但是没想到,实际中功耗管理起来相当的复杂,并且管理的是硬件与业务,不仅仅是MCU本身的功耗。
大型的团队里,与功耗相关的小组有:硬件部、测试部、BSP(驱动部)、OS(系统部)、UI(应用部)、BMS(电池管理)、项目部、策划部(产品定义),等等。
大型项目中的功耗管理不再是:自扫门前雪,由于牵涉的部门与成员很多,管理起来很麻烦。
功耗管理不仅是需要熟悉PM框架(软件)的使用,还需要各种电源仪器仪表(直流电源、万用表),不仅需要懂MCU的电源管理,还要懂各个片外外设,要熟悉硬件(不只是了解),还有熟悉软件
功耗管理一般是个冷板凳的活,很少有公司专门投入较大的人力与时间去研究去管理,干好了没什么可说的,干不好的话,呵呵。
理论结合实战
需要用数据与事实来讲解,这里使用STM32L475-Pandora 开发板,讲解一下功耗相关的数据
工具:电源分析仪一台,或者可以使用Power Monitor等,用途为:供电、电源分析,在这里,电源分析是重要的。
PC端使用电源分析仪带的电源分析工具,图形化查看功耗数据(电压、时间、电流)
打仗,需要了解打的是谁,功耗管理也是一样,管的是什么?做到什么程度才算好。
开发板:STM32L475-Pandora,其他电路板也可以
万用表:测量电压,测量某路的电流
另外根据情况配置电烙铁、杜邦线、开发板下载工具、USB转串口工具等
接线
这里有点讲究:要了解或熟悉硬件,否则接错了很可能把板子烧掉,或者测量的不准确(不是主电源),严重影响下一步的电源分析与管理。
为了防止烧掉板子需要了解板子的电压供电范围,通过电路板的原理图,可以查找电源的【主入口】
如STM32L475-Pandora开发板,电源入口是两个USB座,5V的电源来自USB VBUS,有5V的扩展排针,可以作为整板供电,但接线时需要注意电压要正确,为5V,电源的正负极接对。
假如你接的位置不正确,如接的是3.3V,或测量功耗时还接着USB线供电,测量的数据会千差万别,用来测量功耗,会带来很多烦恼。
使用外部电源分析仪供电时,不要再使用USB供电,这样电源分析仪测量的即为整机电流。
说到整机电流,就是这个板子的所有电流,全部由一个电源入口进入。
在测量整机功耗时,如果板子使用电池,需要先取下电池,引出电池的正、负极两根电源线,使用外部的电源作为假电池供电,注意使用颜色区分电源的正负极,防止接反损坏电路板。
功耗测量
功耗数据一般由:供电电压、供电电流、持续时间组成,分为瞬时功耗、平均功耗。
瞬时功耗一般为当前实时(短时间)的平均功耗
平均功耗一般只一段较长时间的功耗,如10S内、10min内,1小时或1天内的平均功耗
功耗的单位:毫安(mA)、微安(uA)、毫安时(mAh)等,为何不包括电压?因为电压变化不大(尤其是使用电池场景),某些场景下,有电压,但是没有电流,不产生功耗。
开发板默认功耗:一个LED的功耗
原作者:张世争