
今天我们来测试一下STM32U5的低功耗特性2 V$ Q1 N! z4 y- g8 F/ ` 首先需要准备好一下软件及资源:STM32CubeMX、STM32CubeProgrammer、Keil、STM32CubeMX中U5的Packge、Keil中U5的Packge等。这里就不再赘述软件及packge的安装了 & Z( y& u i) o 一.理论知识 在开始测试前,我们需要准备一些理论知识。 M1 \8 U: ~5 F$ V* h6 U 根据ST官方文档《DB4380》介绍,STM32U5这颗芯片共有8种运行模式,分别是Run、Sleep、Stop 0、Stop 1、Stop 2、Stop 3、Standby、Shutdown(可以在3.9 Power supply management章节中找到),在文档的最开始也列举了一些模式下的工作电流,如下图所示 ![]() 接下来需要看一下开发板的相关资料,了解一下各个跳帽和引脚,看一下我应该怎么样去测量电流。在文档《UM2861》中的5.2章节中有讲到“JP5”这个跳帽,他的名字叫“IDD measurement”,该跳帽默认状态下是连接的,使得MCU可以从板卡上取电。也可以去掉跳帽,使用外部的电源(3.3V或1.8V)对MCU供电,也可以串联一个电流表,这样就可以测量MCU消耗的电流了。9 h9 f, D& X4 e' ]' ^; K ![]() 这样目标就明确了,编写一个让MCU进入各个工作模式的代码,然后在JP5上串联一个电流表,测试工作电流是否和文档中描述的一致 二.实战2 {' Q3 ~) Q2 G' o; F# J2 L! } 打开CUBEMX,点击“ACCESS TO MCU SELECTOR”我们从芯片开始。因为从开发板开始会预先配置好开发板上的LED、晶振、按键等外设,但是这些外设在今天的测试中不会用到。) _, c9 w. Q& z { u & V9 i( C7 [- i" m2 @ ![]() 然后通过添加筛选条件,找到我们开发板使用的芯片型号:STM32U575ZIT6Q,开始工程 ![]() 选择不使用TrustZone0 S+ r+ j, [2 J ![]() 打开工程后我们不配置任何东西,仅仅修改PWR中的该参数从LDO改成SMPS。STM32U5内部有2种电源可以配置,分别为LDO和SMPS。使用SMPS可以带来更低的功耗(但是貌似会带来一定的干扰,我记得之前曾经在那边看到过,但是记不得是哪本手册了) ![]() 然后生成KEIL工程 ![]() 进入keil工程后,在main函数中增加2句话。让MCU上电完成初始化后,等待5S,然后进入standby模式。 ![]() 编译烧录,串联好电流表,测量电流。 ![]() 我测量到的数据是0.6uA,与手册上描述的三四百nA还有点差距。但是这个功耗结果还是非常不错的,作为一颗可以运行带160Mhz的MUC,这样的standby功耗我觉得还挺好的。 至于测量结果便大,我分析有4个可能性。 ①测量设备硬件原因。电流表精度不足,我这万用表最小精度为0.1uA,不是nA级的,很有可能产生一些误差。并且连接的线材是自制的,可能线材不达标。 ②外部环境,手册中的测量结果是在规定环境中测量得到的,现在冬天温度比较低,可能造成了影响。 ③程序问题。在进入低功耗之前是不是漏了手动关闭某些东西的操作,或者cubemx中配置有问题,导致多耗能源。 ④开发板硬件问题。开发板上有LED、按键、晶振等外设,配置电阻默认都是连接MCU的,会不会是这些器件导致的耗电。 如果有懂行的大佬,欢迎在帖子下方留言交流。 " k; w7 u. ?# M9 |5 {' Z- X) @/ c. u3 ^# a0 o- ]5 v6 ~ |
STM32怎么选型
内存配置的艺术:STM32为嵌入式系统高端UI优化RAM和闪存的三大策略
STM32U5 系列使用 LPBAM 进行功耗优化
【STM32U545】实现CAN数据收发
【我的STM32U5 项目秀】+04-MPU6050在STM32U5上的移植
实战经验 | 基于 STM32U5 创建 USBx_CustomHID 通信
STM32U5 x E-BIKE,记录你的骑行多巴胺
基于STM32U5系列TIMER+DMA+DAC应用经验分享
实战经验 | 基于 STM32U5 片内温度传感器正确测算温度
【文末有礼】新款STM32U5:让便携产品拥有惊艳图效
不错不错,非常不错的测试