2024-02-06 08:18 AM
I don't care if this post breaks some sort of forum usage rule, I am really sick and tired of trying to get the same STOP2 values advertised in the STM32L4 datasheet. I’m starting to believe that these values are just ******* to attract customers, they have nothing to do with reality. I am expecting a range of 2uA, but my current is between 700 and 1000uA.
Also, would you consider explaining how to reach minimal current consumption in a dedicated document?
Solved! Go to Solution.
2024-02-06 08:28 AM
Hello again @MikeLorden
I2C3 is adding to the consumption, if not necessary, you may need to disable it. Regarding other peripherals, you can still enable them and set all their GPIO as analog, and the current should be as expected. To do so, add this code, between /* USER CODE BEGIN 2 */ and /* USER CODE END 2
__HAL_RCC_GPIOA_CLK_ENABLE();
__HAL_RCC_GPIOB_CLK_ENABLE();
__HAL_RCC_GPIOC_CLK_ENABLE();
__HAL_RCC_GPIOD_CLK_ENABLE();
GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Pin = GPIO_PIN_ALL; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); HAL_GPIO_Init(GPIOD, &GPIO_InitStruct); __HAL_RCC_GPIOA_CLK_DISABLE();
__HAL_RCC_GPIOB_CLK_DISABLE();
__HAL_RCC_GPIOC_CLK_DISABLE();
__HAL_RCC_GPIOD_CLK_DISABLE(); MX_GPIO_Init();
/* USER CODE END 2 */
Thank you!
To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.
2024-02-06 08:23 AM
Hello @MikeLorden
Could you please provide more details regarding the peripherals used in STOP2? As you may know, some peripherals remain functional and can add to current consumption as shown in the image below (I2C3, LPUART1, LSE, or LSI …)
To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.
2024-02-06 08:23 AM
Hi
Peripherals used are: USART1, USART2, USART3, I2C3, QUADSPI
2024-02-06 08:28 AM
Hello again @MikeLorden
I2C3 is adding to the consumption, if not necessary, you may need to disable it. Regarding other peripherals, you can still enable them and set all their GPIO as analog, and the current should be as expected. To do so, add this code, between /* USER CODE BEGIN 2 */ and /* USER CODE END 2
__HAL_RCC_GPIOA_CLK_ENABLE();
__HAL_RCC_GPIOB_CLK_ENABLE();
__HAL_RCC_GPIOC_CLK_ENABLE();
__HAL_RCC_GPIOD_CLK_ENABLE();
GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Pin = GPIO_PIN_ALL; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); HAL_GPIO_Init(GPIOD, &GPIO_InitStruct); __HAL_RCC_GPIOA_CLK_DISABLE();
__HAL_RCC_GPIOB_CLK_DISABLE();
__HAL_RCC_GPIOC_CLK_DISABLE();
__HAL_RCC_GPIOD_CLK_DISABLE(); MX_GPIO_Init();
/* USER CODE END 2 */
Thank you!
To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.
2024-02-06 08:28 AM
I tried as you suggested and as expected it does bring the current down to 2.6uA. Thank you for your support.
2024-02-06 08:29 AM
BTW, I’m using RTC alarm to wake up from STOP2, but I would need to change the interval to 30s while the program is running. The problem is that the change will not be overwritten.