본문 바로가기

RaspberryPi/RP2040_W5500

[RP2040_W5500] HDMI출력 확장 테스트 보드 제작

Raspberry Pi PicoW - HDMI 출력 테스트 예제를 이용하여 RP2040 W5500 EVM 보드에서 HDMI 출력을 할 수 있는 확장 테스트 보드를 제작 했다.

 

 


HDMI 확장 테스트 보드 회로도

RP2040을 연결해서 다양한 테스트를 해 볼수 있다.

 

TFP-LCD 모듈도 연결해서 테스트 가능하도록 했다.

 

HDMI 출력 회로 

 

 


RP2040 HDMI 출력 테스트 코드

#include <PicoDVI.h>                  // Core display & graphics library
#include <Fonts/FreeSansBold18pt7b.h> // A custom font

#include "img_rp2040exp.h"

#define SW1_PIN   1

static const struct dvi_serialiser_cfg pico_exp_cfg = {
	.pio = DVI_DEFAULT_PIO_INST,
	.sm_tmds = {0, 1, 2},
	.pins_tmds = {10, 12, 14},
	.pins_clk = 8,
	.invert_diffpairs = true
};

DVIGFX16 display(DVI_RES_320x240p60, pico_exp_cfg);

void setup() { // Runs once on startup
  pinMode(SW1_PIN, INPUT_PULLUP);
  Serial.begin(115200);

  if (!display.begin()) { // Blink LED if insufficient RAM
    pinMode(LED_BUILTIN, OUTPUT);
    for (;;) digitalWrite(LED_BUILTIN, (millis() / 500) & 1);
  }

  display.setRotation(1);
      show_bitmap((unsigned short *)img_bmp);
}

#define PAUSE 2000  // Delay (milliseconds) between examples
uint8_t rotate = 0; // Current screen orientation (0-3)
#define IMAGE_WIDTH     320
#define IMAGE_HIGHT     240

void show_bitmap(unsigned short *img_buf) {
  display.fillScreen(0);

  int x, y;
  int id = 0;

  for(x=0;x<IMAGE_HIGHT;x++)
  {
    for(y=0;y<IMAGE_WIDTH;y++)
    {
      display.drawPixel(x, y, img_buf[id++]);
    }
  }
}


int flag = 0;
void loop() {
  if(!digitalRead(SW1_PIN))
  {
    flag ^= 1;
    if (++rotate > 3) rotate = 0;

    Serial.print("r:");
    Serial.println(rotate);    

    display.setRotation(rotate);
    show_bitmap((unsigned short *)img_bmp);
    delay(300);
  }  

}

 

 

RP2040 HMDI 출력 테스트 결과

반응형