您的位置 首页 解答

MCU低功耗规划(二)实践

引言:用电池供电的产品来说能耗是一个重大的问题,一旦电能耗尽设备将罢工。在《MCU低功耗设计(一)理论》中,我们介绍了节能的原理,本…

导言:

用电池供电的产品来说能耗是一个严重的问题,一旦电能耗尽设备将“停工”。在《MCU低功耗规划(一)理论》中,咱们介绍了节能的原理,本文用万用表和MCU电路板,真刀真枪地测验功耗值。简略,但肯定实在的测验数据,看看官方声称低功耗与实测成果有多大距离,Let’s go!

阐明:

博客的书写东西关于图片的修正支撑力度不行,喜爱本博文的读者能够从以下链接下载PDF版别的博文,那将是一个更好的排版文档。

http://download.csdn.net/detail/jiangjunjie_2005/8966291

一. 建立测验环境

1.硬件渠道:

选用“长沙市锐米通讯科技有限公司(www.rimelink.com)”的无线通讯模块iWL881A(下图左),考虑只测验MCU能耗,特别将无线电射频模块去除(下图右),MCU为ST公司超低功耗STM8L151C8T6。

2.软件渠道:

开发渠道选用IAR集成开发环境,它的具体型号如右图:

3.测验东西:

超高精度测低功耗,需求电池模仿器,那玩意但是RMB二十多万一台;老外(如Contiki之父Adam Dunkels)常常接100欧姆电阻,用示波器算积分,比较冗杂;咱们运用最简略的方法,串联电流表,不要小看它,丈量到uA的精度是可行的。测验环境建立如下图所示

二. 低功耗形式下功耗测验

测验MCU低功耗比较科学的方法是,选用加法准则,即,首要测验最低作业状况下功耗,然后累加外设或I/O引脚,一步一步测验使能部件的功耗值。

为更好地测验STM8L151C8的功耗,咱们写了一个C言语测验软件,它把MCU的5种低功耗运转形式都包含在内。当测验对应的运转形式时,只需求修正宏界说:#define MCU_MODE MODE_xxxxxx。

读者能够从以下链接直接下载该测验代码:

http://download.csdn.net/detail/jiangjunjie_2005/8959145

以下链接下载本博文的姊妹篇:《MCU低功耗设计(一)理论》

http://download.csdn.net/detail/jiangjunjie_2005/8957767

1.Halt功耗

将测验代码宏界说设置为:

#define MCU_MODE MODE_HALT

编译并烧录到MCU中,并电流表调整到2mA量程。能够看到,HALT形式下,功耗为0.4uA。

ST公司产品手册:Halt(400 nA)

看来,有崇奉的民族(西欧根本都是基督教徒)更简略说真话呀!

2.Active-Halt功耗

将测验代码宏界说设置为:#defineMCU_MODE MODE_ACTIVE_HALT,编译并烧录到MCU中,电流表仍为2mA量程。能够看到,Active-Halt形式下,功耗为1.0uA和2.2uA,为什么会有2个值呢?

假如您看过本系列的第一篇博文《MCU低功耗设计(一)理论》,那就知道,较低的功耗(1.0uA)是Halt状况,而较高的功耗(2.2uA)是唤醒状况。为什么同样是中止,Active-Halt(1.0uA)比Halt(0.4uA)功耗要高呢?答案是,前者有一个38kHz的内部RC晶振在运转,它给RTC供给时钟源,它也需求电能哦!

ST公司产品手册:Active-halt with full RTC(1.4 uA)

假如咱们把1.0uA和2.2uA简略地取个均匀,那将是1.6uA,和官方数据仍是挨近吧。当然,要更准确丈量,需求拿示波器记载唤醒时刻的占空比,这个作业留给更谨慎的后续者来完结吧(记住给读者发博文,科技报国,需求事必躬亲!)。

3.LowPowerWait功耗

将测验代码宏界说设置为:

#define MCU_MODE

MODE_LOW_POWER_WAIT,

能够看到功耗为:2.7uA。

ST公司产品手册:Low power wait(3 uA)

那个0.3uA能够算测验差错否?欢迎评论。

4.LowPowerRun功耗

将宏界说设置为:

#define MCU_MODE

MODE_LOW_POWER_RUN

该形式下功耗为:4.6uA。

ST公司产品手册:Low power run(5.9 uA).

实测功耗比官方声称功耗还低1.3uA。

