Перейти к содержанию

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, поэтому всё, что сказано там об окне записи и командах, работает и здесь.

Память, разрешение и питание

ST7735ST7789V
Видеопамять132 × 162 × 18 бит240 × 320 × 18 бит
Разрешения132 × 162 или 128 × 160 — по выводам GM[2:0]240 × 320
Питание аналоговой части VDD2,6–3,3 В2,4–3,3 В
Питание логики VDDI1,65 В — VDD1,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
01112 бит, RGB44403h
10116 бит, RGB565 — два байта на точку05h
11018 бит, RGB66606h

Обычно передают 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 исправляет перепутанные красный и синий.

Инициализация

Минимальная последовательность по ограничениям из даташитов:

  1. Аппаратный сброс низким уровнем на RESX.
  2. 01h — программный сброс. ST7789V требует подождать 5 мс до следующей команды и 120 мс до команды выхода из сна.
  3. 11h — выход из сна. ST7735 требует подождать 120 мс до следующей команды, ST7789V — 5 мс (но 120 мс до повторного входа в сон); с ожиданием 120 мс подходит обоим.
  4. 3Ah, 55h — 16 бит на точку.
  5. 36h, параметр — ориентация и порядок цветов.
  6. 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 мс.

Источники

  1. 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
  2. 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 бит

Нашли ошибку?