임베디드 디스플레이 프로젝트에 병목 현상을 겪고 계신가요?

복잡한 통합 작업이나 공급망 문제로 출시 시기가 지연되지 않도록 하십시오. 맞춤형 설계 및 제조 지원을 위해 RJY 전문가 팀과의 무료 상담을 예약하세요.

TFT LCD Raspberry Pi 디스플레이 설정 방법

사랑을 나누세요

임베디드 소프트웨어 엔지니어, 하드웨어 해커 및 산업용 IoT 아키텍트에게 라즈베리 파이는 신속한 프로토타이핑의 확고한 표준입니다. 기본적인 “헤드리스” 상태(SSH를 통해 접근)에서는 소리 없이 묵묵히 일하는 동력원입니다. 그러나 인간-기계 인터페이스(HMI)가 필요한 순간—스마트 홈 온도 조절기, 공장 현장 제어판 또는 맞춤형 의료 기기 프로토타입을 구축하든—코드와 물리적 상호작용 사이의 간극을 연결해야 합니다.

Integrating a tft lcd raspberry pi 디스플레이를 통합하는 것은 하드웨어 개발에서 가장 난처한 통과의례인 경우가 많습니다. 라즈베리 파이의 GPIO 헤더에 화면을 연결했는데 악명 높은 “죽음의 백색 화면”이 나타난 경험이 있다면, 이 통합이 얼마나 복잡할 수 있는지 잘 알고 계실 것입니다.

이 포괄적이고 단계별 공학 가이드는 라즈베리 파이에서 TFT LCD를 성공적으로 구축하는 데 필요한 정확한 하드웨어 연결, 기반이 되는 Linux 디바이스 트리 오버레이, 그리고 현대적인 Wayland/X11 소프트웨어 구성을 상세히 안내합니다.

1. 아키텍처 트라이아지: 디스플레이 인터페이스 이해하기

점퍼 와이어 하나 만지거나 sudo nano, 를 입력하기 전에 반드시 이해해야 할 것은 어떻게 디스플레이가 라즈베리 파이와 통신하는 방식입니다. 연결 방식은 프레임 속도, CPU 오버헤드 및 필요한 소프트웨어 드라이버를 완전히 결정합니다.

tft lcd raspberry pi 디스플레이를 연결하는 네 가지 주요 방법이 있습니다.

A. SPI 인터페이스(직렬 주변 장치 인터페이스)

이는 소형 디스플레이(1.5인치 ~ 3.5인치)에 가장 일반적인 인터페이스입니다. 이러한 디스플레이는 40핀 GPIO 헤더에 직접 장착됩니다.

  • 현실: SPI는 직렬 프로토콜입니다. 픽셀 데이터를 한 번에 한 비트씩 전송합니다. 본질적으로 느립니다.
  • 사용 사례: 정적 사용자 인터페이스, 센서 판독값 또는 텍스트 위주의 대시보드에 완벽합니다.
  • 한계점: SPI 화면에서 60 FPS 비디오 재생을 기대하지 마십시오. SPI 버스 속도(일반적으로 32MHz ~ 48MHz로 제한됨)에 의해 물리적으로 제한되며, 320x480 해상도 화면에서 최대 15~25 FPS를 제공합니다. 픽셀을 전송하려면 높은 CPU 오버헤드가 필요합니다.

B. MIPI DSI 인터페이스(디스플레이 직렬 인터페이스)

이는 라즈베리 파이 보드의 전용 리본 케이블 커넥터(라즈베리 파이 5 모델에서는 “DISPLAY” 또는 “MIPI”로 표시됨)를 활용합니다.

  • 현실: DSI는 고속 차동 신호 인터페이스로, 라즈베리 파이의 Broadcom GPU에 직접 접근합니다.
  • 사용 사례: 유연한 UI, 비디오 재생 및 복잡한 그래픽을 위한 최상의 옵션입니다. CPU를 완전히 해방시키고 GPIO 핀을 다른 센서에 사용할 수 있게 합니다.
  • 한계점: DSI 디스플레이는 일반적으로 공식 라즈베리 파이 화면 또는 맞춤형 브리지 칩이 있는 특정 타사 모델로 제한됩니다.

