说到低功耗,首先要建立几个观念。
一、现实世界中没有绝对的某某某。
电阻,电容,电感 三大基础元件都不是绝对的。他们互有彼此,只是比例微小而被忽略。
比如:电阻零件内有微量电感微量电容属性。普通情况下直接忽略掉,但在特殊情况下是不能忽略的。
二、不能完全相信仪器。
测不准原理。一切测量手段都会影响被测对象。
三、数学是拿来用的。不要凭感觉办事。
账越算越明。准确的数据是办事凭据。
低功耗的实现方式很简单,剔除一切电老虎。
从大老虎开始,小老鼠也要一个不留。能省则省,抠门到底。
电路板核心思想在 CPU (MCU,以下直接用CPU,不再兼顾名词问题)。
CPU 工作顺序
上电-》准备一下/干活-》睡觉-》被叫醒-》干活-》睡觉。。。。
睡觉的时候,关闭外围能关闭的所有。能关的全关,能断电的全断电。
睡觉时候的电量别看他小,他是能耗占比最大的。水滴石穿。 计算一下就知道了。
CPU 睡觉,按照业务需求去做,具体情况具体对待。
比如:有条件的CPU把自己的电掐了,外部唤醒信号首先对MCU 供电,MCU 醒来先把电源hold住 然后干活,干完再自杀。
有些外围电路是有低功耗模式的,这个时候就需要计算了。
这个低功耗是多少电流,这个外围电路睡觉时多少时间。
唤醒时间是多少,唤醒过程消耗多少电量。
如果给这个设备直接断电,他的上电初始化时间是多少,这个初始化时间内整个电路消耗多少电量。
(其他零件等待他初始化的时间里消耗的电量也要计算)
对比两个值,取其优势者。 (这当中还需要评估,断电成本,比如加入开关电路的经济成本。)
CPU 睡觉,自然有醒的时候,不然就是砖头了。唤醒条件。
定时器,外部IO触发,低电量唤醒。 万变不离其宗。
关于CPU 干活状态,MCU 的功耗来源于
固定静态电流 + A * 频率
A的单位是 ua / MHz
静态电流 和 A 是受CPU 加工工艺决定,我们无法触及。细节自行科普。
那么MCU 到底是最高频率运行还是 其他的呢。 计算, 频率切换开销, 工作时长,CPU 占用率。 或许计算太麻烦了 直接测量好了(ma级别的电流 仪器可行度还是可以的)。
受制于间歇性工作,很多东西会为此让道,比如通讯:
NBIOT 只支持 UDP 和基于UDP 的COAP。 TCP 的连接开销他扛不住。
LORA 的LORAWAN CLASS A B 都是间歇性的。控制时隙。只有打开接收窗口的时候才可以收到数据。
TDMA 时分多址通讯必须要。 没有谁有资本(电量)接收轮询。
做物联网的低功耗产品一定是有延迟的,没有谁有那个电量长期开启接收。
人小鬼大,小零件,大老虎:
电容,特别是电解电容。 漏电流。 +-极之间是有等效电阻的。 零件选购特别注意项。
二极管。漏电流严重。相比之下 mos 会好一些,可以考虑替代。
三极管。同二极管。
MCU IO 口。需要按照MCU datasheet里面要求进行配置。一般是模拟量输入模式的偏多。
上下拉电阻。阻值能大则大。没有办法,MCU 失去知觉的时候必须让关键性位置有逻辑。
LDO 静态功耗。DCDC 静态功耗。 选料的活。拼知识积累。
电池自放电率。电池本身是会缓慢放电的,然后内阻也有消耗。计算电量的时候不能忽略。锂电池种类很多,需要仔细选。
测量:
数据手册只是参考,真正起到凭据作用的数据还是来自于测量。
测量有误差,ua级别的电流表接入电路, 本身就会产生ua级别的电流 ^.^ 怎么办呢。需要各种仪器的自己的干扰数量级,如果可以忽略那就忽略,不能就要补偿。
5位半,6位半 的万用表必须要。因为电路是间歇性的工作的,示波器看电流也是必须的。
测不准原理在这里体现的淋漓尽致。
来源:oschina
链接:https://my.oschina.net/u/4391811/blog/3286076