打印
[STM32H5]

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

[复制链接]
599|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主

本次测试的主要硬件为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。





使用CUBE MX配置:




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

  /* USER CODE BEGIN Init */
  HAL_PWR_EnableBkUpAccess();

  /* USER CODE END Init */

  /* Configure the system clock */
  SystemClock_Config();

  /* USER CODE BEGIN SysInit */
  /* Initialize LED2 and LED2 */
  BSP_LED_Init(LED2);
  BSP_LED_Init(LED2);

  /* Turn LED2 on */
  BSP_LED_On(LED2);

  /* Delay 5 seconds */
  HAL_Delay(5000);

  /* USER CODE END SysInit */

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_ICACHE_Init();
  MX_RTC_Init();
  /* USER CODE BEGIN 2 */
  /* Turn LED2 on */
  BSP_LED_Off(LED2);

#if defined (CPU_SLEEP_MODE)
  /* Suspend Tick increment */
  HAL_SuspendTick();

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

  /* Resume Tick increment */
  HAL_ResumeTick();
#elif defined (SYSTEM_STOP_MODE)
  /* Enter the SYSTEM to STOP mode */
  HAL_PWR_EnterSTOPMode(PWR_MAINREGULATOR_ON, PWR_STOPENTRY_WFI);
#elif defined (SYSTEM_STANDBY_MODE)
  /* Enter the SYSTEM to STANDBY mode */
  HAL_PWR_EnterSTANDBYMode();
#endif /* Power mode */

#if (!defined (SYSTEM_STANDBY_MODE))
  /* Reset the system after wake up */
  HAL_NVIC_SystemReset();
#endif

  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
  }
  /* USER CODE END 3 */
}
实际效果:






使用特权

评论回复
沙发
可怜的小弗朗士| | 2024-8-12 14:00 | 只看该作者
0.3ma,是不是哪里有问题,功耗太高了

使用特权

评论回复
板凳
emma2012| | 2024-8-16 09:38 | 只看该作者
感谢楼主的分享STM32H533支持多种低功耗工作模式,包括CPU睡眠模式、系统待机模式和系统停止模式,这些模式均可通过RTC(实时时钟)唤醒。

使用特权

评论回复
地板
狄克爱老虎油| | 2024-8-17 23:09 | 只看该作者
灯占的功耗比较大吧

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

139

主题

588

帖子

3

粉丝