C. DPI 인터페이스(디스플레이 병렬 인터페이스)

DPI는 거의 모든 GPIO 핀(RGB888 색상의 경우 최대 24핀 및 동기 신호)을 사용하여 원시 LCD 패널을 구동합니다.

  • 현실: HDMI와 유사한 속도와 제로 CPU 오버헤드를 제공하면서도 부피 큰 HDMI 포트를 사용하지 않습니다.
  • 사용 사례: HDMI 포트가 차단되었거나 보조 화면에 필요한 맞춤형 아케이드 캐비닛 또는 산업용 구축 사례.
  • 한계점: 거의 모든 GPIO 핀을 사용하게 됩니다. I2C 센서나 SPI 버튼을 쉽게 추가할 수 없습니다.

D. HDMI / USB 콤보

대형 tft lcd raspberry pi 화면(5인치 ~ 10인치)은 종종 디스플레이 신호에 표준 HDMI를, 터치 인터페이스에 USB 케이블을 사용합니다.

  • 현실: 플러그 앤 플레이의 단순성. 라즈베리 파이는 이를 표준 데스크톱 모니터처럼 취급합니다.
  • 한계점: 부피 큰 케이블링. 얇은 맞춤형 제품 외관에 깔끔하게 통합하기 어렵습니다.

이 실습 가이드에서는 가장 악명 높게 어려운 통합인 SPI 기반 GPIO 디스플레이, 에 초점을 맞출 것입니다. Linux 커널에 대한 가장 깊은 이해가 필요하기 때문입니다.


2. 하드웨어 조립: SPI 디스플레이 배선하기

SPI 디스플레이가 “HAT”(상단 부착 하드웨어)처럼 GPIO 헤더에 직접 끼워지지 않는 경우 수동으로 배선해야 합니다.

하드웨어의 황금률

라즈베리 파이 전원이 켜진 상태에서 절대 디스플레이를 배선하지 마십시오. GPIO 핀을 핫 플러깅하면 전압 서지가 발생하여 LCD 드라이버 IC를 즉시 파괴하거나, 더 나쁘게는 라즈베리 파이의 Broadcom SoC를 태울 수 있습니다.

SPI 핀아웃 해부

표준 SPI tft lcd raspberry pi 화면을 작동시키려면 전원, SPI 버스(MOSI, SCLK, CE) 및 제어 핀(DC, Reset)을 연결해야 합니다.

암-암 점퍼 와이어를 사용하여 실행해야 하는 표준 매핑은 다음과 같습니다:

디스플레이 핀기능라즈베리 파이 물리적 핀라즈베리 파이 BCM GPIO
VCC/5V전원핀 2 또는 45V 전원
GND접지(Ground)핀 6(또는 아무 GND 핀)접지(Ground)
MOSI(SDI)화면으로의 데이터핀 19GPIO 10(SPI0_MOSI)
SCLK(SCK)SPI 클록핀 23GPIO 11(SPI0_SCLK)
CS / CE0칩 선택핀 24GPIO 8(SPI0_CE0)
DC / RS데이터/명령핀 22 (일반 기본값)GPIO 25
RST / RES리셋핀 18 (일반 기본값)GPIO 24
BLK / LED백라이트핀 12 (PWM) 또는 3.3VGPIO 18 (PWM0)

엔지니어링 팁: 그리고 DC (데이터/명령) 핀이 매우 중요합니다. SPI는 1과 0만 전송합니다. 디스플레이 컨트롤러(예: ILI9341)는 이 1과 0이 픽셀 색상 데이터인지, 아니면 시스템 명령(예: “화면 켜기”)인지 알아야 합니다. DC 핀은 하이 또는 로우로 토글되어 컨트롤러에게 들어오는 SPI 데이터를 어떻게 해석해야 하는지 알려줍니다.


3. 커널 구성: 디바이스 트리 오버레이

화면을 배선했습니다. 파이에 전원을 넣습니다. 화면이 켜지지만 완전히 하얗습니다. 이것이 바로 죽음의 하얀 화면. 입니다. 이는 백라이트에 전원이 공급되고 있지만, 라즈베리 파이 커널이 화면의 존재를 인식하지 못해 픽셀 데이터를 전송하지 않고 있음을 의미합니다.

