TFT на ST7735 и ST7789: подключение и команды
ST7735 и ST7789 — контроллеры маленьких цветных TFT-дисплеев: 128 × 160 и 128 × 128 точек у первого, 240 × 320 и 240 × 240 у второго. Команды у них почти те же, что у ILI9341, а главные отличия — размер видеопамяти, из-за которого появляется смещение окна, и тайминги. Разбираем по даташитам Sitronix.
Обновлено Редакция GAW
ST7735 и ST7789 — однокристальные контроллеры цветных TFT-панелей фирмы Sitronix. Каждый содержит видеопамять, драйверы строк и столбцов, преобразователи напряжения для панели и принимает изображение по SPI или параллельной шине. На ST7735 собраны модули 1,44 и 1,8 дюйма с разрешением 128 × 128 и 128 × 160, на ST7789 — модули 1,3–2,4 дюйма с разрешением 240 × 240 и 240 × 320. Набор команд у них стандартный и почти совпадает с ILI9341, поэтому всё, что сказано там об окне записи и командах, работает и здесь.
Память, разрешение и питание
| ST7735 | ST7789V | |
|---|---|---|
| Видеопамять | 132 × 162 × 18 бит | 240 × 320 × 18 бит |
| Разрешения | 132 × 162 или 128 × 160 — по выводам GM[2:0] | 240 × 320 |
| Питание аналоговой части VDD | 2,6–3,3 В | 2,4–3,3 В |
| Питание логики VDDI | 1,65 В — VDD | 1,65–3,3 В |
| Такт SPI при записи / чтении | от 66 нс / от 150 нс | от 66 нс / от 150 нс |
| Рабочая температура | −30…85 °C | −30…85 °C |
Минимальный период такта 66 нс означает частоту SPI при записи до 15 МГц, при чтении — до 6,7 МГц. Логические входы обоих контроллеров рассчитаны на уровни до 3,3 В; модуль для 5-вольтовой платы должен иметь согласование уровней. Подсветка — отдельные светодиоды модуля.
SPI с выводом D/CX
Модули работают по 4-проводному SPI: SCL, SDA, CSX и D/CX (на модулях его подписывают DC или RS). Низкий уровень D/CX — байт команды, высокий — параметр или данные изображения; байты передаются старшим битом вперёд. Как и у ILI9341, данные защёлкиваются по нарастающему фронту SCL. Вывод сброса RESX подписывают RES или RST.
Цвет: команда 3Ah
Младшие три бита параметра команды 3Ah выбирают формат точки:
| Биты D2–D0 | Формат | Параметр у ST7735 |
|---|---|---|
| 011 | 12 бит, RGB444 | 03h |
| 101 | 16 бит, RGB565 — два байта на точку | 05h |
| 110 | 18 бит, RGB666 | 06h |
Обычно передают 3Ah, 55h или 3Ah, 05h: оба значения дают 16 бит на точку. У ST7789V старшая тетрада параметра задаёт формат RGB-интерфейса и при работе по SPI не важна, у ST7735 старшие биты не используются. Даташит ST7735 оговаривает тонкость: для чтения изображения из памяти формат нужно переключать на 18 бит (66h).
Окно записи и смещение
Изображение пишется в окно, заданное командами 2Ah (столбцы) и 2Bh (строки), после команды 2Ch — так же, как у ILI9341. Особенность этих контроллеров в том, что видеопамять часто больше панели:
- у ST7735 в режиме 132 × 162 к памяти подключают панели 128 × 160 и 128 × 128;
- у ST7789V память 240 × 320, а у многих модулей панель меньше, например 240 × 240.
Видимая часть панели занимает в памяти не обязательно левый верхний угол. Если окно записи задать без смещения, изображение окажется сдвинутым, а по краю останется полоса непрописанной памяти — «мусор». Смещение определяется тем, как производитель модуля подключил панель к выводам контроллера, и меняется при повороте: при отражении по одной оси видимая область оказывается у противоположного края памяти. Его либо подбирают, либо берут из библиотеки, в которой для каждого типа модуля записаны свои числа.
Поворот: команда 36h
Параметр команды 36h (MADCTL) у обоих контроллеров устроен как у ILI9341: D7 — MY (отражение по вертикали), D6 — MX (по горизонтали), D5 — MV (обмен строк и столбцов, альбомная ориентация), D4 — ML, D3 — порядок RGB или BGR, D2 — MH. Сочетания MV, MX и MY дают четыре поворота, бит D3 исправляет перепутанные красный и синий.
Инициализация
Минимальная последовательность по ограничениям из даташитов:
- Аппаратный сброс низким уровнем на RESX.
01h— программный сброс. ST7789V требует подождать 5 мс до следующей команды и 120 мс до команды выхода из сна.11h— выход из сна. ST7735 требует подождать 120 мс до следующей команды, ST7789V — 5 мс (но 120 мс до повторного входа в сон); с ожиданием 120 мс подходит обоим.3Ah, 55h— 16 бит на точку.36h, параметр— ориентация и порядок цветов.29h— включить изображение.
Как и у ILI9341, производители модулей добавляют к этому настройки частоты кадров, питания и гаммы (у ST7735 — команды B1h–B6h, C0h–C5h, E0h, E1h) под свою панель. Без них дисплей тоже включится, но контраст и цвета могут отличаться от задуманных; значения берут из документации модуля или из библиотеки.
Библиотеки
Для Arduino распространены библиотеки Adafruit ST7735 and ST7789 (один пакет для обоих контроллеров) и TFT_eSPI, для ESP-IDF — драйверы esp_lcd. В них уже выбраны смещения окна и последовательности инициализации для популярных модулей; при выборе типа модуля в библиотеке главное — угадать смещение, иначе появится полоса по краю.
Частые вопросы
Чем ST7789 отличается от ST7735?
Разрешением и памятью: у ST7735 видеопамять 132 × 162 точки, он управляет панелями 128 × 160 и меньше, у ST7789V — 240 × 320. Команды у обоих — стандартный набор (01h, 11h, 29h, 2Ah, 2Bh, 2Ch, 36h, 3Ah), формат цвета 16 бит на точку выбирается одинаково, тактовая частота SPI при записи по даташитам — до 15 МГц у обоих. Отличаются начальные настройки питания и гаммы, поэтому библиотеки держат для них отдельные последовательности инициализации.
Почему по краю экрана ST7735 полоса мусора или изображение сдвинуто?
Видеопамять ST7735 в режиме 132 × 162 больше панели 128 × 160 или 128 × 128, и видимая часть занимает в ней не левый верхний угол, а смещённую область. Если окно записи 2Ah/2Bh задано без этого смещения, изображение уезжает, а по краю остаются непрописанные строки. Смещение зависит от того, как панель подключена к контроллеру на конкретном модуле; его подбирают или берут из библиотеки, где модули различают по цвету защитной плёнки или названию.
С какой частотой SPI работают ST7735 и ST7789?
По даташитам Sitronix минимальный период такта SPI при записи — 66 нс у обоих контроллеров, то есть до 15 МГц, при чтении — 150 нс, около 6,7 МГц. Кадр 128 × 160 в 16-битном цвете — 40 960 байт, на 15 МГц он передаётся примерно за 22 мс; кадр 240 × 320 — 153 600 байт, около 82 мс.
Источники
- Sitronix. ST7735 262K Color Single-Chip TFT Controller/Driver, V2.1, 2010-02-01 — разд. 1–2 — 396 выходов на столбцы и 162 на строки, память 132 × 162 × 18 бит, разрешение 132 × 162 или 128 × 160 по выводам GM[2:0], питание VDD 2,6–3,3 В и VDDI 1,65 В–VDD, −30…85 °C, форматы 12, 16 и 18 бит; разд. 8.2 — такт SPI при записи от 66 нс, при чтении от 150 нс; описания команд 11h (ожидание 120 мс), 36h, 3Ah
- Sitronix. ST7789V 240RGB x 320 dot 262K Color with Frame Memory Single-Chip TFT Controller/Driver, Version 1.3, 2014-03 — память 240 × 320 × 18 бит, питание VDD 2,4–3,3 В и VDDI 1,65–3,3 В; такт SPI при записи от 66 нс, при чтении от 150 нс; команды 01h и 11h (5 и 120 мс), 36h, 3Ah — форматы 12, 16 и 18 бит
Нашли ошибку?
Смотрите также
- TFT на ILI9341Питание, SPI с D/CX, RGB565 и RGB666, окно записи, поворот, инициализация
- ЖК-дисплеиHD44780, KS0108, ST7920, TFT и OLED: типы модулей и выбор
- OLED на SSD1306Питание, I²C и SPI, адрес, память по страницам, команды, инициализация
- SPISCLK, MOSI, MISO, CS, режимы 0–3, daisy chain, частота, SPI в AVR
- Кадр SPIДиаграмма режимов 0–3, время передачи, предельная частота