Как работает OLED-модуль?
Мы не будем углубляться в детали технологии OLED, а сосредоточимся на том, что важно для наших упражнений. Разрешение модуля 128x64, то есть всего 128 × 64 = 8192 пикселя. Каждый пиксель можно включать и выключать независимо.
В даташите 128 столбцов называются сегментами (segments), а 64 строки — общими линиями (commons). Будьте внимательны и не путайте «commons» с «columns» (столбцы): слова похожи по написанию.
Память
Пиксели OLED-дисплея организованы по страничной структуре внутри GDDRAM (Graphics Display DRAM). GDDRAM разделена на 8 страниц (от страницы 0 до страницы 7), каждая из которых состоит из 128 столбцов (сегментов) и 8 строк (commons).
(Это изображение взято из даташита)
Сегмент — это 8 бит данных (один байт), и каждый бит представляет один пиксель. При записи данных записывается целый сегмент, то есть весь байт записывается сразу.
(Это изображение взято из даташита)
Сегменты и общие линии можно переназначать программно, что даёт механическую гибкость. Подробнее см. на 25-й странице даташита SSD1306.
Страницы и сегменты
Я создал изображение, которое показывает, как 128x64 пикселя делятся на 8 страниц. Затем я сосредоточился на одной странице, которая содержит 128 сегментов (столбцов) и 8 строк. Наконец, я увеличил один сегмент, чтобы показать, что он представляет собой 8 пикселей, расположенных друг над другом, и каждый пиксель соответствует одному биту.
![]()
Библиотека
Не переживайте, если эти понятия пока неясны: их можно изучить позже. Эти детали важнее, если вы собираетесь писать собственный драйвер для SSD1306 или браться за более сложные задачи. А пока у нас есть отличный крейт на Rust, который берёт эти вопросы на себя и упрощает работу.