본문 바로가기

MCU속도측정

(42)
[LPC1756 EVM] Cortex-M3 LPC1700 GPIO 속도 테스트 실험 [LPC1756 EVM] Cortex-M3 LPC1700 GPIO 속도 테스트 실험 NXP사의 100Mhz Corte-M3 LPC1756 의 GPIO토글링 속도 테스트를 실험해 보았다. [다른 MCU속도 측정 결과]와 비교 하면 PIC32정도와 비교할 만하다. 비트 토글시 4.5Mhz정도 출력된다. PLL세팅 하여 100Mhz로 구동하니 8Mhz 정도 나온다. 14 while(1) 15 { 16 Led1Toggle(); /FIO1PIN ^= BIT9 \ ??main_1: \ 00000034 2068 LDR R0,[R4, #+0] \ 00000036 4840 EORS R0,R1,R0 \ 00000038 2060 STR R0,[R4, #+0] \ 0000003A FBE7 B.N ??main_1 \ ??mai..
[FX2 EVM] GPIO 속도 측정 [FX2 EVM] GPIO 속도 측정 24Mhz로 구동시 650ns 750kHZ가 출력된다. 상당히 느리군.. void main(void) { Led1Init(); Led1On(); while(1) { //Led1Toggle(); PC7 ^= 1; } } 000C ?C0001: ; SOURCE LINE # 12 ; SOURCE LINE # 13 ; SOURCE LINE # 14 000C A2A7 MOV C,PC7 000E B3 CPL C 000F 92A7 MOV PC7,C ; SOURCE LINE # 15 0011 80F9 SJMP ?C0001 ; FUNCTION main (END) [참고] MCU속도 측정 결과
[TMS320F28069 EVM] GPIO토글 속토 측정 [TMS320F28069 EVM] GPIO토글 속토 측정 TMS320F28069 는 최대 클럭 80Mhz까지 가능하다. GPIO Toggle 속도를 측정해 보았다. void main(void) { //DSP System Initialize SystemInit(); //LED Initialize Led1Init(); Led1On(); while(1) { GpioDataRegs.GPBTOGGLE.all = BIT34; } } 메모리로 제어하기 아래 코드와 같이 비트 단위로 쉽게 제어 하기 위해 메모리로 제어하면 5Mhz정도가 정도가 나온다. GpioDataRegs.GPBTOGGLE.bit.GPIO34 = 1; 레지스터로 제어하기 8Mhz정도가 나오는데... 메모리 제어 처럼 보이지만 결국 레지스터 주소를 사..
[S3C6410] GPIO 속도테스트 [S3C6410] GPIO 속도테스트 간단히 gpio.cpp 에서 제공되는 함수를 이용하여 PORTI를 토글시켜 보았다. 토글 속도가 220ns - 2.2Mhz가 나온다. 느린데.. #define Led1Toggle() GPIO_SetDataAll(eGPIO_I, GPIO_GetDataAll(eGPIO_I) ^ BIT0) 포트를 S3C6410 GPIO 레지스터로 집접 제어하도록 수정해 보았다. 198ns 2.5Mhz로 조금 더 빨라 졌지만 여전히 느리다. #define Led1Toggle() PORTI ^= BIT0 GPIDAT레지스터는 0x7F008104에 할당되어 있다. #define PORTI (*(volatile unsigned*)0x7F008104) while(1) { Led1Toggle(); ..
[LPC1K-SM EVM] LPC1113 실행속도 측정 테스트 [LPC1K-SM EVM] LPC1113 실행속도 측정 테스트 LPC1113은 저렴한 가격에 50Mhz로 동작가능 하다. 12Mhz 클럭을 PLL을 이용해 48Mhz로 설정하고 속도 측정을 해 보았다. LPC1111/12/13/14의 GPIO특징으로 AHB클럭을 페리 클럭으로 사용하기 때문에 GPIO속도가 빠르다고 한다. 간단히 GPIO 토글을 했을때 3Mhz가 출력되는것을 확인할 수 있다. #define Led1Toggle() (LED1_PORT ^= LED1_BIT) 15 while(1) 16 { 17 Led1Toggle(); \ ??main_1: \ 00000030 2168 LDR R1,[R4, #+0] \ 00000032 4140 EORS R1,R1,R0 \ 00000034 2160 STR R1,..
PIC32 속도 측정 PIC32 속도 측정 최대 PIC32는 80Mhz에 0 Waite Flash이다. 물론 코어 속어클럭과 페리 클럭은 분리되어 있고 페리 클럭은 훨신더 느리지만 다른 MCU에 비하면 상당히 빠른 결과가 나왔다. 다른 MCU속도 측정 결과 참고. 우선 기본적인 IO속도 측정을위해 IO토글하는 코드로 테스트 해보자. 8Mhz 클럭을 PLL로 80Mhz로 설정하고 테스트 하였다. #pragma config FNOSC = PRIPLL // Oscillator Selection #pragma config FPLLIDIV = DIV_2 // PLL Input Divider (PIC32 Starter Kit: use divide by 2 only) #pragma config FPLLMUL = MUL_20 // PLL ..
[CANTUS EVM] GPIO속도 측정 테스트 [CANTUS EVM] GPIO속도 측정 테스트 CANTUS는 96MIPS의 5단 파이프라인으로 고속이라고 한다. GPIO토글속도 테스트로 성능측정을 해 보았다. CANTUS의 GPIO는 GPIO Ser/Reset레지스터가 따로 존재 하므로 우선 비트 On/Off로 테스트 해본다. 150ns - 3.2Mhz가 출력된다. 96MIPS 속도라고 하기에는 페리가 너무 느리다. int main() { SystemInit(); Led1Init(); while(1) { *R_P5oHIGH |= BIT4; *R_P5oLOW |= BIT4; } } 옵티마이즈 옵션을 주어 컴파일을 다시 해 보니 133ns - 3.5M 까지 나온다. 하지만 그렇게 빠르지는 않은것 같다. 단순 ON/OFF만 했을때는 39ns - 12.5M..
ATMega168 을 이용한 오버클럭 속도 측정 ATMega168 을 이용한 오버클럭 속도 측정 ATMega168 을 이용해서 GPIO 토글속도를 측정 했다. Mega168는 20Mhz까지 구동 가능하므로 24Mhz에서 측정해 보았다. 24Mhz -> 209ns/2.4Mhz [다른 MCU속도 측정 결과]와 비교 하면 저렴한 Mega168에서 상당히 빠른것 같다. ATMega168 GPIO속도 측정 소스코드 #define Led1Toggle() Tbi(LED1_PORT, LED1_BIT) //PORTB ^= BIT1 int main(void) { SystemInit(); Led1Init(); Led1On(); while (1) { Led1Toggle(); //Delay(100); } } WinAVR(AVR Gcc) 옵티마이즈 옵션 컴파일러의 어샘블 결과..