低功耗

说到低功耗,首先要建立几个观念。

一、现实世界中没有绝对的某某某
电阻,电容,电感 三大基础元件都不是绝对的。他们互有彼此,只是比例微小而被忽略。
比如:电阻零件内有微量电感微量电容属性。普通情况下直接忽略掉,但在特殊情况下是不能忽略的。

二、不能完全相信仪器
测不准原理。一切测量手段都会影响被测对象。

三、数学是拿来用的。不要凭感觉办事
账越算越明。准确的数据是办事凭据。


低功耗的实现方式很简单,剔除一切电老虎。
从大老虎开始,小老鼠也要一个不留。能省则省,抠门到底。


电路板核心思想在 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位半 的万用表必须要。因为电路是间歇性的工作的,示波器看电流也是必须的。
  测不准原理在这里体现的淋漓尽致。