본문 바로가기

[ST_MICRO]/STM8

STM8 EVM MCU성능테스트 - CLK 설정

STM8 EVM MCU성능테스트 - CLK 설정


STM8은 최대 24Mhz로 동작하는 8bit MCU이다. STM8SF의영우 16Mhz가 최대 동작 주파수 이다.

속도는 그리 빠르지 않아도 가격대비 성능이 우수한데 간단히 성능 테스트를 해 보았다.



STM8 클럭 블록도

우선 STM8의 클럭 시스템을 보면 외부 오실레이터나 크리스탈을 연결하거나 내부 16Mhz RC 오실레이터를 이용할 수 있다. 사이즈가 워낙 작아서 내부 클럭 사용을 많이 하게되므로 내부 클럭 기준으로 테스트 할 예정이다.


동작 클럭은 외부로 출력 할 수 있는데 PC4-CLK CCO핀으로 출력해서 확인 할 수 있다.


PC4(HS)/TIM1_CH4/CLK_CCO/AIN2/[TIM1_CH2N]





STM8 클럭 설정

void SystemInit(void)

{

    CLK_DeInit();

    CLK_SYSCLKConfig(CLK_PRESCALER_CPUDIV1);                // CPU Prescaler = 1.

    CLK_SYSCLKConfig(CLK_PRESCALER_HSIDIV1);                // Prescaler = 8, 16 MHz.

    //CLK_CCOConfig(CLK_OUTPUT_HSI);                          // Output clock on CCO pin.

    CLK_ClockSwitchConfig(CLK_SWITCHMODE_AUTO,              // Automatically switch

                          CLK_SOURCE_HSI,                   // Switch to internal timer.

                          DISABLE,                          // Disable the clock switch interrupt.

                          CLK_CURRENTCLOCKSTATE_DISABLE);   // Disable the previous clock.  

    

    CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1); /*16 MHz Setting*/    

}




16Mhz로 동시 GPIO토글 속도는 3.2Mhz 정도로 측정된다. 16Mhz대 다른 MCU의 성능과 비교해 보면 나쁘지 않은것 같다. 특히 가격적인 면을 고려 한다면 상당히 만족스럽다.

     32              while(1)

     33              {

     36                  PORTD = 0;

   \                     ??main_0:

   \   000019 35 00 500F   MOV       L:0x500f, #0x0

     37                  PORTD = BIT3;

   \   00001D 35 08 500F   MOV       L:0x500f, #0x8

   \   000021 20 F6        JRA       L:??main_0

     38              }


반응형