본문 바로가기

RaspberryPi/RP2350

[RP2350-W6300 SSM] HSTX 를 이용한 DVI 출력 테스트

W6300을 이용하면 네트웍 전송속도가 빠르기 때문에 기존에 제작 했던 네트웍을으로 실시간 HDMI출력 속도를 더 빠르게 할수 있을것으로 기대가 된다.

https://nexp.tistory.com/4057

 

[W55RP20 SSM] HDMI 출력 테스트 - 실시간 화면캡쳐 후 이미지 전송

W55RP20 SSM HDMI 출력 예제를 이용하여 실시간으로 이미지를 전송 할 수 있도록 수정해 보았다. 320x240 BMP 이미지를 전송하기 때문에 320x240x16 = 153600 Byte가 전송되며 대략 1.2Mbit 정도 되는 데이터 이

nexp.tistory.com

 

먼저 [RP2350-W6300 SSM] 보드로 HSTX로 HMDI출력을 해보자.

RP2350 SSM 보드를 이용하면 기존에 제작 했던 HDMI출력 확장 테스트 보드를 활용하여 DVI출력을 할 수 있다. RP2350의 HSTX 출력 핀은 GP12 ~ GP19에 할당되어 있으므로 아래 핀맵으로 연결 할 수 있다.

 

 

RP2350 SM - HSTX를 이용한 DIV 테스트 코드를 이용하면 HDMI로 출력 할 수 있다.

다만 핀맵은 수정할 필요가 있다.

    // HSTX outputs 0 through 7 appear on GPIO 12 through 19.
    // Pinout on Pico DVI sock:
    //
    //   GP13 CK+  GP12 CK-
	//   GP15 D0+  GP14 D0-
    //   GP17 D1+  GP16 D1-
    //   GP19 D2+  GP18 D2-

   // Assign clock pair to two neighbouring pins:
    hstx_ctrl_hw->bit[1] = HSTX_CTRL_BIT0_CLK_BITS;
    hstx_ctrl_hw->bit[0] = HSTX_CTRL_BIT0_CLK_BITS | HSTX_CTRL_BIT0_INV_BITS;

	
    for (uint lane = 0; lane < 3; ++lane) {
        // For each TMDS lane, assign it to the correct GPIO pair based on the
        // desired pinout:
        static const int lane_to_output_bit[3] = {2, 4, 6};
        int bit = lane_to_output_bit[lane];
		
        // Output even bits during first half of each HSTX cycle, and odd bits
        // during second half. The shifter advances by two bits each cycle.
        uint32_t lane_data_sel_bits =
            (lane * 10    ) << HSTX_CTRL_BIT0_SEL_P_LSB |
            (lane * 10 + 1) << HSTX_CTRL_BIT0_SEL_N_LSB;
			
        // The two halves of each pair get identical data, but one pin is inverted.
        hstx_ctrl_hw->bit[bit + 1] = lane_data_sel_bits;
        hstx_ctrl_hw->bit[bit] = lane_data_sel_bits | HSTX_CTRL_BIT0_INV_BITS;
    }


    for (int i = 12; i <= 19; ++i) {
        gpio_set_function(i, 0); // HSTX
    }

 

 

테스트 결과 정상으로 HDMI출력이 되는것을 확인할 수 있다.

 


앞으로 네트웍을 통한 이미지 전송테스트를 진행해 보자.

반응형