Дисплей Nokia 5110 на PCD8544: подключение и команды
PCD8544 — контроллер монохромного ЖК 84 × 48 точек, на нём собраны модули, которые продают как дисплей от Nokia 5110. Он сам вырабатывает напряжение для панели, принимает данные по трём-четырём проводам и потребляет около 0,3 мА. Разбираем по даташиту Philips питание, интерфейс, устройство памяти, команды и подбор контраста.
Обновлено Редакция GAW
PCD8544 — однокристальный контроллер и драйвер монохромного ЖК: 48 выходов на строки, 84 на столбцы и память 48 × 84 бит. Всё, что нужно панели, — напряжение VLCD, промежуточные уровни смещения и тактовый генератор — он вырабатывает сам, а с микроконтроллером связан последовательной шиной. Модули, которые продают как дисплей от Nokia 5110, построены именно на нём: SparkFun публикует для них этот даташит Philips.
Основные характеристики
| Параметр | Значение по даташиту |
|---|---|
| Разрешение | 84 × 48 точек, мультиплексирование 1:48 |
| Питание логики VDD | 2,7–3,3 В |
| Напряжение панели VLCD | 6,0–8,5 В от встроенного генератора, 6,0–9,0 В от внешнего источника |
| Ток потребления | 240 мкА типично, 300 мкА максимум при VDD = 2,85 В и VLCD = 7,0 В; 1,5 мкА в Power-down |
| Интерфейс | последовательный: SCE, SCLK, SDIN, D/C и сброс RES |
| Частота SCLK | до 4,0 МГц при VDD = 3,0 В ± 10 % |
| Частота кадров | 67 Гц при тактовой частоте 32 кГц |
| Рабочая температура | −25…+70 °C |
Уровни входов — КМОП: единица от 0,7 VDD, ноль до 0,3 VDD, а напряжение на входах не должно выходить за VDD + 0,5 В. С микроконтроллером на 5 В сигналы согласуют — схемы на странице «Согласование уровней 3,3 и 5 В».
Интерфейс
| Сигнал | Назначение |
|---|---|
| SCE | выбор микросхемы, активный низкий: отрицательный фронт начинает передачу, пока SCE высокий, такты SCLK игнорируются |
| SCLK | тактовый сигнал, до 4 МГц |
| SDIN | данные; бит фиксируется по нарастающему фронту SCLK, старший бит первым |
| D/C | 0 — байт команды, 1 — байт данных для памяти; читается на восьмом такте байта |
| RES | сброс, активный низкий; обязателен после включения питания |
Это обычная однонаправленная шина SPI в режиме 0 или 3: SCE — chip select, SDIN — MOSI, чтения нет. На платах модулей сигналы подписывают по-разному, поэтому сверяйтесь с маркировкой конкретного модуля.
Сброс. После включения питания содержимое регистров и памяти не определено, и Philips предупреждает: без правильного сброса микросхема может быть повреждена. Импульс RES низкого уровня — не короче 100 нс и не позже 30 мс после подачи питания; держать RES в нуле можно и до появления питания.
Память и адресация
Память — 504 байта: 6 банков по 84 байта. Каждый байт — вертикальная полоска из 8 точек в одном столбце, младший бит сверху. Адрес X (0–83) — номер столбца, адрес Y (0–5) — номер банка, то есть полосы высотой 8 строк.
После записи каждого байта адрес увеличивается сам:
- горизонтальная адресация (V = 0) — растёт X, после X = 83 он возвращается в 0, а Y переходит к следующему банку;
- вертикальная адресация (V = 1) — растёт Y, после Y = 5 он возвращается в 0, а X переходит к следующему столбцу.
После X = 83, Y = 5 оба адреса возвращаются в 0, поэтому весь кадр передают одной посылкой из 504 байт без повторной установки адреса. На 4 МГц это 504 · 8 / 4 000 000 ≈ 1 мс.
Команды
Команды делятся на основной (H = 0) и расширенный (H = 1) наборы, бит H меняет команда Function set.
| Команда | Байт | Набор | Что делает |
|---|---|---|---|
| Function set | 0x20 + 4·PD + 2·V + H | любой | PD — Power-down, V — вертикальная адресация, H — расширенный набор |
| Display control | 0x08 — пусто, 0x0C — нормальный режим, 0x09 — все точки, 0x0D — инверсия | H = 0 | режим отображения (биты D и E) |
| Set Y address | 0x40 + Y | H = 0 | банк 0–5 |
| Set X address | 0x80 + X | H = 0 | столбец 0–83 |
| Temperature control | 0x04 + TC | H = 1 | температурный коэффициент VLCD |
| Bias system | 0x10 + BS | H = 1 | смещение; для 1:48 рекомендуется BS = 3, команда 0x13 |
| Set VOP | 0x80 + VOP | H = 1 | напряжение панели, VOP = 0–127 |
Данные (D/C = 1) записываются в память по текущему адресу в любом наборе команд.
Контраст: VOP, смещение и температура
Напряжение на панели задаёт регистр VOP:
Диапазон программирования по даташиту — от 3,00 до 10,68 В при комнатной температуре, но рабочий диапазон VLCD со встроенным генератором — 6,0–8,5 В, то есть VOP от 49 до 90, команды от 0xB1 до 0xDA. Оптимальное значение зависит от жидкого кристалла конкретной панели: даташит даёт для 1:48 VLCD = 6,06 · Vth, где Vth — порог кристалла. Поэтому VOP подбирают по изображению, начиная с середины диапазона. При VOP = 0 генератор выключен.
С понижением температуры кристаллу нужно большее напряжение, и PCD8544 повышает VLCD сам с одним из четырёх коэффициентов: 1, 9, 17 или 24 мВ/К (TC = 0–3). Philips предупреждает: из-за этого нельзя задавать VOP, при котором VLCD превысит 8,5 В при −25 °C.
Уровни смещения делятся в отношении R − R − nR − R − R, что даёт смещение 1/(n + 4). После сброса BS = 0, то есть n = 7 — значение для мультиплексирования 1:100. Для панели 1:48 даташит рекомендует n = 4 — смещение 1/8, команда 0x13. Без неё смещение остаётся рассчитанным на мультиплексирование 1:100, а не на 1:48.
Инициализация
Пример из таблицы 6 даташита и рекомендованное смещение:
| Шаг | D/C | Байт | Действие |
|---|---|---|---|
| 1 | — | — | импульс RES, затем SCE в ноль |
| 2 | 0 | 0x21 | Function set: PD = 0, V = 0, расширенный набор |
| 3 | 0 | 0x13 | Bias system: n = 4, смещение 1/8 для 1:48 |
| 4 | 0 | 0xB1–0xDA | Set VOP: подобрать контраст |
| 5 | 0 | 0x20 | Function set: основной набор, горизонтальная адресация |
| 6 | 0 | 0x0C | Display control: нормальный режим |
| 7 | 1 | 504 байта | кадр, начиная с X = 0, Y = 0 |
В примере Philips вместо шагов 3 и 4 стоит только 0x90 — VOP = 16; это демонстрация последовательности команд, а рабочее значение VOP для модуля подбирают отдельно.
Power-down. Перед переходом в Power-down память нужно заполнить нулями — иначе ток не опустится до указанных 1,5 мкА. Перед остановкой внешней тактовой частоты контроллер тоже переводят в Power-down, чтобы на панели не осталось постоянного напряжения.
На уровне микросхемы
Если PCD8544 ставят не модулем, а на собственную плату со стеклом, к выводам VDD и VLCD нужны внешние конденсаторы не меньше 1,0 мкФ, а для меньших пульсаций — больше. Неиспользуемые выходы оставляют свободными, а тестовые выводы T1, T3 и T4 соединяют с VSS, T2 оставляют свободным.
Другие монохромные дисплеи — OLED на SSD1306 и графические ЖК в разделе «Дисплеи». Чем технология этой панели отличается от других, рассказано в статье «Технологии ЖК».
Частые вопросы
Можно ли подключить Nokia 5110 к Arduino Uno напрямую?
Логику PCD8544 питают от 2,7–3,3 В, и входное напряжение не должно превышать питание больше чем на 0,5 В. Выходы Arduino Uno на 5 В дают единицу около 5 В, поэтому сигналы SCLK, SDIN, D/C, SCE и RES подают через согласователь уровней или делители, а модуль питают от 3,3 В.
Почему на дисплее ничего не видно или он весь тёмный?
Скорее всего, неверно задан контраст — регистр VOP. Напряжение панели VLCD = 3,06 + VOP · 0,06 В, и после сброса VOP = 0: генератор выключен, изображения нет. Слишком большое VOP делает фон тёмным. Подбирают VOP так, чтобы VLCD было в диапазоне 6,0–8,5 В, то есть VOP от 49 до 90 (команды 0xB1–0xDA), и уточняют по виду изображения.
С какой частотой работает шина PCD8544?
До 4 МГц при питании 3,0 В ± 10 %. Данные фиксируются по нарастающему фронту SCLK, старшим битом вперёд, — подходят режимы SPI 0 и 3. У ATmega328P на 16 МГц делитель fosc/4 даёт ровно 4 МГц, и полный кадр из 504 байт передаётся примерно за 1 мс.
Сколько потребляет дисплей Nokia 5110?
Контроллер с включённым генератором напряжения панели — 240 мкА типично и до 300 мкА при 2,85 В, в режиме Power-down — около 1,5 мкА, если память заполнена нулями. Подсветка модуля в эти цифры не входит: её ток зависит от платы модуля и резистора на ней.
Источники
- Philips Semiconductors. PCD8544: 48 × 84 pixels matrix LCD controller/driver, Product specification, 1999 Apr 12 (копия Adafruit) — разд. 1 — питание 2,7–3,3 В, VLCD 6,0–8,5 В, шина до 4 Мбит/с; разд. 7 — память 6 × 84 байт и адресация; табл. 1, 2 — команды; табл. 4 — смещение; разд. 8.9 — VOP; разд. 11, 12 — DC и AC характеристики; табл. 6 — пример программирования
- SparkFun Electronics. Nokia5110.pdf — даташит к модулю Nokia 5110 (тот же документ Philips PCD8544) — SparkFun публикует для модулей Nokia 5110 даташит контроллера PCD8544
- Microchip. ATmega48A/PA/88A/PA/168A/PA/328/P Data Sheet (DS40002061B) — табл. 19-2 — режимы SPI, табл. 19-5 — частота SCK fosc/4
Нашли ошибку?
Смотрите также
- ЖК-дисплеиHD44780, KS0108, ST7920, TFT и OLED: типы модулей и выбор
- OLED на SSD1306Питание, I²C и SPI, адрес, память по страницам, команды, инициализация
- SPISCLK, MOSI, MISO, CS, режимы 0–3, daisy chain, частота, SPI в AVR
- Согласование уровнейПрямое соединение, делитель, диоды, MOSFET-транслятор, I²C на BSS138
- Технологии ЖК: TN, STN, FSTN, TFTTN, STN, FSTN и TFT, позитив и негатив, поляризаторы, угол обзора