Linux 커널에게 이 화면과 통신하는 방법을 알려주어야 합니다. 최신 라즈베리 파이 OS(Bookworm 이상)에서는 디바이스 트리 오버레이(dtoverlay).

3.1단계: SPI 버스 활성화

먼저, 파이의 SPI 하드웨어를 활성화해야 합니다.

  1. 라즈베리 파이에 SSH로 접속합니다.
  2. 구성 도구를 실행하세요:Bashsudo raspi-config
  3. 다음으로 이동합니다 인터페이스 옵션 -> SPI -> 선택하여 활성화합니다.
  4. 파이를 재부팅합니다.

3.2단계: 디스플레이 컨트롤러(드라이버) 식별

TFT LCD 패널은 단순한 유리판입니다. 이들은 유리판 뒷면(또는 PCB 위)에 부착된 마이크로칩에 의해 구동됩니다. 유럽/미국 메이커 시장에서 가장 흔한 컨트롤러는 다음과 같습니다:

  • ILI9341 (2.4" ~ 2.8" 화면에 매우 흔함)
  • ST7789 (1.3" ~ 2.0" IPS 화면에 흔함)
  • ILI9486 (3.5" 화면에 흔함)

귀하의 반드시 화면이 어떤 컨트롤러를 사용하는지 알아야 합니다. 제조사의 데이터시트를 확인하세요.

3.3단계: config.txt

편집.

최신 라즈베리 파이 OS에서는 부트 구성 파일 위치가 변경되었습니다.

nano 텍스트 편집기를 사용하여 엽니다:

Bash

sudo nano /boot/firmware/config.txt (참고: 이전 Bullseye OS 버전에서는 경로가)

/boot/config.txt ILI9341 입니다.)

파일 하단으로 스크롤하여 사용 중인 드라이버에 맞는 특정 오버레이를 추가하세요. 예를 들어, 위 표와 정확히 동일하게 배선된

화면을 사용하는 경우:

Ini, TOML ST7789 # SPI 활성화

파일 하단으로 스크롤하여 사용 중인 드라이버에 맞는 특정 오버레이를 추가하세요. 예를 들어, 위 표와 정확히 동일하게 배선된

dtoverlay=adafruit-st7789v-hAT,fps=30

디스플레이(일반적으로 Adafruit PiTFT에서 사용됨)의 경우:dtoverlay=adafruit-st7789v-hAT,fps=30, 파일을 저장하고(Ctrl+OEnter).

) 종료합니다( Ctrl+X.

).


라즈베리 파이를 재부팅합니다:

sudo reboot.

올바르게 구성되었다면, 부팅 중 하얀 화면이 검은색으로 변하고 결국 작은 화면에 Linux 콘솔 텍스트가 스크롤되는 것을 보게 될 것입니다. 4. 현대 그래픽 아키텍처: FBCP vs. DRM/KMS (프레임버퍼 복사). 기본 GPU 프레임버퍼(fb0)의 스냅샷을 생성하여 이를 SPI 화면의 프레임버퍼(fb1).

)로 과감하게 복사했습니다.

Wayland 현실 점검 Raspberry Pi OS Bookworm부터 X11 윈도우 시스템과 레거시 프레임버퍼 아키텍처는 폐기되었습니다. 이제 Pi는 Wayland (구체적으로 Wayfire 컴포지터)와 DRM/KMS.

4. 현대 그래픽 아키텍처: FBCP vs. DRM/KMS (Direct Rendering Manager / Kernel Mode Setting) 아키텍처를 사용합니다.

는 최신 Raspberry Pi OS에서 더 이상 작동하지 않습니다.

오늘날 UI 구동 방법:.

산업용 HMI나 맞춤형 장치를 제작하는 경우, 어차피 3.5인치 화면에서 전체 데스크톱 GUI를 실행하려고 해서는 안 됩니다. 대신 하드웨어 가속 라이브러리를 사용하여 DRM/KMS 레이어에 직접 렌더링하는 애플리케이션을 작성해야 합니다.

  • 전문가용 스택: LVGL (Light and Versatile Graphics Library):.
  • Linux DRM 서브시스템에 직접 기록하는 오픈 소스 C 라이브러리입니다. 매우 가볍고 SPI 화면에 완벽합니다. Qt / PyQt: Qt 애플리케이션을 또는 eglfs 또는.
  • linuxfb 플러그인을 사용하도록 구성하여 Wayland 데스크톱을 완전히 우회하고 UI를 TFT LCD에 직접 그릴 수 있습니다.

