[PIC®/AVR®/dsPIC®产品]

【4月板卡】PIC16F184x6学习笔记-低功耗(下)

[复制链接]
792|2
手机看帖
扫描二维码
随时随地手机跟帖
yongruru|  楼主 | 2019-6-22 16:29 | 显示全部楼层 |阅读模式
下图列举了正常模式,空闲模式,打盹模式的功耗,实际对比下。
电器.jpg

正常模式,时钟HFINTOSC,32MHz,实际电流3.9ma。
空闲模式,时钟HFINTOSC,16MHz。程序IDLEN = 1;SLEEP();进入空闲模式。实际电流1.6ma。
将外设时钟关闭SYSCMD,降低为0.9ma。
打盹模式,时钟时钟HFINTOSC,16MHz,时钟分频比16,DOZE[2-0]为011,DOZEN=1,即程序为CPUDOZE=0x43;进入打嗝模式。实际电流为1.5ma。
可能温度,电压,某些模块开关的不同,造成了和手册上的少许偏差,但基本是相符的,此处就不深究了。
下面说一个有意思的,我将时钟设置称31khz,512分频,再进入空闲模式,运行时电流30ua,空闲模式时电流竟然时100uA,此处表示不解。还有一点打嗝模式为什么会比空闲模式功耗低一点,应该是打嗝模式CPU部分运行的功耗更高一点才对,这个也不能理解。求指导。
总结下PIC有三种低功耗模式,个人感觉睡眠用处会更大一些,空闲模式降低的功耗比较有限。因为PIC16F18446的系统时钟和外设时钟是一样的,如果降低时钟,外设也跟着一起降低,打嗝模式可以理解为对系统时钟又做了分频。对于系统时钟和外设时钟可以独立分配的单片机,就不需要这种打嗝模式,直接按需控制系统时钟和外设时钟频率控即可。
最后,聊一聊我的一些低功耗经验。
1, 时钟越高,功耗越大,单片机应用,性能够用即可,如果不能睡眠,就尽可能降低频率。
2, 尽可能多的使用睡眠,大规模运算时,可以使用较高的时钟,尽快完成程序进入睡眠,使平均功耗降低。
3, 需要用到乘除法和三角函数时,尽可能使用带硬件加速器的单片机,可以极大缩小指令数量。
4, PICCLCAVR有事件系统,这些都是独立于内核运行的外设,可以增加内核的睡眠时间。
5, 开关CMOS逻辑门的功耗P=K·V^2·fK是系数,V是电压,F是频率,可以看出电压的影响最为重要它是指数增长。在范围和需求允许的情况下使较低电压的电源系统。
6, 在降压过程中LDO的输出和输出电流是一样的,有一部分能量是作为热量损耗掉的。输入和输出的电压差如果过大,转换效率就会低了,此时考虑使用DCDC可以增加效率。
7, 使用LDODCDC是要关注静态功耗,在睡眠时尤其重要,它可能消耗MCU的几十甚至几百倍功耗。
8, 滤波电容不宜滥用,10uf的胆电容漏电流1ua10uf陶瓷电容20na,尽量少用胆电容,电容的数量够用即可。
9, 电阻分压会带来消耗,增加阻值,可以降低消耗。上拉电阻同样受此影响,如果允许增加阻值
10, I2C有两个1-10k的上拉电阻,会产生消耗,可使用SPI接口的器件代替。
11, 使用通信接口唤醒cpu,代替持续监听,赢得更多的睡眠时间。
12, 使用异步通信。发送数据后的窗口期内可接收数据,窗口期外睡眠。
13, 晶振启动有稳定时间,会产生延时,此时通信会丢数据,需要注意。
14, 频繁唤醒的应用,选择较快启动时间的省电模式。内部RC启动更快。
想到这么多,就写到这里。以前听过一个人说:做低功耗就是斤斤计较。还挺生动的。



使用特权

评论回复
yongruru|  楼主 | 2019-6-22 16:32 | 显示全部楼层
PIC16F184x6学习笔记-低功耗.pdf (1.16 MB)

使用特权

评论回复
玛尼玛尼哄| | 2019-6-22 20:01 | 显示全部楼层
多谢分享。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

71

帖子

4

粉丝