ข้ามไปยังเนื้อหา
Display Engineer
การแก้ปัญหา

จอ Raspberry Pi ไม่ทำงาน? วิธีแก้ปัญหา DSI, HDMI และทัชสกรีนสำหรับ Pi 4 และ Pi 5

เช็กลิสต์ทีละขั้นตอนสำหรับจอ Raspberry Pi ที่หน้าจอดำ ไม่มีภาพ หมุนภาพผิดทิศทาง หรือดับเอง: สาย DSI และการจ่ายไฟ, config.txt, โหมด HDMI บน Bookworm, การหมุนภาพ, ทัชสกรีน และการตั้งค่าหน้าจอดับ

DEDisplay Engineer Applications Team · วิศวกรแอปพลิเคชันด้านจออัปเดต 19 ต.ค. 2569

เริ่มจากจุดนี้: คุณใช้การเชื่อมต่อแบบใดอยู่?

การเชื่อมต่อ

อาการที่พบทั่วไป

สิ่งที่ควรตรวจก่อน

สายริบบอน MIPI DSI (Touch Display ทางการ และแผงจอขนาด 5–10" ส่วนใหญ่)

ไฟแบคไลต์ไม่ติด หรือแบคไลต์ติดแต่หน้าจอดำ

ชนิดและทิศทางของสาย, ไฟเลี้ยงจอ, config.txt

HDMI (จอมอนิเตอร์, บอร์ดไดรเวอร์ HDMI)

"No signal", ความละเอียดผิด, จอดำหลังบูต

พอร์ตที่ใช้, การบังคับโหมดด้วย video=

SPI บนหัว GPIO (แผงจอขนาดเล็ก 2.4–3.5")

จอขาว ไม่มีอะไรแสดงหลังเดสก์ท็อปเริ่มทำงาน

ไดรเวอร์และโอเวอร์เลย์ที่ได้รับจากผู้ขายแผงจอ

ทำตามหัวข้อของการเชื่อมต่อที่คุณใช้ตามลำดับ แต่ละขั้นตอนช่วยตัดปัจจัยเกิดปัญหาออกไปหนึ่งอย่าง และขั้นตอนช่วงต้นคือสาเหตุที่พลาดกันบ่อยที่สุด

จอ DSI: หน้าจอดำหรือมีแค่ไฟแบคไลต์

1. ใช้สายริบบอนที่ถูกต้องสำหรับ Pi ของคุณ

Raspberry Pi 5 มีขั้วต่อ DSI ที่เล็กกว่ารุ่นก่อนหน้า สายที่แถมมากับจอรุ่นเก่าจึงเสียบไม่ได้ ตามเอกสารของ Raspberry Pi ระบุว่า:

  • Raspberry Pi 4 และรุ่นก่อนหน้า: สาย FFC (flat flexible cable) แบบ 15 เส้นต่อ 15 เส้น
  • Raspberry Pi 5: สาย FFC แบบ 22 เส้นต่อ 15 เส้น (Standard – Mini) โดยฝั่ง 22 เส้นคือฝั่งที่เล็กกว่า ต้องเสียบเข้าที่ตัว Pi ส่วนฝั่งที่ใหญ่กว่าเสียบเข้าที่จอ
  • Touch Display 2 ขนาด 10 นิ้ว บน Raspberry Pi 5: ใช้สาย FFC แบบ 22 เส้นต่อ 22 เส้น Mini – Mini ที่แถมมาให้

รุ่น Raspberry Pi Zero ไม่มีขั้วต่อ DSI จึงใช้จอ DSI ไม่ได้เลย

2. ตรวจว่าเสียบสายแน่นและถูกด้าน

เปิดที่หนีบของขั้วต่อ เสียบสายจนสุดแล้วปิดที่หนีบล็กกลับ บน Raspberry Pi 4B และรุ่นก่อนหน้า ขั้วต่อจอจะระบุว่า DISPLAY (ไม่ใช่ CAMERA) และขั้วโลหะต้องหันไปทางพอร์ต Ethernet และ USB-A สายที่เสียบกลับด้าน เสียบครึ่งเดียว หรือเสียบผิดเข้าขั้วกล้อง ให้อาการเหมือนจอเสียทุกประการ

3. จ่ายไฟให้จอแยกต่างหากที่ 5 V

จอทางการของ Raspberry Pi จ่ายไฟแยกจากสาย DSI:

  • Touch Display รุ่นแรก: ใช้สายจั๊มเปอร์จากหัว GPIO ของ Pi สายดำเข้าพิน 6 (GND) และสายแดงเข้าพิน 4 (5 V) หรือพิน 2 หากพิน 4 ถูกใช้อยู่ คุณสามารถใช้แหล่งจ่ายไฟ micro USB แทนได้ แต่ถ้าใช้แล้ว ห้ามต่อสายไฟจาก GPIO เพิ่มอีก
  • Touch Display 2: ใช้สายไฟ GPIO ที่แถมมา ฝั่งหัวเล็กเสียบเข้าพอร์ต J1 ของจอ สายแดงเข้าพิน 2 และสายดำเข้าพิน 6

ถ้าไฟแบคไลต์ไม่ติดเลย ให้สงสัยเรื่องไฟเลี้ยงเป็นอย่างแรก แผงจอจากผู้ผลิตรายอื่นมักต้องมีไฟเลี้ยงแยกสำหรับแบคไลต์ ให้ตรวจสอบตามแผนผังการเดินสายของผู้ขาย

4. อย่าเพิ่มบรรทัด dtoverlay ที่ไม่จำเป็น

Raspberry Pi OS มาพร้อมค่า display_auto_detect=1 ใน /boot/firmware/config.txt ซึ่งเฟิร์มแวร์จะโหลดโอเวอร์เลย์สำหรับจอ DSI ที่จำได้โดยอัตโนมัติ บน Raspberry Pi ทั่วไป จอทางการจึง ไม่ต้องมี บรรทัด dtoverlay เพิ่ม การเพิ่มเข้าไปเอง โดยระบุขนาดหรือพอร์ตผิด เป็นสาเหตุที่พบบ่อยของอาการจอดำ

Raspberry Pi Compute Modules เป็นกรณีต่างออกไป: ไม่มีการตรวจจับจอ DSI อัตโนมัติ คุณจึงต้องเพิ่มโอเวอร์เลย์เอง ดังนี้:

  • Touch Display 2 ขนาด 5 นิ้ว: dtoverlay=vc4-kms-dsi-ili9881-5inch
  • Touch Display 2 ขนาด 7 นิ้ว: dtoverlay=vc4-kms-dsi-ili9881-7inch
  • Touch Display 2 ขนาด 10 นิ้ว: dtoverlay=vc4-kms-dsi-ili79600-10-1inch
  • Touch Display ขนาด 7 นิ้ว รุ่นแรก: dtoverlay=vc4-kms-dsi-7inch

ค่าเริ่มต้นคือพอร์ตที่ระบุว่า 1 ให้เติม ,dsi0 ต่อท้ายเพื่อใช้พอร์ต 0 (เช่น dtoverlay=vc4-kms-dsi-7inch,dsi0) สำหรับจอรุ่นแรก ให้ลบบรรทัด display_auto_detect ออกด้วย

5. แผงจอ DSI จากผู้ผลิตรายอื่นต้องมีโอเวอร์เลย์ของตัวเอง

การตรวจจับอัตโนมัติใช้ได้เฉพาะจอที่เฟิร์มแวร์จำได้ แผงจอ MIPI DSI จากผู้ผลิตรายอื่นต้องมี device-tree overlay ที่ตรงกับคอนโทรลเลอร์ จำนวนเลน และค่า timing ของแผงจอ ซึ่งโดยปกติจะได้รับจากผู้ขายแผงจอ หากโอเวอร์เลย์ของผู้ขายรองรับเคอร์เนลรุ่นเก่าหรือ Pi รุ่นอื่น แผงจอก็อาจยังคงดำอยู่แม้ต่อสายถูกต้อง ควรขอโอเวอร์เลย์ที่ทดสอบแล้วบนรุ่น Pi และเวอร์ชัน OS ที่คุณใช้ตรงกัน ดูรายละเอียดสิ่งที่ควรขอได้จาก หมายเหตุจอ Raspberry Pi 5 และ ภาพรวมจอ MIPI DSI ของเรา

จอแสดงผลผ่าน HDMI: ขึ้น "no signal" หรือความละเอียดไม่ถูกต้อง

1. ใช้พอร์ต HDMI ตัวแรก

บน Raspberry Pi 4B และ 5 พอร์ตที่ระบุว่า HDMI0 บนบอร์ดคือเอาต์พุตจอแสดงผลตัวแรก (HDMI-A-1 ใน Linux) หากใช้จอเพียงจอเดียว ให้เสียบที่พอร์ตนี้ก่อนทดสอบอย่างอื่น

2. การตั้งค่า HDMI ใน config.txt แบบเก่าใช้ไม่ได้อีกต่อไป

หลายคู่มือยังแนะนำให้ตั้งค่า hdmi_force_hotplug, hdmi_group และ hdmi_mode ใน config.txt ซึ่งเอกสารของ Raspberry Pi ปัจจุบันจัดให้ตัวเลือกเหล่านี้เป็น legacy options ที่ "don't work with Raspberry Pi OS Bookworm and later" เมื่อใช้กราฟิกไดรเวอร์แบบ KMS นั้น Linux เป็นผู้จัดการไปป์ไลน์การแสดงผลทั้งหมด รวมถึงเอาต์พุต HDMI ด้วย

3. บังคับโหมดด้วย video= ใน cmdline.txt

หากไม่ได้ระบุโหมดไว้ Pi จะอ่าน EDID ของจอแล้วเลือกความละเอียดเอง บอร์ดไดรเวอร์ HDMI ขนาดเล็กบางรุ่นรายงาน EDID ที่ไม่ตรงกับพาเนล ทำให้เกิด "no signal" หรือภาพถูกครอป ให้บังคับโหมดเนทีฟของพาเนลโดยเพิ่มพารามิเตอร์ video= ลงในบรรทัดเดียวของไฟล์ /boot/firmware/cmdline.txt เช่น video=HDMI-A-1:1024x600M@60 สำหรับพาเนล 1024×600 ที่ 60 Hz

รูปแบบคือ video=<display>:<width>x<height>M@<refresh> ใช้ HDMI-A-2 สำหรับพอร์ต HDMI ตัวที่สอง และ DSI-1 สำหรับจอแบบ DSI หรือ DPI ให้ดูค่าความละเอียดและอัตรารีเฟรชจากดาต้าชีตของพาเนล และคงทุกอย่างใน cmdline.txt ไว้ในบรรทัดเดียว

ภาพเอียงหรือกลับด้าน

  • Desktop: ไปที่ Preferences > Control Centre > Screens เลือกจอที่ต้องการ แล้วตั้งค่า Orientation เป็น Normal, Left, Inverted หรือ Right
  • Console only: ให้ขยายพารามิเตอร์ video= เช่น video=DSI-1:720x1280@60,rotate=90 และใช้ reflect_x, reflect_y หรือ reflect_xy เพื่อกลับภาพแบบกระจก

ข้อจำกัดสองข้อคือ จอที่เชื่อมต่อทั้งหมดใช้ค่า rotate= เดียวกันร่วมกัน และ rotate= หมุนเฉพาะเท็กซ์คอนโซลเท่านั้น แอปพลิเคชันที่วาดผ่าน DRM โดยตรง เช่น cvlc หรือแอป libcamera จำเป็นต้องใช้ตัวเลือกการหมุนของตัวเอง

ทัชสกรีนไม่ตรงกับภาพ

บนเดสก์ท็อป ให้ตั้งค่าการวางแนวใน Control Centre แล้วทัชจะตามมาเอง ในระบบที่ไม่ใช่เดสก์ท็อปซึ่งจอถูกหมุน ให้เพิ่มพารามิเตอร์ทัชลงใน overlay ของจอใน config.txt: invx และ invy กลับแกนใดแกนหนึ่ง swapxy สลับสองแกน และ disable_touch ปิดการทำงานของทัช เช่น dtoverlay=vc4-kms-dsi-ili9881-7inch,invx,invy จะกลับทั้งสองแกนบนจอ Touch Display 2 ขนาด 7 นิ้ว

สำหรับจอ 7 นิ้วรุ่นแรก ให้ลบ display_auto_detect=1 เมื่อเพิ่มทัชโอเวอร์เลย์ด้วยวิธีนี้ ทาง Raspberry Pi ระบุว่าการหมุนทัชใน device tree อาจขัดแย้งกับไลบรารีอินพุตของคุณ จึงควรหมุนอีเวนต์ทัชในไลบรารีหรือเดสก์ท็อปเท่าที่ทำได้

หน้าจอดับหลังจากผ่านไปสิบนาที

นั่นคือการ blank หน้าจอ ไม่ใช่ความผิดปกติ เมื่อเปิดใช้งาน Raspberry Pi OS จะ blank หน้าจอหลังไม่มีการใช้งาน 600 วินาที ปิดได้ใน Control Centre (สวิตช์ Screen Blanking) หรือด้วย sudo raspi-config > 2 Display Options > D2 Screen Blanking สำหรับเท็กซ์คอนโซล ให้เพิ่ม consoleblank=0 ลงใน cmdline.txt เพื่อไม่ blank หน้าจอเลย

เมื่อปัญหาอยู่ที่พาเนล ไม่ใช่ Pi

ถ้าพาเนลยังมืดอยู่บน Pi ที่ปกติดี ใช้สาย ไฟเลี้ยง และการตั้งค่าถูกต้อง ให้วัดแรงดันไฟเลี้ยงแบ็กไลต์และสลับพาเนลตัวที่สองเข้าไปก่อนแก้ซอฟต์แวร์ หากเป็นผลิตภัณฑ์จริง ไม่ใช่งานสร้างครั้งเดียว ให้เลือกพาเนลที่ซัพพลายเออร์ให้ overlay, timing และ power sequence ที่ตรงกับโฮสต์ของคุณพอดี บทความเปรียบเทียบอินเทอร์เฟซจอแสดงผลของเราอธิบายว่าเมื่อใด DSI หรือ HDMI จะเป็นตัวเลือกที่ดีกว่าสำหรับงานออกแบบบน Raspberry Pi

คำถามที่พบบ่อย

ทำไมจอของ Raspberry Pi 5 ถึงไม่ทำงานเมื่อใช้สายจากจอรุ่นเก่า

Raspberry Pi 5 ใช้คอนเน็กเตอร์ DSI แบบ 22 เส้นที่เล็กลง จอที่ใช้คอนเน็กเตอร์แบบ 15 เส้นจึงต้องใช้สายฟลัทเฟล็กซ์เบิลจาก 22 เส้นเป็น 15 เส้น โดยให้ปลาย 22 เส้นที่เล็กกว่าเสียบเข้าฝั่ง Pi

จำเป็นต้องใส่บรรทัด dtoverlay สำหรับ Raspberry Pi Touch Display ทางการหรือไม่

ไม่จำเป็นบน Raspberry Pi ทั่วไป: เมื่อตั้งค่า display_auto_detect=1 ซึ่งเป็นค่าเริ่มต้นใน Raspberry Pi OS เฟิร์มแวร์จะโหลด overlay ให้เองโดยอัตโนมัติ แต่ Compute Modules จะไม่ทำการตรวจจับอัตโนมัติของจอ DSI จึงต้องเพิ่ม overlay เช่น dtoverlay=vc4-kms-dsi-ili9881-7inch เข้าไปเอง

ทำไม hdmi_mode ถึงใช้ไม่ได้อีกแล้ว

hdmi_group, hdmi_mode และ hdmi_force_hotplug เป็นตัวเลือก legacy ของ config.txt ที่ใช้ไม่ได้กับ Raspberry Pi OS Bookworm ขึ้นไป ให้บังคับโหมดด้วย video= ใน cmdline.txt แทน เช่น video=HDMI-A-1:1024x600M@60

จะป้องกันไม่ให้หน้าจอ Raspberry Pi ปิดอัตโนมัติได้อย่างไร

ปิด Screen Blanking ใน Control Centre หรือใน raspi-config ภายใต้ 2 Display Options > D2 Screen Blanking สำหรับเท็กซ์คอนโซล ให้เพิ่ม consoleblank=0 ลงใน cmdline.txt

แหล่งที่มา

  1. เอกสาร Raspberry Pi: Touch Display 2
  2. เอกสาร Raspberry Pi: Touch Display (รุ่น 7 นิ้วตัวเดิม)
  3. เอกสาร Raspberry Pi: config.txt (display_auto_detect)
  4. เอกสาร Raspberry Pi: ตัวเลือก config.txt แบบเดิม (Legacy)
  5. เอกสาร Raspberry Pi: การตั้งค่าจอแสดงผล การหมุนหน้าจอ และการปิดหน้าจอ

ไม่แน่ใจว่าจอแบบใดเหมาะกับงานออกแบบของคุณ?

ส่งขนาด อินเทอร์เฟซ และโปรเซสเซอร์โฮสต์มาให้เรา วิศวกรจอจะตอบกลับภายใน 12 ชั่วโมงพร้อมตัวเลือก 2–3 รายการ datasheet และโค้ดเริ่มต้น ตัวอย่างเริ่มที่ 1 ชิ้น