Частота кадров (частота обновления) дисплея
У дисплея с собственным контроллером две разные «частоты кадров». Одна — сколько раз в секунду контроллер обновляет стекло из своей памяти, она задаётся регистром и не зависит от программы. Другая — сколько раз в секунду программа успевает перерисовать картинку. Путать их — частая ошибка.
Обновлено Редакция GAW
Частота кадров (frame rate, refresh rate) дисплея с собственным контроллером — сколько раз в секунду контроллер перерисовывает панель из своей памяти. Её задаёт генератор и регистры контроллера, и она не зависит от того, как часто программа меняет изображение.
Формула ILI9341
Для TFT-контроллера ILI9341 даташит даёт:
Число тактов на строку задаёт параметр RTNA команды B1h, коэффициент деления — DIVA, VBP и VFP — служебные строки до и после видимых. По умолчанию RTNA = 11011, это 70 Гц; таблица даташита охватывает диапазон от 61 до 119 Гц. Для RGB-интерфейса, где развёртку задаёт сам микроконтроллер, ILI9341 приводит пример: 70 Гц × 324 строки × 280 тактов ≈ 6,35 МГц тактовой частоты пикселей.
У знакового HD44780 кадровая частота зависит от duty: при генераторе 270 кГц и 1/16 duty кадр длится 11,9 мс, частота 84,3 Гц.
Сколько кадров успевает программа
Обновить картинку — значит передать её в память контроллера. Полный кадр 240 × 320 в 16-битном цвете — 1 228 800 бит. По даташиту ILI9341 цикл записи по SPI не короче 100 нс, то есть до 10 Мбит/с, и полный кадр займёт около 123 мс — не больше 8 кадров в секунду, хотя панель обновляется 70 раз. Поэтому для анимации перерисовывают только изменившееся окно или переходят на параллельный интерфейс. Как устроен обмен по SPI и сколько длится передача — в инструменте «Кадр SPI».
Разрывы изображения
Если программа пишет в память в тот момент, когда контроллер читает её на панель, верх кадра показывает новое изображение, а низ — старое. Синхронизацию с развёрткой даёт сигнал Tearing Effect.
Частые вопросы
Почему дисплей на ILI9341 по SPI показывает всего несколько кадров в секунду?
Панель контроллер обновляет 70 раз в секунду, но новую картинку надо передать в его память. Полный кадр 240 × 320 по 16 бит — это 1 228 800 бит. При минимальном цикле записи SPI 100 нс по даташиту ILI9341 передача занимает около 123 мс, то есть не больше 8 полных кадров в секунду. Помогает перерисовка только изменившегося окна.
Можно ли менять частоту кадров ILI9341?
Да, командой B1h: параметр RTNA задаёт число тактов на строку, а DIVA — делитель. По таблице даташита частота меняется от 61 до 119 Гц, по умолчанию 70 Гц. Для частичного режима и режима 8 цветов есть отдельные команды B3h и B2h.
Зачем знать частоту кадров знакового ЖКИ?
Она пропорциональна частоте генератора контроллера, которую у HD44780U задаёт внешний резистор встроенного генератора. По даташиту при 270 кГц и 1/16 duty кадр длится 11,9 мс, это 84,3 Гц. Если генератор уходит от номинала, вместе с кадровой частотой меняются и времена выполнения команд, которые даташит тоже приводит для 270 кГц.
Источники
- Ilitek. ILI9341 a-Si TFT LCD Single Chip Driver 240RGBx320 Resolution and 262K color, Specification V1.10 (ILI9341_DS_V1.10) — разд. 8.3.2, команда B1h FRMCTR1: частота кадров = fosc / (тактов на строку × коэффициент деления × (строк + VBP + VFP)); RTNA задаёт такты на строку, по умолчанию 11011 — 70 Гц, диапазон таблицы от 61 до 119 Гц; пример для RGB-интерфейса: 70 Гц × (2 + 320 + 2) строки × (10 + 20 + 240 + 10) тактов = 6,35 МГц; разд. 18.3.4: цикл записи по 4-проводному SPI twc не короче 100 нс
- Hitachi. HD44780U (LCD-II) Dot Matrix Liquid Crystal Display Controller/Driver, ADE-207-272(Z), Rev. 0.0, 1999 — рис. 22: при частоте генератора 270 кГц (такт 3,7 мкс) кадр при 1/8 duty — 3,7 мкс × 400 × 8 = 11,9 мс (84,3 Гц), при 1/11 — 16,3 мс (61,4 Гц), при 1/16 — 3,7 мкс × 200 × 16 = 11,9 мс (84,3 Гц)
Нашли ошибку?
Смотрите также
- TFT на ILI9341Питание, SPI с D/CX, RGB565 и RGB666, окно записи, поворот, инициализация
- HD44780 и LCD 1602Распиновка 1602, команды, инициализация, I²C, кириллица, CGRAM
- Tearing Effect (TE)Разрыв кадра при записи в память дисплея и сигнал синхронизации TE
- Контроллер и драйвер дисплеяМикросхема, которая хранит изображение и управляет строками и столбцами панели
- Duty и bias ЖК-индикатораКоэффициент мультиплексирования и деление напряжения при управлении ЖК-панелью
- Кадр SPIДиаграмма режимов 0–3, время передачи, предельная частота