본문 바로가기

RaspberryPi/RP2040

RP2040 SSM EVM - Arduino 성능 테스트

기본 동작은 확인 되었으니 Arduin IDE 개발 환경에서 STM32F4의 성능 테스트를 진행 해 보자.
 
Arduino에서 제공한 GPIO 함수를 이용하여 토글해 보면 700ns 정도 측정된다.  루프 수행 속도는 560ns 정도 된다.
역시 느리다.

 

void setup() {
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
  digitalWrite(LED_BUILTIN, HIGH); 
  digitalWrite(LED_BUILTIN, LOW); 
}

 

 

 

Raspberry Pi Pico SDK 에서 제공하는 gpio_put() 함수를 사용해 보자
https://raspberrypi.github.io/pico-sdk-doxygen/group__hardware__gpio.html
 

Raspberry Pi Pico SDK: hardware_gpio

General Purpose Input/Output (GPIO) API. More... enum  gpio_function {   GPIO_FUNC_XIP = 0, GPIO_FUNC_SPI = 1, GPIO_FUNC_UART = 2, GPIO_FUNC_I2C = 3,   GPIO_FUNC_PWM = 4, GPIO_FUNC_SIO = 5, GPIO_FUNC_PIO0 = 6, GPIO_FUNC_PIO1 = 7,   GPIO_FUNC_GPCK =

raspberrypi.github.io

 

void setup() 
{
     pinMode(LED_BUILTIN, OUTPUT);
     digitalWrite(LED_BUILTIN, HIGH);
    
     gpio_set_slew_rate(LED_BUILTIN, GPIO_SLEW_RATE_FAST);
}

void loop() 
{
  //digitalWrite(LED_BUILTIN, HIGH);
  //digitalWrite(LED_BUILTIN, LOW);

  gpio_put(LED_BUILTIN, 1);
  gpio_put(LED_BUILTIN, 0);
}

 

레지스터 직접 제어로테스트 해도 동일한 결과가 나온다.

sio_hw->gpio_set = 0x01;

sio_hw->gpio_clr = 0x01;

 

Aruino IDE에서 RP2040 GPIO 토글 속도 측정 결과 펄스 폭 15ns(4Mhz) 정도, 루프 수행시간 230ns 정도로 측정이 된다.

 

 

 

 

시리얼 포트를 활성화 시키면 24ns로 느려진다.

 


오버클럭을 사용해 볼까?
300Mhz 까지 가능한 것 같은데... 실제로 테스트 해 보면 250Mhz 까지 가능하다.
 

 

 

반응형