เริ่มจากอินเทอร์เฟซ
อุปกรณ์ต่อพ่วง LCD ของ ESP32-S3 รองรับ SPI, QSPI, 8080 แบบขนาน (I80) และ RGB 16-bit แต่ละแบบมีช่วงความละเอียดที่เหมาะสม:
อินเทอร์เฟซ | จอทั่วไป | ความละเอียด | ต้องใช้ PSRAM? |
|---|---|---|---|
SPI | ST7789, ILI9341, GC9A01 | 240×240 ถึง 320×240 | ไม่ |
QSPI | LCD/AMOLED ทรงกลม | 360×360, 466×466 | มีประโยชน์ |
8080 (I80) | ST7796S, ILI9488 | 320×480 | ไม่ |
RGB 16-bit | ST7701S, 40 ขาทั่วไป | 480×480 ถึง 800×480 | ใช่ (octal) |
ทำไม RGB ต้องใช้ PSRAM
จอ RGB ไม่มีหน่วยความจำเฟรมภายใน ESP32-S3 ต้องรีเฟรชทุกพิกเซลต่อเนื่องจากเฟรมบัฟเฟอร์: 750 KB สำหรับ 800×480 ที่ RGB565 ซึ่งใส่ได้เฉพาะใน PSRAM และแบนด์วิดท์ PSRAM ถูกแบ่งกับ CPU และ Wi-Fi เปิด bounce buffer ใน esp_lcd และตั้งพิกเซลคล็อกปานกลาง (ประมาณ 12–16 MHz) เพื่อป้องกันภาพเลื่อน
ชุดที่พิสูจน์แล้ว
- แผงสมาร์ทโฮมติดผนัง: 4″ 480×480 ST7701S + GT911
- HMI ตั้งโต๊ะ: RGB 5″ 800×480 + GT911
- ปุ่มหมุนหรืออุปกรณ์สวมใส่: ทรงกลม 1.28″ GC9A01 ผ่าน SPI
- จอแสดงสถานะขนาดกะทัดรัด: 1.54″–2.4″ ST7789V ผ่าน SPI
สแต็กซอฟต์แวร์
คอมโพเนนต์ esp_lcd ของ ESP-IDF รองรับอินเทอร์เฟซทั้งหมดนี้ LVGL ทำงานอยู่ด้านบนสำหรับ UI และ ESPHome รองรับจอเดียวกันจำนวนมากสำหรับโปรเจกต์ Home Assistant
เมื่อ ESP32-S3 ไม่เพียงพอ
สำหรับ 1024×600 ขึ้นไป วิดีโอ หรือจอ MIPI DSI ให้เปลี่ยนไปใช้ ESP32-P4 (โฮสต์ MIPI DSI) หรือ SoC Linux เช่น RK3566/RK3568
รายละเอียดเพิ่มเติม: ความเข้ากันได้ของจอกับ ESP32-S3
คำถามที่พบบ่อย
ESP32-S3 ขับจอใหญ่ที่สุดได้เท่าใด?
ในทางปฏิบัติคือ 800×480 ผ่าน RGB 16-bit พร้อม PSRAM แบบ octal ส่วน 1024×600 ทำได้แต่เหลือแบนด์วิดท์หน่วยความจำสำหรับแอปพลิเคชันและ Wi-Fi น้อยมาก
จอ ESP32-S3 ต้องใช้ PSRAM หรือไม่?
ไม่จำเป็นสำหรับจอ SPI หรือ QSPI ที่มีหน่วยความจำบนชิป จอ RGB ต้องมีเฟรมบัฟเฟอร์เต็ม PSRAM แบบ octal จึงแทบจำเป็น
ตัวควบคุมระบบสัมผัสใดทำงานกับ ESP32-S3 ได้ดีที่สุด?
ตัวควบคุมแบบคาปาซิทีฟระดับ GT911 และ FT6336 ผ่าน I2C ได้รับการรองรับอย่างดีใน ESP-IDF, LVGL และ ESPHome