Что такое ILI9881C
ILI9881C — это драйвер компании Ilitek для TFT-панелей с интерфейсом MIPI DSI, как правило портретных панелей 720×1280 или 800×1280. У него нет пиксельного интерфейса SPI или RGB: и команды, и пиксельные данные передаются по DSI. Ilitek не публикует даташит в открытом доступе, поэтому практическим ориентиром служит драйвер в mainline-ядре Linux, panel-ilitek-ili9881c.c, а также таблица инициализации от производителя вашей панели.
Один контроллер — много таблиц инициализации
Драйвер Linux — это не одна конфигурация. Для каждой поддерживаемой панели в нём предусмотрены отдельная таблица инициализации, тайминги дисплея и число lane. Панели, перечисленные в mainline:
- Raspberry Pi Touch Display 2, 5″ и 7″ (
raspberrypi,dsi-5inch,raspberrypi,dsi-7inch): 720×1280, 2 data lane. - Waveshare 7.0″ DSI Touch A: 2 data lane.
- Панели от Banana Pi, Startek, TDO, Feixin, Bestar, Wanchanglong и Ampire: 720×1280 или 800×1280, на 2 или 4 lane в зависимости от панели.
Две панели с одним и тем же контроллером могут требовать разные таблицы инициализации и тайминги. Если скопировать таблицу инициализации с другой платы, экран может остаться чёрным или показать полосы, даже если DSI-линк поднят. Отталкивайтесь от таблицы именно для вашей панели.
В mainline Linux есть драйвер ILI9881C, но записи для ILI9881D нет. Панель ILI9881D, например наша PJ5015B14 (4.99″ 720×1280 IPS), следует считать требующей собственной таблицы инициализации и таймингов из даташита панели.
Последовательность включения в драйвере Linux
Mainline-драйвер выводит панель на рабочий режим в таком порядке:
- Включается IOVCC, пауза 5 мс, затем включается основное питание и пауза 5 мс.
- Сброс удерживается 20 мс, снимается, затем пауза 20 мс.
- Передаётся таблица инициализации панели. ILI9881C использует команды переключения страниц для доступа к вендорским регистрам.
- Возврат на страницу 0, включение выхода tearing-effect и отправка Exit Sleep.
- Пауза 120 мс, затем отправка Display On.
Raspberry Pi: Touch Display 2
В документации Raspberry Pi для Touch Display 2 используются следующие оверлеи:
dtoverlay=vc4-kms-dsi-ili9881-5inchdtoverlay=vc4-kms-dsi-ili9881-7inch
Добавьте ,dsi0, чтобы использовать другой DSI-порт. Модели 5″ и 7″ — обе 720×1280 с пятиточечным тачем. Модель 10″ использует другой контроллер и оверлей (vc4-kms-dsi-ili79600-10-1inch) и требует четыре DSI lane.
Собственной панели на ILI9881C или ILI9881D на Raspberry Pi нужен device-tree оверлей, ссылающийся на подходящую запись панели. Повторное использование оверлея Touch Display 2 сработает, только если панель действительно соответствует той таблице инициализации и таймингам.
ESP32-P4 и M5Stack Tab5
Драйвер mipi_dsi в ESPHome работает с панелями ILI9881C на ESP32-P4, с 1 или 2 data lane (по умолчанию 2). M5Stack Tab5 показывает, насколько хрупок этот выбор. ESPHome описывает три аппаратные версии:
- Выпущенные до 14 октября 2025: дисплейный драйвер ILI9881C с отдельным тач-контроллером GT911. Используйте модель
M5STACK-TAB5. - Более поздние партии: интегрированный контроллер дисплея и тача — либо ST7123 (
M5STACK-TAB5-ST7123), либо ST7121 (M5STACK-TAB5-ST7121).
Три последовательности инициализации не взаимозаменяемы. Если выбрать неверную модель дисплея, экран просто останется тёмным, и в логе не будет ничего относящегося к делу. Неверный тач-драйвер, напротив, пишет ошибку в лог, поэтому ESPHome советует сначала определять плату по тач-драйверу.
Чек-лист запуска
- Уточните по даташиту панели число lane и режим DSI (video, sync-pulse или burst); настройки хоста должны им соответствовать.
- Используйте таблицу инициализации именно для вашей панели, а не просто по названию контроллера.
- Проверьте последовательность сброса и подачи питания. На некоторых платах сброс или управление питанием идёт через IO-экспандер.
- Подсветка горит, но изображения нет — обычно это неверная таблица инициализации, неверное число lane или несовпадение таймингов DSI, а не умершая панель.
О выборе интерфейса см. MIPI DSI vs LVDS vs eDP и страницу интерфейса MIPI DSI.
Руководства и сравнения
ILI9881C: устранение неисправностей и FAQ
Можно ли переиспользовать оверлей Raspberry Pi Touch Display 2 для другой панели ILI9881C?
Только если панель соответствует той таблице инициализации, таймингам и конфигурации на 2 lane. Драйвер mainline Linux хранит отдельные таблицу инициализации, режим и число lane для каждой поддерживаемой панели, поэтому другая панель на ILI9881C обычно требует собственной записи панели и своего оверлея.
Экран M5Stack Tab5 остаётся тёмным в ESPHome. Какую модель выбрать?
ESPHome описывает три версии Tab5: платы, выпущенные до 14 октября 2025, используют ILI9881C с тач-контроллером GT911 (M5STACK-TAB5); более поздние партии — ST7123 (M5STACK-TAB5-ST7123) или ST7121 (M5STACK-TAB5-ST7121). Неверная модель дисплея отказывает молча, а неверный тач-драйвер пишет ошибку в лог, поэтому сначала определяйте плату по тач-драйверу.
ILI9881D — это то же самое, что ILI9881C?
Не стоит полагаться на это. В основной ветке Linux есть драйвер ILI9881C, но записи для ILI9881D нет, поэтому для панели ILI9881D потребуется своя таблица инициализации и тайминги из даташита панели.
Сколько DSI lane использует панель на ILI9881C?
Зависит от панели. В драйвере основной ветки Linux записи для Raspberry Pi 5″/7″ и Waveshare 7″ используют 2 линии (lane), тогда как несколько панелей 720×1280 и 800×1280 используют 4. Согласуйте конфигурацию хоста с даташитом вашей панели.