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

Дисплей 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
Питание логики VDD2,7–3,3 В
Напряжение панели VLCD6,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/C0 — байт команды, 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 set0x20 + 4·PD + 2·V + HлюбойPD — Power-down, V — вертикальная адресация, H — расширенный набор
Display control0x08 — пусто, 0x0C — нормальный режим, 0x09 — все точки, 0x0D — инверсияH = 0режим отображения (биты D и E)
Set Y address0x40 + YH = 0банк 0–5
Set X address0x80 + XH = 0столбец 0–83
Temperature control0x04 + TCH = 1температурный коэффициент VLCD
Bias system0x10 + BSH = 1смещение; для 1:48 рекомендуется BS = 3, команда 0x13
Set VOP0x80 + VOPH = 1напряжение панели, VOP = 0–127

Данные (D/C = 1) записываются в память по текущему адресу в любом наборе команд.

Контраст: VOP, смещение и температура

Напряжение на панели задаёт регистр VOP:

VLCD=3,06+VOP⋅0,06 ВV_\text{LCD} = 3{,}06 + V_\text{OP} \cdot 0{,}06\ \text{В}

Диапазон программирования по даташиту — от 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 в ноль
200x21Function set: PD = 0, V = 0, расширенный набор
300x13Bias system: n = 4, смещение 1/8 для 1:48
400xB1–0xDASet VOP: подобрать контраст
500x20Function set: основной набор, горизонтальная адресация
600x0CDisplay control: нормальный режим
71504 байтакадр, начиная с 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 мкА, если память заполнена нулями. Подсветка модуля в эти цифры не входит: её ток зависит от платы модуля и резистора на ней.

Источники

  1. 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 — пример программирования
  2. SparkFun Electronics. Nokia5110.pdf — даташит к модулю Nokia 5110 (тот же документ Philips PCD8544) — SparkFun публикует для модулей Nokia 5110 даташит контроллера PCD8544
  3. Microchip. ATmega48A/PA/88A/PA/168A/PA/328/P Data Sheet (DS40002061B) — табл. 19-2 — режимы SPI, табл. 19-5 — частота SCK fosc/4

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