Контроллер и драйвер дисплея
В описаниях модулей пишут то «контроллер ILI9341», то «драйвер ILI9341», и оба верны. Внутри таких микросхем две разные части: одна принимает команды и хранит картинку, другая раскачивает сотни выводов, идущих к стеклу. Разберём, что делает каждая.
Обновлено Редакция GAW
Контроллер дисплея — микросхема, которая принимает от микроконтроллера команды и данные, хранит изображение в собственной памяти и формирует развёртку изображения. Драйвер — выходная часть, которая подаёт напряжения на строки (общие электроды, COM или gate) и столбцы (сегменты, SEG или source) панели. В небольших дисплеях обе части совмещены в одном кристалле, поэтому одну и ту же микросхему называют то контроллером, то драйвером.
Два примера
| HD44780U | ILI9341 | |
|---|---|---|
| Тип панели | знаковый STN | цветной TFT 240 × 320 |
| Память | DDRAM 80 байт, CGRAM 64 байта | GRAM 172 800 байт |
| Выходы драйвера | 16 COM, 40 SEG | 320 gate, 720 source |
| Интерфейс | параллельный 4 или 8 бит | параллельный, RGB или SPI |
| Хранит | коды символов | цвет каждого пикселя |
HD44780 хранит не картинку, а коды символов: изображение он строит сам из знакогенератора. Его 40 сегментных выходов хватает на 8 символов шириной 5 точек, поэтому для строки из 16 символов ставят драйвер расширения. ILI9341 хранит цвет каждого из 76 800 пикселей — 18 бит на пиксель — и позволяет перезаписывать только выбранное окно.
Что следует для программы
Контроллер сам непрерывно обновляет панель с частотой кадров, независимо от микроконтроллера. Программа пишет в его память, а не в стекло, и скорость вывода ограничивает интерфейс, а не панель. Напряжения на стекле и схему их получения задаёт драйверная часть — для знаковых STN это мультиплексное управление с duty и bias.
Производители модулей иногда меняют микросхему без смены названия модуля: у 2,4-дюймового TFT Newhaven ревизия 7 даташита (2018) отмечена как «Updated for New Controller», а текущая ревизия называет контроллер ST7789VI. Команды ST7789 и ST7735 похожи на команды ILI9341, но не совпадают, поэтому инициализацию подбирают по фактическому контроллеру.
Частые вопросы
Почему один и тот же дисплей продают с разными контроллерами?
Модуль — это стекло плюс микросхема на шлейфе, и производитель модуля может сменить микросхему. У Newhaven NHD-2.4-240320CF в истории ревизий есть запись rev. 7 (2018) «Updated for New Controller», а текущая ревизия даташита называет контроллер ST7789VI. Команды инициализации у разных контроллеров отличаются, поэтому код подбирают по фактически установленной микросхеме, а не по размеру экрана.
Зачем контроллеру своя память?
Панель нужно непрерывно перерисовывать десятки раз в секунду, и делать это силами микроконтроллера неудобно. Контроллер хранит изображение в своей памяти — у ILI9341 это GRAM на 172 800 байт — и сам выводит его на стекло. Микроконтроллер пишет только то, что изменилось.
Можно ли подключить большой знаковый дисплей к одному HD44780?
HD44780U сам управляет 16 строками и 40 сегментами — этого хватает на 8 символов в строке. Для 16 символов в двух строках нужен 40-выходной драйвер расширения, который подключается к выводам CL1, CL2, D и M. В готовых модулях 1602 он уже стоит на плате.
Источники
- Hitachi. HD44780U (LCD-II) Dot Matrix Liquid Crystal Display Controller/Driver, ADE-207-272(Z), Rev. 0.0, 1999 — Features: 4- или 8-битный интерфейс, DDRAM 80 × 8 бит, CGROM на 240 символов, CGRAM 64 × 8 бит, драйвер 16 общих и 40 сегментных выходов; Liquid Crystal Display Driver Circuit — 16 common и 40 segment signal drivers; для дисплея 16 × 2 нужен один 40-выходной драйвер расширения (выводы CL1, CL2, D, M)
- Ilitek. ILI9341 a-Si TFT LCD Single Chip Driver 240RGBx320 Resolution and 262K color, Specification V1.10 (ILI9341_DS_V1.10) — разд. 1: однокристальный драйвер с 720-канальным драйвером истоков, 320-канальным драйвером затворов, GRAM 172 800 байт и источником питания; интерфейсы — параллельный MCU 8/9/16/18 бит, RGB 6/16/18 бит, SPI 3/4 линии; окно записи в GRAM; GRAM — 18 бит на пиксель; генератор тактов формирует все сигналы для дисплея и доступа к GRAM
- Newhaven Display. NHD-2.4-240320CF-CTXI#-F, 2.4" 240x320 TFT, Rev. 13 (05/16/2023) — Driver IC: ST7789VI; Controller Information — встроенный контроллер ST7789VI; в истории ревизий rev. 7 (2018) — Updated for New Controller
Нашли ошибку?
Смотрите также
- HD44780 и LCD 1602Распиновка 1602, команды, инициализация, I²C, кириллица, CGRAM
- TFT на ILI9341Питание, SPI с D/CX, RGB565 и RGB666, окно записи, поворот, инициализация
- TFT на ST7735 и ST7789Память и разрешения, SPI, цвет, поворот, смещение окна, инициализация
- OLED на SSD1306Питание, I²C и SPI, адрес, память по страницам, команды, инициализация
- Duty и bias ЖК-индикатораКоэффициент мультиплексирования и деление напряжения при управлении ЖК-панелью
- Частота кадров дисплеяСколько раз в секунду контроллер перерисовывает панель из своей памяти