ทำไมบอร์ดเดียวกันจึงอาจมีตัวควบคุมต่างกัน
บอร์ดจอราคาประหยัดสร้างจากจอที่ซื้อในตลาดเปิด เมื่อล็อตหนึ่งเปลี่ยนผู้จำหน่าย ตัวควบคุมก็อาจเปลี่ยนด้วย ขณะที่ชื่อบอร์ด PCB และผังขายังคงเหมือนเดิม ESP32-2432S028R (Cheap Yellow Display) และ ESP32-2432S024 ต่างมีทั้งรุ่น ILI9341 และ ST7789
ระบุจากอาการ
สิ่งที่เห็นเมื่อใช้การตั้งค่า ILI9341 | สาเหตุที่เป็นไปได้ | วิธีแก้ |
|---|---|---|
จอขาวหรือว่าง แบ็คไลท์ติด | ตัวควบคุมเป็น ST7789 | เปลี่ยนเป็นไดรเวอร์ ST7789 |
มีภาพ แต่สีดูเป็นเนกาทีฟ | จอ ST7789 ต้องกลับสี | สลับการกลับสี ( |
สีแดงและน้ำเงินสลับกัน | ลำดับสี | ตั้งลำดับ BGR ( |
ภาพกลับด้านหรือเลื่อน | การตั้งค่าการหมุน / การเข้าถึงหน่วยความจำ | เปลี่ยนการหมุน (MADCTL) |
มืดทั้งหมด | ขาแบ็คไลท์ผิดหรือถูกใช้ซ้ำ | ตรวจสอบ GPIO ของแบ็คไลท์ |
เปลี่ยน การตั้งค่าทีละอย่าง และเก็บตัวอย่างที่ใช้งานได้ไว้เปรียบเทียบ
ระบุโดยการอ่าน ID
หากบอร์ดต่อสาย MISO ของจอไว้ คุณสามารถอ่าน ID ของตัวควบคุมแทนการเดาได้ ILI9341 ตอบ 0x9341 ต่อคำสั่ง Read ID4 (0xD3) ใน TFT_eSPI tft.readcommand8(0xD3, n) อ่านไบต์ที่ n ของรีจิสเตอร์ หากไม่ได้ 0x93 และ 0x41 ให้ลองไดรเวอร์ ST7789 บอร์ดที่ไม่มี MISO อ่านไม่ได้ ให้ใช้ตารางอาการแทน
การตั้งค่าที่แตกต่าง
รายการ | ILI9341 | ST7789 |
|---|---|---|
ไดรเวอร์ TFT_eSPI | | |
LovyanGFX | | |
ESP-IDF | | |
การกลับสี | มักปิด | มักเปิด |
เทมเพลตสำหรับทั้งสองอยู่ในหน้า ILI9341 และ ST7789V
การหลีกเลี่ยงปัญหานี้ในผลิตภัณฑ์
สำหรับผลิตภัณฑ์ ให้ระบุโมดูลที่ datasheet ระบุชื่อตัวควบคุม และผู้จำหน่ายกำหนดตัวควบคุมคงที่ต่อล็อตการผลิต เพื่อไม่ให้เฟิร์มแวร์เสียระหว่างล็อต โมดูล SPI 2.8 นิ้ว 240×320 ของเราใช้ ST7789V ที่ระบุไว้ ตัวอย่างเริ่มที่ 1 ชิ้น
คำถามที่พบบ่อย
โค้ด ILI9341 รันบน ST7789 ได้หรือไม่?
ไม่ได้อย่างน่าเชื่อถือ ทั้งคู่เป็นตัวควบคุม 240×320 แต่ลำดับการเริ่มต้นต่างกัน จึงควรเปลี่ยนไดรเวอร์แทนการแก้โค้ด ILI9341
ทำไมสีบนจอ ST7789 ของฉันกลับด้าน?
จอ ST7789 จำนวนมากต้องเปิดการกลับสี (INVON) เปิด TFT_INVERSION_ON หรือเรียก tft.invertDisplay(true)
จะอ่าน ID ของตัวควบคุมได้อย่างไร?
เมื่อต่อ MISO ไว้ ให้อ่านรีจิสเตอร์ 0xD3 (Read ID4): ILI9341 คืนค่า 0x93 0x41 หากไม่มี MISO ให้ระบุจากอาการ

