cancel
Showing results for 
Search instead for 
Did you mean: 

Fake STOP2 values Advertisement using L452

MikeLorden
Associate II

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?

1 ACCEPTED SOLUTION

Accepted Solutions

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.

View solution in original post

5 REPLIES 5
Sarra.S
ST Employee

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 …) 

SarraS_0-1707236544942.png

 

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.

MikeLorden
Associate II

Hi
Peripherals used are: USART1, USART2, USART3, I2C3, QUADSPI

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.

MikeLorden
Associate II

I tried as you suggested and as expected it does bring the current down to 2.6uA. Thank you for your support.

MikeLorden
Associate II

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.