본문 바로가기

분류 전체보기

(1955)
[RP2040_W5500] RP2040 C++ SDK 환경에서 GPIO 성능 측정, Arduino 개발환경과 속도 비교 RP2040 Arduino 개발환경에서 GPIO 속도 측정 결과와 비교하기위해 기본 예제 코드에서 GPIO 제어 코드를 이용해서 테스트 해보자 #include #include "pico/stdlib.h" #define LED_PIN2 int main() { gpio_init(LED_PIN); gpio_set_dir(LED_PIN, GPIO_OUT); stdio_init_all(); printf("RP2040 GPIO Speed Test\n"); while (true) { gpio_put(LED_PIN, 1); gpio_put(LED_PIN, 0); } return 0; } GPIO토글 속도는 8.5ns(30Mhz)로 측정된다. Arduino에서처럼 루프 수행 지연없이 구동 되는것을 확인 할 수 있다. 레..
[RP2040_W5500 SSM] Raspberry Pi Pico(RP2040) C/C++ SDK 개발환경 설정(VS Code이용 가장 간단한 방법) Raspberry Pi Pico C/C++ SDK 개발 환경 설정을 위한 가장 간단한 방법으로 pico-setup-windows 패키지를 이용하는 방법 인것 같다. https://github.com/raspberrypi/pico-setup-windows 시행 파일을 다운받아 설치하면 한번에 셋업 완료 된다. 설치후 추가된 앱에서 Command창을 실행하면 기본 환경 설정이된 콘솔창이 실행 된다. SDK가 설치된 폴더에서 기본 예제를 빌드하면 컴파일이 완료 된다. C:\RP2040>cd pico-examples C:\RP2040\pico-examples>cd build C:\RP2040\pico-examples\build>cmake .. 콘솔창에서 Visual Studio Code를 실행해서 예제파일을 O..
[RP2040_W5500 SSM] Raspberry Pi Pico 보드 제작 때로는 작다는 이유만으로 프로젝트에 적용하기에 좋은 보드가 있다. 네트웍 솔류션이 필요한 어플리케이션에서 저렴하고 작은 보드가 필요해 소형의 네트웍 모듈을 제작해 보았다. RP2040과 W5500을 한보드에 넣어서 최대하 작고 저렴하면서 어느정도 성능이 필요한 어플리케이션에 적합함 보드를 제작 했다. 기존 RP2040 SSM EVM 보드와 동일한 핀맵을 유지하고 W5500은 SPI1에 할당 해서 호환성을 유지 하도록 했다.
[STM32-48_W5500] 초소형 이더넷 보드 제작 네트웍 처리를 위해 소형이고 저렴하면서 어느정도 성능도 보장되는 MCU로 48핀 LQFP 패키지의 ST시리즈 MCU가 좋을것 같다. 48핀에 핀맵이 호환되는 MCU들이 많이 출시되고 있으므로 소형의 보드로 만들어 두면 여러 어플리케이션에 적용할 수 있을것 같아 SSM-Type EVM 형태로 제작 했다. 윗면은 48핀 패키지 MCU를 실장 할 수 있다. W5500 TCP 전송률 테스트에서 가격대비 탁월한 성능을 보여주는 GD32F303을 실장하여 제작해 보았다. 아래면에는 WIZnet의 W5500을 실장 할 수 있도록 했다.
[GD32F-48 SSM] Arduino GD32F303 I2C 테스트 - SSD1306 OLED SSD1306 라이브러리(Adafruit_SSD1306) 기본예제를 수정해서 간단히 OLED에 출력하는 예제를 구동하면 정상 동작하는 것을 확인 할 수 있다. #include #include #include #include #define SCREEN_WIDTH 128 // OLED display width, in pixels #define SCREEN_HEIGHT 64 // OLED display height, in pixels // Declaration for an SSD1306 display connected to I2C (SDA, SCL pins) #define OLED_RESET -1 // Reset pin # (or -1 if sharing Arduino reset pin) Adafruit_SS..
GD32F303 SSM - Dhrystone, Whetstone, IIR Filter 벤치마크 테스트 MCU 성능 측정을 할수 있는 벤치마크 방법은 여러가지가 있지만 Dhrystone, Whetstone 방식을 많이 사용한다. 각각의 특징은 아래와 같다. Dhrystone - 정수(ALU)연산성능 측정, MIPS 수치로 표기 Whetstone - 부동소수점(FPU)연산성능 측정, MFLOPS 수치로 표기 테스트 코드는 STM32H MCU Dhrystone, Whetstone, IIR Benchmark 성능 테스트 를 이용하였다. GD32F303 의 Dhrystone, Whetstone, IIR Filter 벤치마크 테스트 결과 정수 연산은 나쁘지 않은데 부동소수점 연산은 좋지 않다. STM32의 Cortex-M4코어와 비교하면 상당한 성능 차이가 있는것 같다. 하지만 가격 대비 성능으로 비교 한다면 ST..
[GD32F-48 SSM EVM] GD32F303 Arduino 만들기 GD32F303을 Arduino로 사용하기위해 보드파일을 하기 링크를 이용하였다. https://github.com/keyboardio/ArduinoCore-GD32-Keyboardio GitHub - keyboardio/ArduinoCore-GD32-Keyboardio: Arduino core for GD32 devices, community developed, based on original GigaDevic Arduino core for GD32 devices, community developed, based on original GigaDevice's core - GitHub - keyboardio/ArduinoCore-GD32-Keyboardio: Arduino core for GD32 devi..
[GD32-48 SSM] GD32F303 - Iperf로 W5500의 TCP Throughput 측정 테스트 STM32F103 시리즈 대체용으로 추천 받은 GD32F303은 최대 클럭 120Mhz로 구동되고 SPI클럭을 30Mhz로 구동할 수 있다. STM32F103 과 비교해서 W5500의 TCP Throughtput 테스트 성능 비교를 해보면 좋을 것 같다. 네트웍 전송율 테스트를 위해 PC에서는 iperf 프로그램을 사용하고 STM32에서는 W5500 TCP loopback 테스트 코를 조금 수정해 iperf 클라이언트 코드로 작성했다. int32_t iperf_tcps(uint8_t sn, uint8_t* buf, uint16_t port) { int32_t ret; uint16_t size = 0, sentsize=0; switch(getSn_SR(sn)) { case SOCK_ESTABLISHED :..

반응형