CPU/STM32F103

STOP MODE 설정방법

멋진 고파 2014. 4. 13. 01:57

이번에는 절전모드인 STOP MODE에 대해 구현해 보기로 한다.

아래 그림에 보듯이 절전을 위한 STOP모드는 3.3V 에서 24uA정도 소비한다.



결론적으로 STOP모드시 GPIO는 OUT 설정된 그대로 유지되지만, PWM은 출력되지 않는다.


STOP WAKEUP은 여러 경우가 있지만 EXTI를 통해서 WAKEUP를 하게 만들었다.

STOP복귀시는 RCC쪽 세팅을 다시 해주어야 하며, 이것만 해주면 모든 주변기기들이 동작한다.


STOP MODE 시작

/* Request to enter STOP mode with regulator in low power mode*/

    PWR_EnterSTOPMode(PWR_Regulator_LowPower, PWR_STOPEntry_WFI);


STOP WAKEUP 은 EXIT부분에 신호를 넣어서( 물론 외부 인터럽트 설정은 이전 글을 참조한다)

/* Configures system clock after wake-up from STOP: enable HSE, PLL and select 

       PLL as system clock source (HSE and PLL are disabled in STOP mode) */

    SYSCLKConfig_STOP_Run();


void SYSCLKConfig_STOP_Run(void)

{

  /* Enable HSE */

  RCC_HSEConfig(RCC_HSE_ON);


  /* Wait till HSE is ready */

  HSEStartUpStatus = RCC_WaitForHSEStartUp();


  if(HSEStartUpStatus == SUCCESS)

  {


    /* Enable PLL */ 

    RCC_PLLCmd(ENABLE);


    /* Wait till PLL is ready */

    while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)

    {

    }


    /* Select PLL as system clock source */

    RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);


    /* Wait till PLL is used as system clock source */

    while(RCC_GetSYSCLKSource() != 0x08)

    {

    }

  }

}



하지만 아래는 어떤 경우 사용되는지 알수 없지만 ST본 소스 초기화 에 설정된내용이나...없어도 동작함을 확인하였다.

//RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE); // power interface clock, backup interface clock


소비전류의 측정은 다음기회에.....