【NUCLEO-L452RE测评】用STM32 Nucleo Power GUI tool快速评估各模式功耗状况
周一收到了论坛寄来的NUCLEO-L452RE,L452RE是ST新出的STM32L4XX超低功耗系列,不仅功耗非常低,而且还是采用了M4的内核集成了单精度的浮点运算能力,最高主频达80MHZ,集低功耗与高性能一身,而且内部还集成了OPAMP、DFSDM一些新的外设,非常适合手持电池供电的设备使用,L4增加了很多低功耗的模式,比以往复杂了了不少,并且还有个后缀是P的特殊的版本,是支持SMPS外置内核供电的,这样可以避免内置的线性LDO消耗了比内核还多的能耗,提高了电源的利用率。感谢论坛提供这次机会,能够尝鲜L452
。
因为是主打超低功耗的MCU,因此各个模式耗电情况的评估就是主要任务。STM32CUBE里面提供了一个STM32 Nucleo Power GUI tool的工具软件,可以方便的用来评估L4系列的功耗情况,安装完L4的库之后,STM32Cube_FW_L4_V1.8.0\Utilities\PC_Software\STM32Nucleo_Power_GUI 目录下就是这个工具,目录下还有个Binaries目录,里面有个STM32L452RE_NUCLEO.hex已经编译好的固件,直接通过STM32 ST-LINK Utility 写入到NUCLEO-L452RE即可,之后在断电情况下取下板上JP6的跳线接入电流表以测量L452RE的功耗。解压POWER GUI软件后双击“Qtserial.exe”文件就可以进行评估,非常方便。
由于L4系列的功耗非常低,甚至低至几十nA,VBAT模式更是只有几nA,一般的万用表难以测量这么低的电流,所幸手头上有HP 34401A的6位半台式万用表,电流最低量程是10mA,开启6位模式后最低位可以显示0.0X uA,虽然还不能显示到1nA,但是也基本可以用来评估L452RE了。由于如此低电流这个时候万用表容易受到内部外部干扰因此最后一位会有3个字左右的跳动,为了能方便测评,特地安装了KEYSIGHT BENCHVUE DMM测量软件,软件可以控制34401A测量模式,置于10mADC,自动调零开启,打开最慢速100NPLC选项后可见最小分辨率变成了3nADC (10NPLC是10nADC),当然了,显示仍旧是只能显示到10nADC,但是经过软件处理后抗干扰能力大大增强,代价是测量一次的周期成了8秒左右。
断开板上JP6 IDD跳线,接入2个探头连接万用表
开发板写入STM32L452RE_NUCLEO.hex固件后,上电之后的电流值为821uA左右
打开POWER GUI TOOL,选择STLINK连接的COMM口,我是COM3
连接成功后会显示下图:
进入POWER GUI TOOL 主界面
软件界面下,只要先按NUCLEO板上的复位键,然后再选择想要测量的功耗模式,按确认后MCU即进入相应的功耗状态,很方便进行评估。
STM32Nucleo_Power_GUI 提供了18个模式选项,可以让用户很细致进行了解。接下来就配合KEYSIGHT BENCHVUE DMM软件进行依次测试。
0、开发板复位后的初始IDD电流为821.41uA左右:
1、SHUTDOWN模式静态电流约40nA,由于电流实在太低,因此这个时候万用表最后一位受干扰影响是在2~5之间跳动,大部分时间是显示3~4,姑且认为其类似正态分布,电流实际是30~40nA之间,根据官方提供的数据,25度的典型值是37nA,当前房间温度为26.6度,所以认为本次SHUTDOWN模式实测结果是靠谱的,与官方提供的典型值一致。
2、STANDBY 模式下实测电流为140nA左右
3、STANDBY + RTC 模式下静态电流为 640nA
4. STANDBY+RTC+SRAM2 _ 850nA
5. STOP2 模式1.47uA
6. STOP2 + RTC _ 1.98uA
7. STOP1 + MR OFF _ 5.46uA
8. STOP1 + MR OFF + RTC _ 6.02uA
9. LPSLEEP, 2MHz _ 65.14uA
10. LPRUN, 2MHz _ 282.58uA
11. SLEEP Range 2, 24MHz _665.34uA
12. SLEEP Range 1, 80MHz _ 2.34053mA
13. RUN while (1) Range 2, 24MHz _2.29558mA
14. RUN-while(1) Range 1, 80MHz _ 8..65513mA
15. RUN CoreMark Range 2, 24MHz _ 2.54658mA
16. RUN CoreMark Range 1, 80MHz _ 9.80108mA
17. RUN reduced code Range 2, 24MHz _ 2.20739mA
18. RUN reduced code Range 1, 80MHz _ 8.49623mA
利用ST官方提供的STM32Nucleo_Power_GUI工具进行评估很方便,相对也更准确,避免了自己写代码的时候一些没有注意到的地方,比如GPIO模式啊,时钟啊等等一些细节,影响低功耗测量的准确性。同时,官方的STM32Cube_FW_L4_V1.8.0\Projects\STM32L452RE-Nucleo\Examples\PWR目录里面提供了详尽的例程,并且包括一个PWR_ModesSelection的例程,可以方便的切换各种电源模式来进行测试。
最后再把上面实测的数据整理下,环境温度26.6度:
1、SHUTDOWN 00.000 04 mADC
2、STANDBY 00.000 14 mADC
3、STANDBY + RTC 00.000 64 mADC
4. STANDBY+RTC+SRAM2 00.000 85 mADC
5. STOP2 00.001 47 mADC
6. STOP2 + RTC 00.001 98 mADC
7. STOP1 + MR OFF 00.005 46 mADC
8. STOP1 + MR OFF + RTC 00.006 02 mADC
9. LPSLEEP, 2MHz 00.065 14 mADC
10. LPRUN, 2MHz 00.282 58 mADC
11. SLEEP Range 2, 24MHz 00.665 34 mADC
12. SLEEP Range 1, 80MHz 02.340 53 mADC
13. RUN while (1) Range 2, 24MHz 02.295 58 mADC
14. RUN-while(1) Range 1, 80MHz 08.655 13 mADC
15. RUN CoreMark Range 2, 24MHz 02.546 58 mADC
16. RUN CoreMark Range 1, 80MHz 09.801 08 mADC
17. RUN reduced code Range 2, 24MHz 02.207 39 mADC
18. RUN reduced code Range 1, 80MHz 08.496 23 mADC