키오스크 모드:

반드시 웹 기술(HTML/CSS/JS)을 사용해야 한다면, Wayfire가 로컬 Node.js 서버를 가리키는 전체 화면 Chromium 브라우저로 직접 부팅되도록 구성할 수 있습니다.

5. 터치 인터페이스 보정

  • tft lcd raspberry pi에 터치 오버레이가 있는 경우, 화면에 이미지를 표시하는 것은 성공의 반에 불과합니다. 이제 화면의 왼쪽 상단 모서리를 탭할 때 마우스 커서가 실제로 왼쪽 상단 모서리로 이동하는지 확인해야 합니다. 저항식 vs. 정전식 터치.
  • 저항식 (XPT2046 컨트롤러): 압력이 필요합니다. 저렴한 3.5″ SPI 화면에서 매우 흔합니다. 아날로그 저항이 온도와 생산 로트에 따라 달라지기 때문에 집중적인 보정이 필요합니다.

정전식 (FT6236 / Goodix 컨트롤러):

스마트폰과 유사합니다. 공장에서 그리드가 픽셀에 디지털 방식으로 매핑되므로 일반적으로 보정이 필요하지 않습니다. SPI 대신 I2C 버스를 사용합니다. Wayland/Libinput에서 XPT2046 저항식 화면 보정 X11이 더 이상 사용되지 않으므로, 기존의 xinput_calibrator 그리고 도구는 쓸모없어졌습니다. 오늘날 터치스크린은 libinput.

  1. udev규칙으로 처리됩니다.먼저, 터치 드라이버가
  2. /boot/firmware/config.txt에 로드되었는지 확인하십시오:
  3. Ini, TOML dtoverlay=ads7846,cs=1,penirq=17,penirq_pull=2,speed=1000000,keep_vref_on=1 재부팅 후 libinput 보정 도구를 설치하십시오: Bash sudo apt install weston.Wayfire(기본 컴포지터)는 입력 장치에 대해 특정 구성 파일을 사용합니다. 터치 매트릭스를 올바르게 매핑하려면 Wayfire 구성을 편집해야 합니다. 1 0 0 0 1 0.)

~/.config/wayfire.ini.


를 열고

[input].

섹션을 찾으십시오. 보정 매트릭스를 추가해야 합니다. udev (참고: 정확한 매트릭스는 화면이 가로 방향인지 세로 방향인지에 따라 다릅니다. 기본 단위 매트릭스는 속도 입니다.).

파일 하단으로 스크롤하여 사용 중인 드라이버에 맞는 특정 오버레이를 추가하세요. 예를 들어, 위 표와 정확히 동일하게 배선된

터치 축이 반전된 경우(손가락을 위로 움직이면 마우스가 아래로 움직임), 매트릭스 값을 반전시켜야 합니다. 예를 들어, Y축을 반전시키려면 udev 규칙 또는 Wayfire 구성 매트릭스에서 Y축 스케일 승수를 음수 값으로 변경해야 합니다.

6. SPI 버스 오버클럭킹 (프레임률 향상).

100mA 백라이트를 MCU 핀에서 직접 구동하려고 시도하면 결국 프로세서의 전압이 불안정해지거나 GPIO가 손상될 수 있습니다. 사용자 인터페이스가 느리게 느껴진다면, SPI 버스를 오버클럭하여 tft lcd raspberry pi에서 초당 프레임 수를 조금 더 끌어낼 수 있습니다.


을 열고 드라이버 오버레이 라인을 찾으십시오.

매개변수(Hz 단위)를 추가하십시오.

dtoverlay=rpi-display,speed=48000000.


자주 묻는 질문(FAQ)

이는 48 MHz SPI 클록을 요청합니다.

