This evaluation mainly measures the power consumption of STM32H533 when it enters low power mode.
1. STM32H533RE power consumption mode
First, let's understand that STM32H533 has several power consumption modes.
Check the data sheet and reference manual, there are three low power modes: sleep, stop, standby mode
1. Sleep mode
Turn off the CPU clock, interrupt system and tick clock to run normally, and can be woken up by interrupts or events.
2. Stop mode
This mode can achieve the lowest power consumption, and the SRAM content and registers remain unchanged, all core areas are always stopped, only the LSI and LSE crystal oscillators are running, and the RTC can also be configured to run or shut down, and the others are shut down. And after exiting from stop mode, it can run on the 64M HSI crystal oscillator.
3. Standby mode
1) In standby mode, the internal voltage regulator is turned off, so the core area is powered off;
2) PLL, HSI RC, HSI48, CSI RC HSE are also turned off;
3) RTC can remain active;
4) The IO status remains the same as before entering standby mode;
5) When entering standby mode, the data in SRAM and registers are not retained, except for the backup registers.
6) Can be awakened by external reset pin, watchdog reset, wake-up pin event, RTC event.
For specific modes and wake-up, please see the table below
2. Power Management
The low power mode is also largely related to the internal voltage. Let's take a quick look at the internal power management of STM32H533.
There are 4 voltage ranges in the running mode and 3 in the stop mode.
Notice:
- After power-on reset, exiting from stop mode or standby mode, the core voltage is set to VOS3 (that is, the lowest voltage in the operating mode); the specific VOS bits of the PWR_VOSCR register can be adjusted according to performance requirements.
- When entering stop mode, the SVOS level in the PWR_PMCR register must be set first.
Okay, now that we have understood the basic information, let’s take a look at the power consumption in each mode.
3. Power consumption test
1. Write code
/* Private define ------------------------------------------------------------// USER CODE BEGIN PD /#define STOP_MODE 0#define SLEEP_MODE 0#define STANDY_MODE 1/ USER CODE END PD */
/* Private macro -------------------------------------------------------------// USER CODE BEGIN PM */
/* USER CODE END PM */
/* Private variables ---------------------------------------------------------*/
/* USER CODE BEGIN PV */
/* USER CODE END PV */
/* Private function prototypes -----------------------------------------------/void SystemClock_Config(void);/ USER CODE BEGIN PFP */
/* USER CODE END PFP */
/* Private user code ---------------------------------------------------------// USER CODE BEGIN 0 */
/* USER CODE END 0 */
/**
[url=home.php?mod=space&uid=159083]@brief[/url] The application entry point.
@retval int
/* USER CODE BEGIN 1 */
/* USER CODE END 1 */
/* MCU Configuration--------------------------------------------------------*/
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
/* USER CODE BEGIN Init // Delay 5 seconds /HAL_Delay(5000);/ USER CODE END Init */
/* Configure the system clock */
SystemClock_Config();
/* USER CODE BEGIN SysInit */
/* USER CODE END SysInit */
/* Initialize all configured peripherals /MX_GPIO_Init();MX_ICACHE_Init();/ USER CODE BEGIN 2 // Enter the CPU to SLEEP mode */
#if SLEEP_MODE
HAL_PWR_EnterSLEEPMode(PWR_MAINREGULATOR_ON, PWR_SLEEPENTRY_WFI) ; //PWR_MAINREGULATOR_ON这个参数是不可用于STM32H5的,主要是保持兼容其他产品
#elif STOP_MODE
/只调用这个,默认配置PMR_PMCR的SVOS为保留/
HAL_PWR_EnterSTOPMode(PWR_MAINREGULATOR_ON,PWR_STOPENTRY_WFI);//PWR_MAINREGULATOR_ON这个参数是不可用于STM32H5的,主要是保持兼容其他产品
#elif STANDY_MODE
HAL_PWR_EnterSTANDBYMode();
#endif
// HAL_PWR_EnterSLEEPMode(PWR_MAINREGULATOR_ON, PWR_SLEEPENTRY_WFI) ;
//HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON,PWR_STOPENTRY_WFI);
/* USER CODE END 2 */
/* Infinite loop // USER CODE BEGIN WHILE /while (1){/ USER CODE END WHILE */
/* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */
}
2. Testing
1) Sleep mode
1.3uA
2) Stop mode
The multimeter cannot measure it; less than 150nA
3) Standby mode
The multimeter cannot measure it; less than 150nA
In summary, I didn’t expect that the STM32H533’s low power consumption could be so low.
The project is as follows