cancel
Showing results for 
Search instead for 
Did you mean: 

Placing STM32L433 into standby

SSmit.13
Senior

Hi

  I am using the STM32L433 in a battery product and need long battery life. I am using standby mode as I need to preserve RAM and the RTC during standby. We are testing a new blank board and adding components one at a time and measuring the current using the LPM01A board. Before adding the processor the board was drawing an average 53uA, and after adding only the processor and placing it in standby mode, it was drawing 146uA. The processor is powered at 3.3v and chip freq 16MHz, and dont have anything connected to it for this test. To place into low power mode I done the below:

Powered the board for 3 seconds, then went into standby mode. I done this so I can see the step in the current drawn when dropping into standby mode.

During the 3 seconds of normal operation, the the average current was 2.531ma . There was no A/D enabled .

When it went into standby mode , the whole board was consuming 146uA. So the processor was consuming 146 -53uA (before the processor was added), a 96uA. Looking at the below table (I am using LSE and have a 32768KHz crystal attached) The power is close to 600nA ,

SSmit13_0-1710862081773.png

SSmit13_1-1710862257124.png

And with the above bottom table I have to add approx 180na for the ram. So in total the power should approx be 780na . Which is nothing like the 96ua which its drawing. To place into standby mode I am doing the following:

 

 

Switching off USB (not sure if needed)

RCC->APB1RSTR1 |= RCC_APB1RSTR1_USBFSRST;

RCC->APB1RSTR1 &= ~RCC_APB1RSTR1_USBFSRST;

RCC->APB1ENR1 &= ~RCC_APB1ENR1_USBFSEN;


Disable clocks

__HAL_RCC_GPIOA_CLK_DISABLE();

__HAL_RCC_GPIOB_CLK_DISABLE();

__HAL_RCC_GPIOC_CLK_DISABLE();

__HAL_RCC_GPIOD_CLK_DISABLE();


HAL_PWREx_EnableSRAM2ContentRetention();

HAL_PWR_EnterSTANDBYMode();

 

 

I dont know if I am missing anything else to get this near to the 780na I think I should get.

 

Many thanks in advance

Scott

4 REPLIES 4
STOne-32
ST Employee

Dear @SSmit.13 ,

One hypothesis to this extra consumption would be the I/O states at board level before and during standby mode . can You please check and let us know if the observed behavior is fixed ?

IMG_7200.jpeg

 Hope it helps.

STOne-32

Other potential source of "extraneous" consumption is the debugger keeping the processor running through the DBGMCU bits.

JW

Hi

  Many thanks, I have the debugger off, and have the processor restartimg periodically, so I can check the power. I will check STOne-32 reply on my io's

 

Cheers

Scott

Hi

  Thanks for the reply. I will check this when I am back in the office, but its something I never thought of. I thought when going into standby mode, all I/Os go into shutdown.

 

Best Regards

Scott