A: Raspberry Pi의 SPI 코어 클록은 분배기 시스템으로 작동합니다. 48MHz를 요청하면 이를 얻을 가능성이 높습니다. 60MHz를 요청하면 Pi가 코어 클록을 분배하여 오히려 31MHz로 떨어뜨려 더 느려지게 할 수 있습니다. 더욱이, 속도를 너무 높게 설정하면(예: 80000000), 물리적인 점퍼 와이어가 안테나 역할을 하여 전자기 간섭(EMI)을 유발하고 데이터를 손상시켜 화면에 정적 "눈"이나 반전된 색상이 가득 차게 될 수 있습니다. SPI 속도를 높이려면 가능한 한 짧은(10cm 미만) 선을 사용하십시오.

  1. 결론: 엔지니어링의 보상 MOSI, SCLK 및 특히 CS(Chip Select)와 DC(Data/Command) 핀을 확인하십시오.
  2. 구성 확인: 보장 dtparam=spi=on 이 활성화되어 있는지 확인하십시오. udev.
  3. 드라이버 확인: 특정 화면의 컨트롤러 칩(예: ILI9341 대 ST7789)에 맞는 올바른 드라이버를 로드하고 있는지 확인하십시오. dtoverlay .

Q2: 3.5인치 SPI 화면에서 표준 데스크톱 GUI(예: Chromium 또는 VLC)를 실행할 수 있습니까?

A: 기술적으로는 가능하지만, 실제로는 불가능합니다. SPI 버스는 320×480 픽셀을 초당 60프레임으로 전송할 대역폭이 충분하지 않습니다. 비디오 재생 시 심한 화면 찢어짐이 발생하며, 데스크톱 UI는 매우 느리게 반응할 것입니다. 데스크톱 환경이나 비디오 재생을 위해서는 MIPI DSI 또는 HDMI 디스플레이를 사용해야 합니다. SPI 화면은 단순하고 정적인 GUI, 버튼 및 텍스트 표시용으로 적합합니다.

Q3: 터치스크린 클릭은 등록되지만 마우스 커서가 화면 반대쪽으로 이동합니다. 어떻게 해결합니까?

A: 터치 축이 디스플레이 축과 반대로 설정된 경우입니다. 이는 소프트웨어에서 디스플레이를 회전시킨 경우(예:, display_lcd_rotate=2) 터치 매트릭스를 회전시키지 않아 발생합니다. X축과 Y축을 교환하거나 반전시키기 위해 도구는 쓸모없어졌습니다. 오늘날 터치스크린은 규칙 또는 Wayfire/X11 구성 내에서 변환 매트릭스를 적용해야 합니다.

Q4: LCD 화면을 추가하면 Raspberry Pi 전원 공급 장치에 과부하가 걸릴까요?

A: Pi 모델과 화면 크기에 따라 가능합니다. Raspberry Pi 4 또는 5는 견고한 5.1V / 3A ~ 5A 전원 공급 장치가 필요합니다. 3.5인치 SPI 화면의 LED 백라이트는 약 100mA ~ 150mA를 소모하며, 이는 5V GPIO 핀이 안전하게 처리할 수 있습니다. 그러나 7인치 또는 10인치 화면은 500mA에서 1A 이상을 소모할 수 있습니다. 5인치보다 큰 화면의 경우, 저전압 스로틀링(노란색 번개 아이콘으로 표시)을 방지하기 위해 Pi의 GPIO 핀이 아닌 외부 전용 USB 전원 공급 장치로 화면에 전원을 공급해야 합니다.

Q5: Raspberry Pi Compute Module을 사용하여 상용 제품을 제작하려고 합니다. SPI를 사용해야 할까요?

A: 아닙니다. Compute Module 4(CM4) 또는 CM5를 사용하여 상용 제품으로 전환하는 경우, 사용자 정의 캐리어 보드에서 MIPI DSI 라인을 배선하거나 DPI(병렬) 인터페이스를 활용해야 합니다. 이렇게 하면 디스플레이 렌더링이 하드웨어 GPU로 오프로드되어 CPU가 실제 애플리케이션 로직을 실행할 수 있게 되며, 부드럽고 전문적인 60 FPS 애니메이션을 보장합니다.