MCU低功耗设计(二)实践
E 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引脚需要改变配置,否则,外部噪声会导致功耗增加,如引脚内部的施密特触发器检测噪声的翻转而消耗能量:输入引脚配置成上拉;输出引脚配置低(或高)的逻辑电平。
MCU低功耗设 相关文章:
- MCU低功耗设计(一)理论(11-11)
- MCU低功耗设计(三)产品(11-11)
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)