[STM32H5] STM32 Nucleo-64测评】+低功耗测试评测

[复制链接]
 楼主| meiyaolei 发表于 2024-8-11 23:36 | 显示全部楼层 |阅读模式
<

本次测试的主要硬件为STM32H533微控制器,结合使用了一个精度适中的万用表进行功耗测量。
STM32H533支持多种低功耗工作模式,包括CPU睡眠模式、系统待机模式和系统停止模式,这些模式均可通过RTC(实时时钟)唤醒。

低功耗模式介绍
CPU睡眠模式(CPU_SLEEP_MODE):
在此模式下,STM32H533的主CPU进入睡眠状态,但外设仍保持运行。
由于外设的持续工作,该模式对整体功耗的降低效果相对有限。
系统停止模式(SYSTEM_STOP_MODE):
系统进入停止模式后,主CPU和外设均停止工作,系统时钟也停止。
仅有内部稳压器保持供电,显著降低了功耗。
系统待机模式(SYSTEM_STANDBY_MODE):
这是功耗最低的模式,CPU、外设、系统时钟以及内部稳压器均被关闭。
仅保留备份寄存器和RTC供电,通过RTC中断可唤醒CPU。

硬件连接:
将万用表的电流测量端连接到JP2引脚CPU供电测试。万用表切换到电流MA档,注意万用表表笔需要跳一下。

通过编程(如使用STM32CubeIDE)设置STM32H533进入不同的低功耗模式。
在程序中设定自动进入低功耗模式的时间(10秒后)。

观察并记录万用表在不同模式下的电流读数,以评估功耗。
记录从正常工作模式转换到低功耗模式后,再由RTC唤醒的过程。

cpu的睡眠模式(CPU_SLEEP_MODE):在此工作模式下,STM32H533主芯片进入睡眠模式,但是外设仍然在保持工作。该模式下的功耗降低效果不是很明显,毕竟外设正在运行,不能很好的降低整体的功耗。
cpu停止模式(SYSTEM_STOP_MODE):在此工作模式下,STM32H533主芯片进入停止模式,在此模式下,所有的外设进入停止状态,系统时钟也停止工作,但是内部稳压器继续保持供电,这种模式下的功耗降低明显。
cpu待机模式(SYSTEM_STANDBY_MODE):在此工作模式下,STM32H533进入待机状态,功耗最低的模式,系统时钟,外设和内部稳压器都被关闭,仅仅保留备份寄存器和RTC供电,所以可以通过RTC再次唤醒CPU。


1735166b8d68debdeb.png


使用CUBE MX配置:
3754766b8d722f2678.png


8212566b8d76f37e1a.png
关键代码:
  1. /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  2.   HAL_Init();

  3.   /* USER CODE BEGIN Init */
  4.   HAL_PWR_EnableBkUpAccess();

  5.   /* USER CODE END Init */

  6.   /* Configure the system clock */
  7.   SystemClock_Config();

  8.   /* USER CODE BEGIN SysInit */
  9.   /* Initialize LED2 and LED2 */
  10.   BSP_LED_Init(LED2);
  11.   BSP_LED_Init(LED2);

  12.   /* Turn LED2 on */
  13.   BSP_LED_On(LED2);

  14.   /* Delay 5 seconds */
  15.   HAL_Delay(5000);

  16.   /* USER CODE END SysInit */

  17.   /* Initialize all configured peripherals */
  18.   MX_GPIO_Init();
  19.   MX_ICACHE_Init();
  20.   MX_RTC_Init();
  21.   /* USER CODE BEGIN 2 */
  22.   /* Turn LED2 on */
  23.   BSP_LED_Off(LED2);

  24. #if defined (CPU_SLEEP_MODE)
  25.   /* Suspend Tick increment */
  26.   HAL_SuspendTick();

  27.   /* Enter the CPU to SLEEP mode */
  28.   HAL_PWR_EnterSLEEPMode(PWR_MAINREGULATOR_ON, PWR_SLEEPENTRY_WFI) ;

  29.   /* Resume Tick increment */
  30.   HAL_ResumeTick();
  31. #elif defined (SYSTEM_STOP_MODE)
  32.   /* Enter the SYSTEM to STOP mode */
  33.   HAL_PWR_EnterSTOPMode(PWR_MAINREGULATOR_ON, PWR_STOPENTRY_WFI);
  34. #elif defined (SYSTEM_STANDBY_MODE)
  35.   /* Enter the SYSTEM to STANDBY mode */
  36.   HAL_PWR_EnterSTANDBYMode();
  37. #endif /* Power mode */

  38. #if (!defined (SYSTEM_STANDBY_MODE))
  39.   /* Reset the system after wake up */
  40.   HAL_NVIC_SystemReset();
  41. #endif

  42.   /* USER CODE END 2 */

  43.   /* Infinite loop */
  44.   /* USER CODE BEGIN WHILE */
  45.   while (1)
  46.   {
  47.     /* USER CODE END WHILE */

  48.     /* USER CODE BEGIN 3 */
  49.   }
  50.   /* USER CODE END 3 */
  51. }
实际效果:
202408112334 00_00_00-00_00_30.gif





可怜的小弗朗士 发表于 2024-8-12 14:00 | 显示全部楼层
0.3ma,是不是哪里有问题,功耗太高了
emma2012 发表于 2024-8-16 09:38 | 显示全部楼层
感谢楼主的分享STM32H533支持多种低功耗工作模式,包括CPU睡眠模式、系统待机模式和系统停止模式,这些模式均可通过RTC(实时时钟)唤醒。
狄克爱老虎油 发表于 2024-8-17 23:09 来自手机 | 显示全部楼层
灯占的功耗比较大吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:工程师
简介:超越自我,为设计激发灵感和想象。

258

主题

829

帖子

6

粉丝
快速回复 在线客服 返回列表 返回顶部
认证:工程师
简介:超越自我,为设计激发灵感和想象。

258

主题

829

帖子

6

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