AnsweredAssumed Answered

STM32L151 standby Power Consumption

Question asked by vdv.eva on Mar 4, 2013
Latest reply on Mar 4, 2013 by Clive One
Hi,
I migrated from an STM32F103 to a STM32L151 Low power MCU.
Adapted the code according to the Migration PDF file, AF functions, SPI Init, ADC Init, ..
Everything works again now but I can't get the power down in Standby Mode.
On the F103 I could get the current down to 0.08 mA in Standby Mode, on the L151 it doesn't seem to go below 2.5 mA. Here is my function to go in Standby (same as I used with the F103)

void DeepSleep(void)
{
  // Keep debugger connection during SLEEP (debugging)
   DBGMCU_Config(DBGMCU_SLEEP, ENABLE);
   DBGMCU_Config(DBGMCU_STANDBY, ENABLE);
   DBGMCU_Config(DBGMCU_STOP, ENABLE);
    // IWDG stopped when core is halted (debugging)
   DBGMCU_Config(DBGMCU_IWDG_STOP, ENABLE);        

  TIM_Cmd(TIM2,DISABLE);                                                                                                                    // Disable Timer
 
  Eeprom_DeepSleep();                                                                                                                            // Eeprom Deepsleep

  GPIO_ResetBits(CS_EEPROM);                                                                     // Turn off Chip Select

  ADC_Cmd(ADC1, DISABLE);                                                                                                                    // Disable ADC
  USART_Cmd(USART1, DISABLE);                                                                                                            // Disable UART
  SPI_Cmd(SPI1, DISABLE);                                                                                                                    // Disable SPI
  SPI_Cmd(SPI2, DISABLE);                                                                                                                    // Disable SPI

  RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, DISABLE);                                                    // Disable Uart Clock
  RCC_APB1PeriphClockCmd(RCC_APB2Periph_SPI1, DISABLE);                           // SPI2 Periph clock disable
  RCC_APB1PeriphClockCmd(RCC_APB1Periph_SPI2, DISABLE);                           // SPI2 Periph clock disable
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, DISABLE);                                                    // Disable ADC Clock
  RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, DISABLE);                           // TIM2 clock Disable

  RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA,DISABLE);
  RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOB,DISABLE);
  RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOC,DISABLE);
  RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOD,DISABLE);

  RCC_PLLCmd(DISABLE);                                                                                                                        // Disable PLL
  RCC_HSEConfig(RCC_HSE_OFF);                                                                          // Disable HSE
  RCC_LSICmd(DISABLE);                                                                                                                        // LSI Off
  RCC_HSICmd(DISABLE);                                                                                                                        // HSI Off

  PWR_WakeUpPinCmd(PWR_WakeUpPin_1,ENABLE);                                                                        // Enable WKUP pin
  PWR_EnterSTANDBYMode();                                                                                                                    // Go to Standby
}

I don't really understand what is going on now?

Outcomes