본문 바로가기

[Microchip]/PIC24F

[PIC24F16KA EVM] 클럭설정(OSC) 및 MCU속도 측정

[PIC24F16KA EVM] 클럭설정(OSC) 및 MCU속도 측정

 

 

PIC24F16KA, PIC24F08KA는 내부 8Mhz RC Oscillator가 있고 4채배 PLL이 있어 32Mhz로 구동할 수 있다.
하나의 명령어 수행하는데 2싸이클이 필요하므로 32Mhz에서 16MIPS로 동작한다.

 

CPU의 동작클럭은 CLKO (OSCO/CLKO/AN5/C1INA/C2INC/CN29/RA3) 핀에서 확인 가능하다.

디폴트 구동시 CPUCLK가 8Mhz이므로 CLKO는 4Mhz가 출력된다.

 

 

 

 

32Mhz로 구동하기 위해 FNOSC_FRCPLL으로 설정한다.

 

    _FOSCSEL(FNOSC_FRCPLL & IESO_OFF)
    _FOSC(FCKSM_CSDCMD & POSCFREQ_HS & OSCIOFNC_OFF & POSCMOD_NONE)

 

 

void SystemInit(void)
{
    CLKDIVbits.RCDIV = 0;                   //Set FRCDIV to 8 MHz operation

 

 _COSC0 = 1;
 _COSC1 = 0;
 _COSC2 = 0;

 

 _NOSC0 = 1;
 _NOSC1 = 0;
 _NOSC2 = 0;

 

CLKDIV = 0x0000;
}

 

 

32Mhz로 설정시 CLKO 를 확인해 보면 16Mhz가 출력되는것을 확인할 수 있다.

2 OSC클럭에 하나의 명령이 수행된다. 

(처음에 16Mhz가 정상적으로 출력되지 않고 출력되다 리셋 걸리는 현상이 있었다.

 레지스터 설정이 잘못 되었는나 싶어 그쪽만 확인 했는데, 문제는 PICKIT3에서 전원을 공급해 주어서 그런 현상이 발생 했다. 외부 전원 인가시 잘 동작 하는것을 확인했다.)

 

 

 


 

PIC24F16KA 성능 측정

32Mhz 구동하고 GPIO 토글 시 2.6Mhz가 출력된다.

LATA ^= BIT4

 

다른 16MIPS MCU와 비교해 보면 좀더 빠른 느낌은 있다. 다만 토글 레지스터가 없어 단순 GPIO토글의 성능은 좀 떨어진다.

8bit AVR Xmega 와 속도를 비교해 보면 좋을것 같다.

 

 

 

단순히 GPIO On/Off구동만 했을때 4Mhz 가 출력되고 57ns정도 걸린다.

LATA = BIT4;

LATA = 0;

 

 

반응형