本帖最后由 toofree 于 2019-5-13 15:02 编辑
NUCLEO-G071RB之——2、RUN模式功耗测试
看了STM32G071x8/xB数据手册,运行模式下功耗参数相当不错,于是动手测试了一下。得到的结果比较满意。
先看看数据手册(DS12232 Rev 2,第62页),RUN模式功耗大概100uA/MHz。
对照原理图,MCU连接外设的管脚不多。USART2两个管脚,SWD管脚,一个LED控制管脚。除此之外,用户按键、复位电路、外部晶振(不用的话)都没有功耗。
可以看到三个电源都是接到了VDD,那么只要测试MCU总电源VDD的入口电流就可以。
JP3跳线帽移除,串联进去万用表,可测试电流。
用了MOS管驱动LED点灯,最大限度的减小了MCU IO口输出功耗对测试的影响,PA5高电平状态也就相当于有3.3uA的电流,低电平时更是避免了LED上拉电压对IO口的影响。
用STM32CubeMX 5.0.1建立测试工程,步骤忽略。 只使用了Systick计数器;PA5设置为输出;SWD功能禁掉,PA13、PA14作为IO输出功能);USART2_TX、USART_RX管脚没有处理,自然是作为默认输入状态,不产生功耗。
数据手册中提供了两种测试参数,即使用16MHz的内部时钟源,分别是系统时钟为16MHz和64MHz的状态,因此本次实验也对这两种状态分别测试。(贴末附有测试工程压缩包。)
16MHz系统时钟工程设置:
64MHz系统时钟工程设置:
先使用STM32CubeMX的Tools工具对功耗进行估算,两种系统时钟下分别为1.54mA、6.62mA。
设置方法,点“Step”的“加号”添加方案,弹出设置选项。
如下图进行设置。由于要点LED灯,用到了GPIOA外设,因此需要勾上GPIOA,勾上后多出来功耗44.8uA;不添加GPIOA外设的功耗为1.5mA;相加得总功耗为1.54mA。
对比添加GPIOA外设的功耗关系。
STM32CubeMX生成Keil测试工程。只“main.c”文件的主程序循环中,添加了HAL_Delay()延时和LD4闪灯。这时设置LD4点亮的延时参数为1ms,熄灭时间为999ms,也是为了最大程度降低点亮LED时,PA1管脚输出电流对整体功耗的影响。让LD4灯闪的目的,是让更直观的看到程序的确是在运行。(在NUCLEO-G071RB板上LED丝印名称为LD4,在程序中用了LED4,见到本贴中的LD4或LED4,都是一回事,不必计较!)
“main.h”文件中自动生成有LED4的GPIO和Pin脚宏定义。
经测试得出结果:
使用内部时钟源HSI16,系统时钟为16MHz时的电流为 1.427 mA,相当于1.427/16=89.2uA/MHz;
使用内部时钟源HSI16,系统时钟为64MHz时的电流为 5.675 mA,相当于5.675/64=88.7uA/MHz。
(测试图片没得拍,两只手拿着万用表表笔,串联到JP3两端给供得电。)
至此实验结束,实验结果与预期一致。
附上实验相关文件及测试工程:
MB1360-G071RB-C01 Board Schematic.pdf
(4.84 MB, 下载次数: 19)
|