본문 바로가기

RaspberryPi

(72)
RP2040 Dhrystone, Whetstone, IIR Benchmark 성능 테스트 MCU 성능 측정을 할수 있는 벤치마크 방법은 여러가지가 있지만 Dhrystone, Whetstone 방식을 많이 사용한다. 각각의 특징은 아래와 같다. Dhrystone - 정수(ALU)연산성능 측정, MIPS 수치로 표기 Whetstone - 부동소수점(FPU)연산성능 측정, MFLOPS 수치로 표기 테스트 코드는 STM32H MCU Dhrystone, Whetstone, IIR Benchmark 성능 테스트 를 이용하였다. 133Mhz 클럭 주파수를 이용하고 기본 옵션으로 테스트 해 보면 77.7DMIPS가 측정된다. Dhrystone Benchmark, Version 2.1 (Language: C) mode = Arduino Execution starts, 300000 runs through Dh..
RP2040 Pico LittleFS 파일 시스템 테스트 RP2040 보드는 2MByte이 시리얼 플래시 메모리가 있고 펌웨어외 데이터도 저장 할 수 있다. 이 메모리를 이용하면 MP3파일이나 이미지 파일들을 저장해서 사용 할 수 가 있을것 같다. 외부 시리얼 플래시 메모리를 제어 하기위해 Pico LittleFS 라이브러리를 이용하면 쉽게 사용 가능하다. 아두이노 IDE에서 데이터를 업로드 하기위한 플러그인(Pico LittleFS )이 필요다 https://github.com/earlephilhower/arduino-pico-littlefs-plugin GitHub - earlephilhower/arduino-pico-littlefs-plugin: LittleFS Data Uploader for Arduino-Pico LittleFS Data Uploade..
RP2040 SSM EVM - W5500 웹서버 테스트 W5500 을 이용하여 RP2040에서 웹서버를 구현해 보자 우선 Arduino Ethernet Webserver 코드에서 가장 심플한 형태로 웹페이지 표시를 해 보면 아래와 같이 코드를 작성할 수 있다. #include #include #define W5500_CS_PIN 17 #define Led1On() digitalWrite(25, 1) #define Led1Off() digitalWrite(25, 0) byte mac[] = { 0x00, 0x08, 0xdc, 0x00, 0x00, 0x00 }; IPAddress ip(192, 168, 1, 177); EthernetServer server(80); const char response_msg[] PROGMEM = "HTTP/1.1 200 OK\r..
RP2040 SSM EVM - W5500 DCHP 테스트 Raspvery Pi Pico(RP2040) 을 이용하여 이더넷 테스트를 하기위한 테스트를 좀더 진행해 보자.우선 W5500 을 이용하여 DHCP로 IP를 할당 받고 SSD1306 OLED에 IP정보를 표시 하는 예제를 작성해 보자. W5500 에서 DHCP로 할당받기 위해서는 초기화시 mac만 설정 해 주면 된다. void setup() { pinMode(25, OUTPUT); Serial.begin(115200); while (!Serial) { ; // wait for serial port to connect. Needed for Leonardo only } Serial.println("W5500 DHCP Test"); // start the Ethernet connection and the ser..
RP2040 SSM EVM - W5500 Ethernet Ping 테스트 W5500 Ethernet 모듈을 이용하여 RaspberyPi Pico(RP2040) 에서 Ethernet 통신을 해보자. SSM-EXP21 확장 테스트 보드를 이용하였고 W5500의 CS 핀은 GPIO17 핀에 할당되어 있다. W5500 라이브러리는 Ethernet2 를 설해서 테스트 했다. #include #include #include #define Led1On() digitalWrite(25, 1) #define Led1Off() digitalWrite(25, 0) byte mac[] = { 0x00, 0x08, 0xDC, 0x00, 0x00, 0x00 }; IPAddress ip(192, 168, 1, 177); void setup() { pinMode(25, OUTPUT); Serial.beg..
RP2040 SSM EVM - SPI 테스트 (최대 SPI클럭 테스트) RP2040 SSM EVM 보드의 SPI는 GP16 ~ GP19 에 연결되어 있다. Raspberry Pi-Pico 의 SPI 핀맵과 동일하게 제작 했다. 데이터시트를 보면 RP2040의 최대 SPI 클럭 속도는 62.5Mhz 까지 가능 하다고 한다. the maximum SSPCLK (clk_peri) frequency on RP2040 of 133 MHz, the maximum peak bit rate in [controller] mode is 62.5 Mbps RP2040 최대 SPI 클럭 테스트 void setup() { pinMode(15, OUTPUT); digitalWrite(15, 1); Serial.begin(115200); SPI.begin(); SPI.setFrequency(40000..
RP2040 SSM EVM - Arduino TinyUSB Multi CDC 테스트 TinyUSB 를 사용하면 SSM Type의 CP2105 모듈과 같이 Multi CDC 가 가능 하다고 해서 테스트 해 보았다. Serial은 Raspberry Pi-Pico의 디폴트 CDC이고 USBSer1 으로 하나 더 할당했다. #include #define LED LED_BUILTIN // Create extra USB Serial Ports. "Serial" is already created. Adafruit_USBD_CDC USBSer1; void setup() { pinMode(LED, OUTPUT); USBSer1.begin(115200); // start up all of the USB Vitual ports, and wait for them to enumerate. Serial.begi..
RP2040 SSM - HID Keyboard Composite Device 테스트, CDC로 Key 값 설정하기 Keyboard, Disk Composite Device 로 Key 값을 설정 하는 방법외 CDC 로 설정하면 좀더 편리 하지 않을까? 키보드 + 시리얼 로 동작하게 해서 시리얼 포트로는 데이터 세팅 하도록 하는 코드 작성해 보았다. 스위치 누르면 키값을 전송하도록 했는데 keyboard_ramdisk.ino와 다른 현상이 발생한다. if (digitalRead(PIN_BUTTON1) == 0 ) { if(flag == 0) { flag = 1; keycode = hidcode[0]; usb_hid.keyboardReport(report_id, modifier, &keycode); Serial.print("press="); // delay a bit before attempt to send keyboar..