你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32U5低功耗测试

[复制链接]
小萝卜啦啦啦 发布时间:2023-2-3 11:16
  今天我们来测试一下STM32U5的低功耗特性) c9 J; M& z1 W( |$ B
( P. Y8 _* x" W# K; `( w

2 ?5 P4 W0 ?8 P; R; r  首先需要准备好一下软件及资源:STM32CubeMX、STM32CubeProgrammer、Keil、STM32CubeMX中U5的Packge、Keil中U5的Packge等。这里就不再赘述软件及packge的安装了+ c; b# u: l1 ?1 w* k
9 {+ e' k6 |, h* R4 f  L

, \$ i! \7 o6 N4 m$ s一.理论知识; X3 N' m8 N6 Y- t! V4 W
  在开始测试前,我们需要准备一些理论知识。; i9 U, p9 H3 e3 s6 e! [3 @* }3 @
  根据ST官方文档《DB4380》介绍,STM32U5这颗芯片共有8种运行模式,分别是Run、Sleep、Stop 0、Stop 1、Stop 2、Stop 3、Standby、Shutdown(可以在3.9 Power supply management章节中找到),在文档的最开始也列举了一些模式下的工作电流,如下图所示
* |, `5 v; \4 e9 p6 K 1.png
; V# T4 t+ n/ Y0 ^* a( D6 ^! `$ m  接下来需要看一下开发板的相关资料,了解一下各个跳帽和引脚,看一下我应该怎么样去测量电流。在文档《UM2861》中的5.2章节中有讲到“JP5”这个跳帽,他的名字叫“IDD measurement”,该跳帽默认状态下是连接的,使得MCU可以从板卡上取电。也可以去掉跳帽,使用外部的电源(3.3V或1.8V)对MCU供电,也可以串联一个电流表,这样就可以测量MCU消耗的电流了。3 o! m- N" {) }  m4 }9 J* U9 l
2.png
) P- J$ X+ ^# i; m0 T" p4 {7 R4 G" O  这样目标就明确了,编写一个让MCU进入各个工作模式的代码,然后在JP5上串联一个电流表,测试工作电流是否和文档中描述的一致
' p" `8 @+ _, j- G$ f0 f二.实战
% T6 ~4 P8 ]0 ~( `- p# r# P  打开CUBEMX,点击“ACCESS TO MCU SELECTOR”我们从芯片开始。因为从开发板开始会预先配置好开发板上的LED、晶振、按键等外设,但是这些外设在今天的测试中不会用到。
7 w) V! S  [! f* v% ?9 `5 @
8 P7 P) o9 q4 s$ m( }5 `7 b* h+ V 3.png
0 s4 s' r# W" _( O  然后通过添加筛选条件,找到我们开发板使用的芯片型号:STM32U575ZIT6Q,开始工程. ~7 E% x' s! Q$ U' M( X
4.png
# }* l* x" b8 n7 k0 Q8 u  选择不使用TrustZone
3 h8 ]9 B& n  [! R+ E- R7 ]) w 5.png 4 c4 M7 f8 s* A( F6 [% u' f0 K/ }
  打开工程后我们不配置任何东西,仅仅修改PWR中的该参数从LDO改成SMPS。STM32U5内部有2种电源可以配置,分别为LDO和SMPS。使用SMPS可以带来更低的功耗(但是貌似会带来一定的干扰,我记得之前曾经在那边看到过,但是记不得是哪本手册了)
1 c; u  X$ q; L2 y1 {. l! N 6.png
: w  k* k; N9 R+ h2 T" _
  然后生成KEIL工程
7.png
  进入keil工程后,在main函数中增加2句话。让MCU上电完成初始化后,等待5S,然后进入standby模式。
8.png

2 i$ y1 M% s- x8 k
  编译烧录,串联好电流表,测量电流。
9.png
  我测量到的数据是0.6uA,与手册上描述的三四百nA还有点差距。但是这个功耗结果还是非常不错的,作为一颗可以运行带160Mhz的MUC,这样的standby功耗我觉得还挺好的。
  至于测量结果便大,我分析有4个可能性。
①测量设备硬件原因。电流表精度不足,我这万用表最小精度为0.1uA,不是nA级的,很有可能产生一些误差。并且连接的线材是自制的,可能线材不达标。
②外部环境,手册中的测量结果是在规定环境中测量得到的,现在冬天温度比较低,可能造成了影响。
③程序问题。在进入低功耗之前是不是漏了手动关闭某些东西的操作,或者cubemx中配置有问题,导致多耗能源。
④开发板硬件问题。开发板上有LED、按键、晶振等外设,配置电阻默认都是连接MCU的,会不会是这些器件导致的耗电。

* f/ X& h" V2 v# {, A
如果有懂行的大佬,欢迎在帖子下方留言交流。
; [  \* ^1 q* [: P0 W9 j  U" H" x  n

' ]# n- z8 b! z
6 u6 [5 U, x6 O4 g, o8 @
收藏 评论3 发布时间:2023-2-3 11:16

举报

3个回答
shenxiaolin_mai 回答时间:2023-2-5 22:07:05

不错不错,非常不错的测试

zyqss 回答时间:2025-5-15 11:44:37

请问你的电源是多少,频率是多少呢? 是160MHz嘛,我现在4MHz在进入standby都有0.8ma的电流,这是为什么都不在一个数量级了

小萝卜啦啦啦 回答时间:2025-5-20 15:21:17

zyqss 发表于 2025-5-15 11:44
请问你的电源是多少,频率是多少呢? 是160MHz嘛,我现在4MHz在进入standby都有0.8ma的电流,这是为什 ...

[md]电源就是5V USB数据线给整个板子供电,板子上我记得应该是一个LDO,5V转3.3V给MCU供电。这边测量的电流是MCU最小系统的电流,所有外设都是不通过这里的。频率的话我不记得了,但是这个休眠电流和频率好像没什么影响吧,他睡觉时CPU都停掉了,频率只会影响芯片醒着的时候的电流

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版