功率(瓦特)= U(伏特)I(安培)
能量(焦耳)= U(伏特)I(安培)t(秒)
电量(库伦)= I(安培)t(秒)
功耗可以分为动态(活动)功耗和静态(就寝)功耗。
均匀功耗=(动态功耗x动态韶光+静态功耗x静态韶光)/(动态韶光+静态韶光)
由此得出一些结论,降落均匀功耗,可以从下面几个方面入手
降落动态(运行)功耗;
降落动态(运行)韶光;
降落静态(休眠)功耗;
增加静态(休眠)韶光。
大略理解这么多,在末了还有一些我自己的积累的履历分享。下面前辈入正式的PIC单片机低功耗学习。
PIC16F184xx有3种省电模式:打盹,空闲,休眠。功耗:打盹>空闲>休眠。
打盹模式
通过减少CPU操作和存储器访问来节能,外设和系统时钟都保持运行。通过DOZEN=1来进入打盹模式,通过DOZE[2:0]寄存器确定N个周期实行一个指令。
空闲模式
空闲模式和打盹不同之处在于,CPU和存储器均关闭。通过IDLEN=1,再实行SLEEP指令进入空闲模式。此处回顾一下第一篇时钟的内容,当实行SLEEP指令,就不再有系统时钟了,CPU停滞事情;而打盹模式没有实行SLEEP指令,以是有系统时钟,CPU可以理解为处于低速模式。
休眠模式
CPU和大部分外设被关闭,是最省电的模式。通过IDLEN=0,然后实行SLEEP指令进入休眠模式。
实战
在MCC中找了找,没有找到低功耗干系的配置选项卡,看来只能在程序中操作。在之前IO的程序中进行,时钟LFINTOSC,512分频,RA2S输出。程序如下。征象为LED闪烁两次,保持熄灭,解释进入就寝模式。SLEEP();指令也可用asm(\"大众sleep\公众);。
接下来测就寝时的功耗。须要评估板做一些改动,首先割开J100,这是给MCU供电的线路。如图篮筐位置
然后为MCU供电,并将电流表串入电路中。
实际测出,在进入就寝后功耗为29uA,手册上流传宣传的可是nA级别的,相差甚远。
首先考虑到IO口上可能产生的电流,有连接的IO有RA0、RA1、RA2、RA3、RA4、RA5、RB4、RB6、RC2,个中RA2接LED已经配置输出高,不会产生电流;RC2连接按键,是断开的也不会产生电流;RA3是重启,有外部上拉10k电阻,在引脚为低时会产生电流,正常情形下没有,即便有也时nA级别的。这3个引脚连接保留,其他的IO连接全部割断,基本上都是和调试器连接的。如下图篮筐线全部割断。
然后丈量电流,令人失落望的是,并没有变革。接下来考虑可能哪些外设没有关闭。检讨MCC配置创造,看门狗WDT没有开,但是欠压复位BOR是开着的,将BOR关闭,测得电流为24uA,低落了一些,BOR确实有一定影响,但还有一定差距,连续排查。
仔细阅读手册,创造这段描述,在PIC16F18446中包含一个LDO,可以让IO利用最高5.5v高电压,内部利用较低电压事情。LDO肯定会有一定的静态电流的。下一段提到将VREGPM置位可以进入低功耗休眠模式。
寄存器的详细描述
程序加入VREGPM=1;之后再实行SLEEP指令。这次测得电流在1uA以下了,影响确实很大。这个结果已经到达nA级,和手册表流传宣传的在同一单位级了。
由于我的电流表的量程就到1uA,下面换一种办法来丈量。如下面事理图
丈量结果为3.8mV,检测电阻R1为10kΩ,I=U/R,以是电流为380nA。
在电气特性里,有看到了下面这段,对我们的测试形成了印证,VREGPM=1时进入就寝范例功耗为0.4uA,上面实测为0.38uA;VREGPM=0时,即内部LDO打开,范例值18ua,上面实测为24uA,略高一些,但在一个数量级,并且温度和VDD电压也会有一定影响,暂不穷究了。至此做低功耗运用时,最根本的最小功耗已经得到,后面再根据需求添加自己的功能和逻辑。
已经有一些篇幅了,并且后面还有一定内容,包括空闲和打嗝的实例,末了一些我的履历分享。我考虑在论坛上发帖篇幅还是不要太长,坛友阅读和我撰写的压力都大一些。以是本周先到这里,PIC低功耗的下半部分下周见。O(∩_∩)O
(本文摘自21ic论坛,作者:21ic网友yongruru)