[信息] STM32N6功耗测量方法介绍

[复制链接]
150|1
STM新闻官 发表于 2025-11-2 08:36 | 显示全部楼层 |阅读模式
本帖最后由 STM新闻官 于 2025-11-2 08:45 编辑

1. 简介
STM32N6 是ST推出的旗舰级 AI 原生 MCU,定位为边缘智能全能控制器。其集成自研 Neural-ART NPU,提供 600GOPS 算力(能效比 3TOPS/W),搭载 800MHz Cortex-M55 内核及 4.2MB 连续 RAM,支持 MIPI CSI-2、H.264 编码器等多媒体接口,可处理 500 万像素摄像头输入并输出 1080P 视频流。凭借双引擎架构(MCU+NPU 协同),它以 MCU 的成本和体积实现 MPU 级 AI 性能,同时保留 STM32 生态的易用性。 STM32N6 是首款真正意义上的 AI 原生 MCU,其定位可概括为:面向边缘智能的全能型控制器—— 以 MCU 的成本和功耗,提供 MPU 级 AI 性能。 ST官方发布了STM32N6的测量方法,本文依据此开发包,对STM32N6的功耗测量方法进行介绍。本文所有代码和示例均可在https://www.st.com/en/developmenttools/stm32n6-ai.html页面进行下载。

471506906a85d60dd6.png
2. 硬件平台
989796906a875e16f1.png
本文使用的被测硬件为STM32N6570-DK开发板,在进行本文的实验之前,要求了解开发板的基本使用,包括开发模式,Flash启动模式,下载调试方法等。如果不了解,建议先参考LAT1491 STM32N6 的FSBL基本流程介绍。
284816906a887a143c.png
上图为STLINK-V3PWR硬件,可以通过上位机对其电压范围进行编程,范围为1.6 V~3.6 V。最大输出电流为500mA,其动态测量范围:几nA~500mA,最高到1.65W的功耗测量。50kHz 带宽,1.6MHz采样,+-0.5%的精度,已经可以满足绝大部分嵌入式功耗应用的动态测量。本文将使用该硬件对STM32N6开发板进行测量。
关于更多STLINK-V3PWR具体的内容和详细信息,请参考ST官网STLINK-V3紧凑型在线调试和编程器部分。
582766906a8a32dcd6.png
如图4所示, STM32N6主要功耗消耗的部分在VDDCore。VDDCore给内部CPU,NPU以及各种外设,RAM和CSI进行供电。 将STLINK-PWR连接外部SMPS的VIN,通过控制STLINK-PWR的供电,就可以测量VDDCore的功耗水平。由于通过STLINK-PWR给SMPS进行供电,所以SMPS的效率也要考虑进来,DK板使用的TPS62088的效率约为0.85。
876526906a8bfc81b2.png
STM32N6570-DK硬件修改如图5所示。由于其默认使用5 V供电,所以需要移除掉R23,R24,C27,断开5 V与外部SMPS的连接。然后用STLINK-PWR  OUT引脚连接在I_SENS_EXT_N 对外部SMPS进行供电。
862156906a8d70b25d.png
最终测试环境如图6所示,通过STLINK-PWR给VDDCore供电,使用USB连接DK板对其余部分进行供电。
688786906a8ebe0883.png
STLINK-V3PWR与STM32N6570-DK引脚连接如图7所示。至此,功耗测量的硬件部分配置就完成了。

