ILI9881C 是什么
ILI9881C 是 Ilitek 面向 MIPI DSI TFT 面板的驱动芯片,通常用于 720×1280 或 800×1280 的竖屏面板。它没有 SPI 或 RGB 像素接口:指令和像素数据都通过 DSI 传输。Ilitek 并未公开其数据手册,因此实用的参考资料是主线 Linux 驱动 panel-ilitek-ili9881c.c,以及面板厂商提供的初始化代码表。
同一颗控制器,多套初始化代码表
Linux 驱动并非只有一份配置。它为所支持的每一款面板都单独保存了一套初始化代码表、显示时序和通道数。主线内核中列出的面板包括:
- Raspberry Pi Touch Display 2,5″ 和 7″(
raspberrypi,dsi-5inch、raspberrypi,dsi-7inch):720×1280,2 条数据通道。 - Waveshare 7.0″ DSI Touch A:2 条数据通道。
- Banana Pi、Startek、TDO、Feixin、Bestar、Wanchanglong 和 Ampire 的面板:720×1280 或 800×1280,按面板不同使用 2 或 4 条通道。
使用同一控制器的两块面板,仍可能需要不同的初始化代码表和时序。如果你从另一块板子照搬初始化代码表,即使 DSI 链路已正常建立,屏幕也可能黑屏或出现条纹。请务必从适配你Exact面板的代码表入手。
主线 Linux 中有 ILI9881C 驱动,但没有 ILI9881D 的条目。请将 ILI9881D 面板(例如我们的 PJ5015B14(4.99″ 720×1280 IPS))视为需要依据面板数据手册单独准备初始化代码表和时序。
Linux 驱动中的上电时序
主线驱动按以下顺序点亮面板:
- 先使能 IOVCC,等待 5 ms,再使能主电源并等待 5 ms。
- 拉低复位 20 ms,释放复位,然后等待 20 ms。
- 发送面板的初始化代码表。ILI9881C 使用页切换命令来访问其厂商寄存器。
- 切回第 0 页,使能 Tearing Effect 输出,并发送 Exit Sleep 命令。
- 等待 120 ms,然后发送 Display On 命令。
Raspberry Pi:Touch Display 2
根据 Raspberry Pi 官方文档,使用以下 overlay 加载 Touch Display 2:
dtoverlay=vc4-kms-dsi-ili9881-5inchdtoverlay=vc4-kms-dsi-ili9881-7inch
如需使用另一个 DSI 接口,请添加 ,dsi0。5″ 和 7″ 两款均为 720×1280 分辨率并支持五点触控。10″ 型号采用不同的控制器和 overlay(vc4-kms-dsi-ili79600-10-1inch),并且需要 4 条 DSI 通道。
在 Pi 上使用定制的 ILI9881C 或 ILI9881D 面板,需要一个能匹配到相应面板条目的设备树 overlay。只有当面板确实符合该初始化代码表和时序时,才能复用 Touch Display 2 的 overlay。
ESP32-P4 与 M5Stack Tab5
ESPHome 的 mipi_dsi 驱动可在 ESP32-P4 上驱动 ILI9881C 面板,支持 1 或 2 条数据通道(默认为 2)。M5Stack Tab5 充分说明了这一选择的脆弱性。ESPHome 文档记载了三个硬件版本:
- 2025 年 10 月 14 日之前生产:采用 ILI9881C 显示驱动,搭配独立的 GT911 触控控制器。请使用型号
M5STACK-TAB5。 - 之后的批次:采用显示与触控一体的控制器,即 ST7123(
M5STACK-TAB5-ST7123)或 ST7121(M5STACK-TAB5-ST7121)。
这三套初始化序列不可互换。如果选错了显示型号,屏幕只会保持黑屏,且日志中不会有任何相关记录。而触控驱动选错则会输出错误日志,因此 ESPHome 建议先通过触控驱动来识别板子版本。
点亮排查清单
- 从面板数据手册确认通道数和 DSI 模式(video、sync-pulse 或 burst);主控端的设置必须与之匹配。
- 使用与你Exact面板型号对应的初始化代码表,而不仅仅是控制器名称相同就套用。
- 检查复位和供电时序。有些板子通过 IO 扩展器来控制复位或电源。
- 背光点亮但无画面,通常意味着初始化代码表错误、通道数错误或 DSI 时序不匹配,而不是面板损坏。
关于接口选型,请参阅 MIPI DSI 与 LVDS、eDP 的对比 以及 MIPI DSI 接口页面。
指南与对比
ILI9881C 排障与常见问题
能否将 Raspberry Pi Touch Display 2 的 overlay 用于其他 ILI9881C 面板?
只有当面板匹配该初始化代码表、时序和 2 通道配置时才可以。主线 Linux 驱动为每款受支持的面板都单独保存了初始化代码表、显示模式和通道数,因此另一款 ILI9881C 面板通常需要自己的面板条目和 overlay。
我的 M5Stack Tab5 在 ESPHome 中屏幕不亮,该选哪个型号?
ESPHome 文档记载了三个 Tab5 版本:2025 年 10 月 14 日之前生产的采用 ILI9881C 加 GT911 触控控制器(M5STACK-TAB5);之后的批次采用 ST7123(M5STACK-TAB5-ST7123)或 ST7121(M5STACK-TAB5-ST7121)。显示型号选错会静默失败,而触控驱动选错会输出错误日志,因此请先通过触控驱动识别板子版本。
ILI9881D 和 ILI9881C 是同一颗芯片吗?
不要想当然。Linux 主线内核中有 ILI9881C 驱动,但没有 ILI9881D 条目,因此 ILI9881D 面板需要根据面板数据手册使用自己的初始化表和时序。
ILI9881C 面板使用几条 DSI 通道?
取决于具体面板。在主线 Linux 驱动中,Raspberry Pi 5″/7″ 和 Waveshare 7″ 条目使用 2 lane,而多款 720×1280 和 800×1280 面板使用 4 lane。请让主机配置与您的面板数据手册保持一致。