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

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

}

实际效果:。
---------------------
作者:meiyaolei
链接:https://bbs.21ic.com/icview-3395548-1-1.html
来源:21ic.com
此文章已获得原创/原创奖标签,著作权归21ic所有,任何人未经允许禁止转载。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值