3. 软件部分
3.1. 固件代码 Main.c 中主循环代码如图8所示。
143146906a912edbc9.png
进入 While (1) 主循环后,系统首先等待用户按下按钮以触发测试执行;在等待用户操作的期间,MCU 始终保持低功耗状态。 测试触发后,startStlinkPwr () 函数会通过拉高 TGI 引脚启动 STLINK-V3PWR,同时启动定时器(timer)开始计时。随后摄像头启动初始化,初始化完成后捕获一张图片;图片捕获结束后,系统立即释放摄像头资源。接着对捕获到的图片执行神经网络推理及后处理操作,再通过串口将时间戳发送至 PC 端。 最终,系统拉低 TGI 引脚以停止 STLINK-V3PWR,至此完成单次测试流程,后续等待下一次用户按键触发测试。 在每个需要记录时间的函数中,都会对时间戳进行记录,以cameraCapture函数为例:
126386906a92a33ce1.png
如图9,pwr_timestamp_log 函数会将log信息和RCC中的值记录入logBuffer全局变量中,最后在主循环中一次性调用sendTimestamp通过串口发送给上位机,上位机收到log信息后会进行解析。 3.2. Python 脚本 3.2.1. 环境安装 在运行本次功耗测试相关的 Python 脚本前,需先完成 Python 环境的安装与配置,确保脚本能正常解析和执行。 在 Utilities/pwr_scripts 目录下,存放有 requirements.txt 文件,该文件明确列出了本次功耗测试实验所需的全部第三方库及其版本信息,可直接用于搭建一致的实验运行环境。 安装好python后,需要在终端下进入Utilities/pwr_scripts目录后运行以下命令来安装第三方库。命令如下所示。
pip install -r requirements.txt
3.2.2. 配置文件 默认的配置文件Utilities\pwr_scripts\example_configuration.yml:
580126906a94e08615.png
其中包含STLINK-V3PWR的配置和STM32N6570-DK板载ST LINK的配置,serial代表设备序列号,efficiency代表使用的SMPS的效率,根据具体使用的SMPS芯片手册上可以查找到,官方DK板上的效率是0.87,供参考。 3.2.3. STLINK-V3PWR上电 通过以下指令给STLINK-V3PWR上电: python ./capture.py power -c my_configuration.yml on
466576906a96497ca5.png
3.2.4. 捕获 通过以下指令,开始给STM32N6570-DK板供电,供电后,需要用户手动按STM32N6570-DK板上的用户button触发固件3.1节提到的while循环中的流程,并通过板载ST LINK 串口获取固件发送的时间戳相关的信息,然后将结果分析并保存到capture_full.csv文件中。 3.2.5. python ./capture.py capture -c my_configuration.yml  -w capture_full.csv 生成报告 通过以下指令,生成报告。 python ./full_sequence_power.py capture_full.csv
799306906a97951b0a.png
正式生成的报告如上图所示,包含每个阶段的log和功耗信息,用户可以自己根据自己的应用场景修改固件,测量各种不同情况下的功耗。 3.2.6. 图形化显示 通过以下指令,生成图表。 python ./capture.py display -r capture_full.csv
13356906a991ba653.png
4. 总结 具体功耗测量步骤如下: 1. 使用STLINK-V3PWR和STM32N6570-DK板搭建硬件环境。 2. 烧录x-cube-n6-ai-power-measurement固件。 3. 运行3.2.3节中的上电脚本给STLINK-V3PWR上电。 4. 运行3.2.4节中的脚本给STM32N6570-DK板供电。 5. 按STM32N6570-DK板上的User button触发主循环。 6. 运行3.2.5和3.2.6生成报告文件和图表。 x-cube-n6-ai-power-measurement 软件包提供了一套完整的功耗测量解决方案。用户不仅可以在此基础上灵活定制专属测量方案,还能将 STM32N6570-DK 开发板替换为自有开发板;同时,该软件包的固件代码完全开源,便于用户参考相同思路拓展至任意功耗场景的测量。此外,配套的 Python 脚本也保持开源特性,支持用户自主定义测量结果的显示方式等个性化需求。
539976906a9ac0d8e1.png
文档中所用到的工具及版本 STLINKv3-PWR
EPTmachine 发表于 2025-11-2 10:02 来自手机 | 显示全部楼层
st pwr link有相关的API吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:意法半导体(中国)投资有限公司
简介:您的嵌入式应用将得益于意法半导体领先的产品架构、技术、多源产地和全方位支持。意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器。

1428

主题

1758

帖子

25

粉丝
快速回复 在线客服 返回列表 返回顶部