본문 바로가기

RaspberryPi

(55)
[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 토..
RP2040 SSM EVM - CircuitPython 개발 환경설정 Raspberry Pi Pico 에서 Python 구동하기 위해 기존에 MicroPython 을 사용 했었는데 CircuitPyhon 을 사용하는 방법도 있다. CircuitPython은 MicroPython을 기반으로 Adafruit사에서 만든 MicroPython 환경이라고 한다. 아무래도 사용자가 많고 라이브러리들이 많기 때문에 많이 사용한다고 한다. CircuitPython 코드도 구동할 수 있다고 하니 CircuitPython을 사용하면 좋을것 같다. 우선 Raspberry Pi Pico용 펌웨어를 다운 받아 설치 하자. https://circuitpython.org/board/raspberry_pi_pico/ CircuitPython - Pico Download The Raspberry Pi ..
RP2040 SSM EVM - MicroPython 개발 환경설정 Python으로 MCU를 구동하면 하드웨어 독립적으로 간단하고 빠르게 검증 해 볼수 있는 장점이 있다. Raspberry Pi Pico도 Python을 지원 하는데 소형 MCU에서 돌아가는 MicroPython을 지원한다. 먼저 MicroPython 홈페이지에서 RP2040용 펌웨어를 다운로드 받아 설치 한다. https://micropython.org/download/rp2-pico/ MicroPython - Python for microcontrollers MicroPython is a lean and efficient implementation of the Python 3 programming language that includes a small subset of the Python standar..

반응형