咱们一同看看该形式下MCU的作业原理。

①进入“Low power run”形式的代码序列:

l跳转到RAM;

l切换体系时钟到LSI或LSE;

l封闭高速晶振、ADC和没有运用的外设;

l屏蔽一切中止;

l封闭FLASH和EEPROM;(添加软件延时,保证封闭成功)

l装备低功耗电压调节器。

②退出“Low power run”形式的代码序列:

l翻开主电压调节器;

l翻开FLASH和EEPROM;

l使能一切中止;

l翻开需求运用的外设,如有必要跳转到FLASH和EEPROM。

特别注意的是,Lowpower run形式下,MCU是从RAM(不是ROM)取指令解析履行,由于需求将该代码段定位到RAM中。在IAR环境下,将代码段定坐落RAM,需求在函数前加关键字“__ramfunc”。实例函数声明如下:

__ramfunc void LPR_Ram(void)

5.Wait功耗

看过第一篇博文《MCU低功耗设计(一)理论》的读者会了解到,Wait形式下仅CPU暂停运转,这样一来晶振能够是HSI(内部高速)或LSI(内部低速)。咱们先测验HIS形式下功耗,设置形式:#define MCU_MODE MODE_WAIT,设置时钟:#define IS_ENABLE_LSI 0。实测功耗为:687uA,下图右所示。

再测验LIS形式下功耗,设置形式:#define MCU_MODE MODE_WAIT,设置时钟:#define IS_ENABLE_LSI 1,实测功耗为:82uA,下图左所示。

ST公司产品手册:Wait, Low power run(5.9 uA)

为什么会有如此大的距离,这个答案肯怕得ST公司的技术人员来答复了!

6.Run功耗

当MCU以HSI(16MHz)高速运转时,它的功耗如下图左所示:5.3mA(实测时小数点后2和3位在跳动)。

ST公司产品手册:Consumption: 200 uA/MHz + 330 uA.

按上述公式核算,理论功耗应该是3.5mA,与实测值5.3mA有较大不同,很想ST公司的技术人员来回答下。

当MCU以LSI(38kHz)低速运转时,它的功耗如下图右所示:95.6uA。按官方声称Static能耗330uA,相差也不小。

咱们一同总结下上述运转形式下功耗和使能部件。

ST声称 实测功耗 低功耗指令 晶振 阐明 使能部件
400nA 0.4uA halt 无关 封闭内部参阅电压 /
1.4uA 1.1uA ActiveHalt 无关 由RTC守时唤醒 LSI+RTC
3uA 2.7uA LowPowerWait LSI=38kHz 程序在RAM中等候 LSI+CPU+SRAM
5.9uA 4.6uA LowPowerRun LSI=38kHz 程序在RAM中运转 LSI+CPU+SRAM
5.9uA 82uA wfi/wfe LSI=38kHz 低速晶振下等候 LSI+CPU+SRAM+FLASH+EEPROM
/ 687uA wfi/wfe HSI=16MHz 高速晶振下等候 HSI+CPU+SRAM+FLASH+EEPROM
3.5mA 5.3mA 16MHz运转 HSI=16MHz while(1)不间断运转 HSI+CPU+SRAM+FLASH+EEPROM
330uA 95.6uA 38kHz运转 LSI=38kHz while(1)不间断运转 LSI+CPU+SRAM+FLASH+EEPROM

三.I/O引脚与外设功耗测验

外设需求HSI(高速外部晶振)或LSI(低速晶振)供给时钟源,因而测验外设一般作业在Wait形式下:此刻CPU中止运转,将外设敞开的丈量功耗值减去封闭时的丈量功耗值,即可得该外设的运转功耗值。

外设数目比较多,咱们测验一些常用的外设功耗如下:

功耗 外设 阐明
170uA UART 闲暇耗能
60uA SPI 闲暇耗能
30uA TIM1 /
30uA IWDG /

I/O引脚归于模仿器材,往往它的功耗更高,如在上述测验电路有一Pin5(PA4),它连接到LED上。使能与制止该LED引脚后,测得电流为320uA。

一般来说,I/O引脚需求连接到一个确认的逻辑电平。关于一切没有连接到确认逻辑信号的I/O引脚需求改动装备,不然,外部噪声会导致功耗添加,如引脚内部的施密特触发器检测噪声的翻转而耗费能量:输入引脚装备成上拉;输出引脚装备低(或高)的逻辑电平。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/changshang/jieda/274514.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部