RaspberryPi/RP2040 (31) 썸네일형 리스트형 Raspberry Pi Pico (RP2040) QMK Keyboard 테스트 USB HID KeyBoard를 만들기위한 방업은 여러가지가 있지만 표준화된 펌웨어를 사용하면 유지보수나 업데이트 등의 관리가 편리하다. 표준화된 키보드 펌웨어 중에 가장 많이 사용하는것 중에 QMK를 사용해 보자. 먼저 펌웨어 개발 환경을 다운로드 받는다. https://msys.qmk.fm/ QMK MSYS msys.qmk.fm 다운로드 받아서 설치 하면 자동으로 환경 설정을 해준다. QMK 설치후 QMK MSYS 실행 qmk setup 가장 먼저 해야 할것이 QMK 셋업 이다. 새로운 프로젝트를 생성한다. 프로젝트 생성할때 디바이스를 선택 해야 하는데 36번에 있는 RP2040을 선택 한다. 생성된 프로젝트에서 원하는 형태의 펌웨어로 수정해 주면 된다. info.json 파일에서 키맵을 설정 해 줄.. [RP2040 SSM] 엔코더(Quadrature Encoders) 테스트 RP2040 에는 하드웨어 타이머 기능중에 Encoder모드가 없다. 하지만 RP2040의 PIO기능을 이용하면 쉽게 구현 가능하다. 그래서 라이브러리로 만들어 공개한 분이 있다. https://github.com/jamon/pi-pico-pio-quadrature-encoder GitHub - jamon/pi-pico-pio-quadrature-encoder: Raspberry Pi Pico PIO Quadrature Encoder Raspberry Pi Pico PIO Quadrature Encoder. Contribute to jamon/pi-pico-pio-quadrature-encoder development by creating an account on GitHub. github.com Enc.. [RP2040 SSM] TFT LCD (COM26T2844) 테스트 EXP_4030_LCD_HDMI 확장 보드를 이용하면 12핀 SSM-Type EVM에서 TFT LCD보드 제어를 할 수 있다. 표준 핀맵의 확장 핀맵은 아래와 같이 구성 하였다. 소스코드는 https://github.com/adafruit/TFTLCD-Library 를 참고 수정해서 사용 했다. 초기화 부분과 데이터 출력 부분은 아래와 같이 수정 했다. #define Led1Off()sbi(0, BIT13) #define Led1On()cbi(0, BIT13) #define LCD_XLINE_SIZE240 #define LCD_YLINE_SIZE400 #define PORTA(sio_hw->gpio_out) #define GPIO0 0 #define GPIO1 1 #define LCD_LAT_BIT27 .. 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 토.. 이전 1 2 3 4 다음