本帖最后由 toofree 于 2019-5-13 15:02 编辑 * X; m1 {8 O3 A" C/ q NUCLEO-G071RB之——2、RUN模式功耗测试 看了STM32G071x8/xB数据手册,运行模式下功耗参数相当不错,于是动手测试了一下。得到的结果比较满意。 0 `" v/ g) v3 |; S$ e! b* U3 y5 q# _ R, G 先看看数据手册(DS12232 Rev 2,第62页),RUN模式功耗大概100uA/MHz。% M( F( \3 S" z9 N( \0 Q! Y7 i 对照原理图,MCU连接外设的管脚不多。USART2两个管脚,SWD管脚,一个LED控制管脚。除此之外,用户按键、复位电路、外部晶振(不用的话)都没有功耗。 , f( a I4 f, k/ y9 D2 { 可以看到三个电源都是接到了VDD,那么只要测试MCU总电源VDD的入口电流就可以。 JP3跳线帽移除,串联进去万用表,可测试电流。: P% u) t* T( U# j: y- _ 用了MOS管驱动LED点灯,最大限度的减小了MCU IO口输出功耗对测试的影响,PA5高电平状态也就相当于有3.3uA的电流,低电平时更是避免了LED上拉电压对IO口的影响。, j' Y$ e; V, i! I( G+ \ 用STM32CubeMX 5.0.1建立测试工程,步骤忽略。 只使用了Systick计数器;PA5设置为输出;SWD功能禁掉,PA13、PA14作为IO输出功能);USART2_TX、USART_RX管脚没有处理,自然是作为默认输入状态,不产生功耗。: N3 w/ }0 f* c. e% S3 R' L; q 数据手册中提供了两种测试参数,即使用16MHz的内部时钟源,分别是系统时钟为16MHz和64MHz的状态,因此本次实验也对这两种状态分别测试。(贴末附有测试工程压缩包。); o$ e3 Q' t8 _/ I9 l# B 16MHz系统时钟工程设置:% X& k5 ]" J& ~5 e0 V" u3 O 64MHz系统时钟工程设置:9 O" h; ], C2 E+ c% g( N3 W 1 m( v3 M) k) B7 K 先使用STM32CubeMX的Tools工具对功耗进行估算,两种系统时钟下分别为1.54mA、6.62mA。 设置方法,点“Step”的“加号”添加方案,弹出设置选项。7 f9 a. o# C( v/ Z% m+ C% H, ~% m 如下图进行设置。由于要点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脚宏定义。. H0 |3 g% i2 F# V 1 ^0 |* h. ?! r: h- A& S) t 经测试得出结果:' W( h# _0 P' d, `. y, X, \: O 使用内部时钟源HSI16,系统时钟为16MHz时的电流为 1.427 mA,相当于1.427/16=89.2uA/MHz; 使用内部时钟源HSI16,系统时钟为64MHz时的电流为 5.675 mA,相当于5.675/64=88.7uA/MHz。 (测试图片没得拍,两只手拿着万用表表笔,串联到JP3两端给供得电。) & U. [ E6 {: A 至此实验结束,实验结果与预期一致。0 T: s2 t1 s% V r 附上实验相关文件及测试工程: |
多谢图图捧场支持 !
七哥的帖子一定要好好捧场
原来现任每天发签到帖的管管叫图图
要加现任图图的QQ吗:694319435 嘻嘻
管管就是贵人多忘事,我们已是QQ好友了,之前只是没对应上
1551 好尴尬啊!对不起 我不是故意的 我们太久没聊天惹!
看你们聊得这么欢,我觉得有必要刷一波存在感了~
头像什么时候换成这只猫了!
趁你不注意的时候,哈哈~~