E-paper дисплеи: устройство и управление на примере SSD1680
Дисплей на электронной бумаге хранит изображение без питания, читается на солнце и почти не потребляет энергии между обновлениями. Расплата — медленное обновление и сложное управление: панели нужны напряжения до 20 В и формы сигнала, зависящие от температуры. Разбираем всё это по даташиту контроллера SSD1680, на котором собраны многие модули 2,9 дюйма.
Обновлено Редакция GAW
Электронная бумага (e-paper, EPD — electrophoretic display) показывает изображение не светом и не поворотом поляризации, а положением заряженных частиц в ячейках. Crystalfontz описывает свой модуль 2,9 дюйма как TFT-панель с активной матрицей на электрофорезе: она бистабильна — изображение держится без питания, работает только на отражённом свете — без подсветки, и имеет очень широкий угол обзора.
Чем e-paper отличается от ЖК
| E-paper | ЖК | |
|---|---|---|
| Изображение без питания | сохраняется | пропадает: панели нужно постоянное управление |
| Свет | только отражённый, в темноте нужна фронтальная подсветка | отражённый или подсветка сзади |
| Обновление | медленное, панель занята формой сигнала | быстрое |
| Потребление | только при обновлении | постоянно |
Поэтому e-paper ставят туда, где изображение меняется редко, а питание ограничено: ценники, таблички, метеостанции на батарейках. Чем отличаются панели ЖК, рассказано в статье «Технологии ЖК».
Контроллер SSD1680
| Параметр | Значение по даташиту Solomon Systech |
|---|---|
| Панель | активная матрица, красный, чёрный и белый; до 176 столбцов × 296 строк |
| Питание VCI | 2,2–3,7 В, VDDIO соединяют с VCI |
| Память | две плоскости по 176 × 296 бит: чёрно-белая и красная |
| Напряжения панели | VGH 10–20 В, VGL = −VGH; VSH 2,4–17 В, VSL от −5 до −17 В — вырабатывает сам |
| Интерфейс | SPI по 4 линиям (с D/C#) или по 3 линиям (9-битный), запись до 20 МГц |
| Формы сигнала | 36 наборов LUT во встроенной OTP, выбор по температуре |
| Датчик температуры | встроенный, ±2 °C от −25 до 50 °C, или внешний по I²C |
| Частичное обновление | поддерживается |
Ключевое здесь — напряжения: затворам транзисторов матрицы нужно до 20 В, столбцам — от −17 до +17 В, и контроллер получает их встроенным умножителем от питания 2,2–3,7 В.
Интерфейс и BUSY
Сигналы — как у большинства дисплеев на SPI: CS# (выбор, активный низкий), SCL, SDA, D/C# (0 — команда, 1 — данные) и RES# (сброс, активный низкий). Вывод BS1 выбирает режим: низкий уровень — SPI по 4 линиям, высокий — по 3 линиям с девятым битом D/C. Бит фиксируется по нарастающему фронту SCL, старшим вперёд. Подробности шины — в статье об интерфейсе SPI.
Пятый сигнал — BUSY. Пока контроллер выполняет длительную операцию — обновление панели, загрузку формы сигнала, измерение температуры, — он занят, и команды посылать нельзя; Crystalfontz перечисляет для своего модуля вывод формы сигнала, программирование OTP и обмен с датчиком температуры. Полярность BUSY у контроллеров разная:
| Контроллер | Занят |
|---|---|
| SSD1680 | BUSY = 1 |
| контроллер модуля Crystalfontz CFAP128296D0 | BUSY = 0 |
Поэтому драйвер e-paper должен ждать нужного уровня BUSY, а не фиксированную паузу, и полярность нужно проверить по даташиту конкретного модуля.
Память
Изображение хранится в двух плоскостях. Команда 0x24 пишет в чёрно-белую: бит 1 — белая точка, 0 — чёрная. Команда 0x26 пишет в красную: 1 — красная точка, 0 — не красная. Каждый байт — 8 соседних точек по оси X (адреса X 0x00–0x15 для 176 точек), окно записи задают команды 0x44 и 0x45, начальный адрес — 0x4E и 0x4F, направление обхода — 0x11.
Кадр панели 128 × 296 — 4736 байт на плоскость. На 20 МГц он передаётся за 4736 · 8 / 20 000 000 ≈ 1,9 мс, на 4 МГц — около 9,5 мс. Это ничтожно по сравнению со временем самого обновления: его длительность задаёт форма сигнала из LUT, и всё это время BUSY показывает занятость.
Порядок работы
Даташит SSD1680 приводит последовательность из шести шагов (рис. 9-1 и 9-2):
- Питание. Подать VCI и подождать 10 мс.
- Сброс. Аппаратный сброс RES#, затем программный — команда 0x12 — и пауза 10 мс.
- Начальные настройки. 0x01 — число строк драйвера, 0x11, 0x44, 0x45 — направление записи и размер окна памяти, 0x3C — форма сигнала для рамки.
- Форма сигнала. 0x18 — выбрать датчик температуры, затем 0x22 и 0x20 — загрузить LUT из OTP по измеренной температуре; дождаться окончания по BUSY.
- Изображение. 0x4E, 0x4F — адрес, 0x24 и 0x26 — данные плоскостей, 0x0C — плавный пуск умножителя, 0x22 и 0x20 — запустить обновление панели; дождаться окончания по BUSY.
- Завершение. Либо выключить питание VCI — изображение останется на панели, — либо перевести контроллер в глубокий сон командой 0x10 с параметром 0x03.
Сон и потребление
| Режим SSD1680 | Ток VCI | Память |
|---|---|---|
| Работа (обновление), VCI = 3,0 В | около 1000 мкА | доступна |
| Sleep, умножитель выключен | 20 мкА типично, 35 мкА максимум | доступна |
| Deep sleep 1 (0x10, 0x01) | 1 мкА типично, 3 мкА максимум | сохраняется, но недоступна |
| Deep sleep 2 (0x10, 0x03) | 0,7 мкА типично, 3 мкА максимум | не сохраняется |
Из глубокого сна контроллер выводит только аппаратный сброс — после него инициализацию повторяют с шага 2. В режиме 2 содержимое памяти теряется, и изображение для следующего обновления записывают заново. Изображение на панели при этом остаётся. Как устроены режимы сна микроконтроллеров, рассказано на странице «Режимы сна микроконтроллера».
Монохромный OLED с быстрым обновлением — в статье «OLED на SSD1306», остальные дисплеи — в разделе «Дисплеи».
Частые вопросы
Сохраняется ли изображение на e-paper без питания?
Да. Электрофоретическая панель бистабильна: изображение держится без напряжения. Поэтому в даташите SSD1680 предусмотрен режим работы, в котором после обновления питание контроллера полностью выключают. Перед выключением нужно дождаться, пока BUSY покажет окончание обновления.
Почему e-paper обновляется так медленно?
Частицы в панели перемещаются под действием последовательности импульсов разной полярности — формы сигнала из таблиц LUT. Контроллер подбирает её по температуре, и пока она выполняется, вывод BUSY показывает занятость. Передача кадра по SPI на 20 МГц занимает около 2 мс, а всё остальное время уходит на саму панель.
Что означает сигнал BUSY и как его обрабатывать?
BUSY показывает, что контроллер занят: выводит форму сигнала, программирует OTP или опрашивает датчик температуры. В это время команды посылать нельзя. Полярность у разных контроллеров разная: у SSD1680 занятость — высокий уровень, у контроллера модуля Crystalfontz CFAP128296D0 — низкий. Код должен ждать нужного уровня, а не фиксированную задержку.
Сколько потребляет e-paper в режиме ожидания?
У SSD1680 в глубоком сне 1 — 1 мкА типично и до 3 мкА с сохранением памяти, в глубоком сне 2 — 0,7 мкА типично без сохранения памяти. В рабочем режиме при обновлении — около 1 мА при 3,0 В. Выйти из глубокого сна можно только аппаратным сбросом.
Источники
- Solomon Systech. SSD1680: 176 Source × 296 Gate Red/Black/White Active Matrix EPD Display Driver with Controller, Rev 1.4, Apr 2021 (копия Newhaven Display) — разд. 2 — питание VCI 2,2–3,7 В, ОЗУ 2 × 176 × 296 бит, напряжения VGH до 20 В, SPI до 20 МГц, датчик температуры; таблица команд — 0x10, 0x12, 0x24, 0x26, BUSY; разд. 9 — порядок работы; DC характеристики — токи сна
- Crystalfontz. CFAP128296D0-0290 Graphic Module, Preliminary Data Sheet, 2017-02-09 — TFT-панель с активной матрицей на электрофорезе, бистабильная, чисто отражающая; 296 × 128 точек, 2,9 дюйма; BUSY активен низким уровнем у контроллера этого модуля
Нашли ошибку?
Смотрите также
- ЖК-дисплеиHD44780, KS0108, ST7920, TFT и OLED: типы модулей и выбор
- Технологии ЖК: TN, STN, FSTN, TFTTN, STN, FSTN и TFT, позитив и негатив, поляризаторы, угол обзора
- OLED на SSD1306Питание, I²C и SPI, адрес, память по страницам, команды, инициализация
- SPISCLK, MOSI, MISO, CS, режимы 0–3, daisy chain, частота, SPI в AVR
- Режимы снаSleep mode: Idle, Power-down, пробуждение и ток