본문 바로가기

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로 측정된다.

 

 

옵티마이즈 옵션을 설저하고 측정해 보면  8.4ns(4Mhz) 정도, 루프 수행시간 230ns 정도로 측정이 된다.

 

 

 

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

 


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

 

 

RP2040 250Mhz로 오버클럭 했을때 6.8ns 정도로 측정된다.

반응형