본문 바로가기

RaspberryPi/RP2040

(39)
[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에 할당 해서 호환성을 유지 하도록 했다.
Raspberry Pi Pico RP2040 - Arduino IDE에서 Iperf로 W5500의 TCP Throughput 측정 테스트 Raspberry Pi Pico 확장 테스트 보드를 이용하여 W5500 모듈의 TCP IP전송률 테스트를 iperf로 진행 해 보자. 확장 테스트보드의 SSM Type EVM 연결 커넥터에 W5500 CS핀이 GP12에 할당 되어 있다. Arduino 에서 iperf 를 이용하여 한 네트웍 전송율 테스트를 하기 위해 TCP Server를 구현 하면 된다. #include #include #define USE_THIS_SS_PIN 12 byte mac[] = {0x00, 0x08, 0xDC, 0x00, 0x00, 0x00}; EthernetServer server(5001); void setup() { Serial.begin(115200); while (!Serial) { ; // wait for seri..
RP2040 Arduino IDE에서 SPI DMA 사용하기 Arduino IDE 개발환에서 RP2040의 SPI 전송률 테스트 하면 데이터 전송 간격이 1.2us 정도로 측정 된다.(RP2040 SPI테스트 참고) 고속의 데이터 전송을 위해서는 DMA가 필요한데 RP2040에서 SPI DMA 테스트를 진행 해 보자. DMA 초기화 함수 #include "hardware/dma.h" int32_t dma_tx_channel; dma_channel_config dma_tx_config; #define SPI_X spi0 bool initDMA(bool ctrl_cs) { //ctrl_cs = ctrl_cs; // stop unused parameter warning dma_tx_channel = dma_claim_unused_channel(false); if (dm..
RP2040 SSM EVM - CircuitPython 내부온도 출력 하기 RP2040은 칩내부에 온도 센서가 있고 칩의 온도 값을 출력하기 위해 microcontroller 패키지를 이용하면 쉽게 온도 값을 출력 할 수 있다. 간단히 아래와 같이 내부온도를 쉽게 출력 할 수 있다. import time import microcontroller while True: print(microcontroller.cpu.temperature) time.sleep(0.5)
RP2040 SSM EVM - CircuitPython ADC, PWM 테스트 CircuitPython 예제 몇가지를 테스트 해보았다. ADC 테스트 import time import board import analogio potentiometer = analogio.AnalogIn(board.GP26) get_voltage = 3.3 / 65535 while True: voltage = potentiometer.value * get_voltage print(voltage) time.sleep(2) PWM 테스트 import board import analogio import pwmio import time potentiometer = analogio.AnalogIn(board.GP26) led = pwmio.PWMOut(board.GP25, frequency=1000) cnt =..
RP2040 SSM EVM - CirCuitPython GPIO 토글 속도 MUC에서 Python을 사용하면 MCU 독립적으로 동작하기 때문에 쉽고 빠르게 원하는 동작을 구현해서 확인 할수 있다. 다만 Python이 스크립트 언어 이므로 편리함 대신 속도를 양보 해야 한다. 그렇다면 어느정도로 속도가 느려질까? 간단히 GPIO 토글 속도를 비교 해보자 import board import digitalio led = digitalio.DigitalInOut(board.LED) led.direction = digitalio.Direction.OUTPUT while True: led.value = True led.value = False RP2040 Python으로 LED On/Off 테스트 결과 6700ns 로 상당히 느리다. RP2040을 Arduino 에서 제공하는 GPIO 토..

반응형