Главная » 2015 » Август » 10 » Дисплей LCD4884
23:40
Дисплей LCD4884

В данной статье описывается графический дисплей LCD4884 Shield от DFRobot который обеспечивает отображение 84x48 точек на драйвере PCD8544. На плате также установлен 5 позиционный джойстик и имеется 6 цифровых и 5 аналоговых IO для легкого создания прототипов.

Такой дисплей использовался в популярных сотовых телефонах фирмы Nokia,  в таких моделях, как 3210 3310 3315 3330 3350 3410 5110 5120 5130 5160 6150 6210, которые обладали монохромными графическими дисплеями, с экраном 84x48 точек, на базе контроллера PCD8544.

Контроллер PCD8544 разработан фирмой PHILIPS.

 

Одной из особенностей этого контроллера является то, что информация может быть только выведена на дисплей, но не считана с него. В частности, это накладывает два ограничения:

- Нет возможности узнать состояние дисплея, в т.ч. и вообще факт его присутствия программными средствами. Это требует точного соблюдения таймингов при выводе информации. К счастью контроллер может работать на достаточно большой скорости и это не является проблемой.

- Невозможно работать с изображением в режиме «чтение-изменение-запись». Вывод сложного изображения, где потребуется совмещение разной графической информации, может быть осуществлён только с использованием внеэкранного буфера, или предварительного полного расчёта совмещения изображений.

 

В то же время, контроллер обеспечивает крайне низкое энергопотребление: менее 300мкА (с типичными дисплеями Nokia) в рабочем режиме, и около 1.5мкА в режиме отключения.

 

Контроллер имеет встроенный генератор повышенного напряжения, поэтому отдельно подводить напряжение для питания дисплея не требуется.

 

Сам же контроллер работает при напряжении 2,7 – 3,3 Вольта.

Спецификация модуля

  • Электропитание: 5 В
  • Интерфейс SPI (с использованием цифровых pin 2,3,4,5,6)
  • Одна кнопка сброса
  • Один джойстик с 5 степенями свободы (с использованием аналогового pin 0)
  • Управление подсветкой (Arduino DIO pin 7)

 

Ссылка на Wiki

Как упоминалось выше, контроллер работает на напряжении 2,7 – 3,3 Вольта. Это значит что сопряжённый микроконтроллер должен либо работать на том же напряжении, либо же как-то согласовать уровни на выводах, например, при помощи делителей.

 

Кроме «земли» и «питания», к контроллеру дисплея должны идти 5 линий:

* SCLK - тактовый импульс для передачи данных.

* SDIN - передаваемые данные.

* D/C̅ - выбор типа передаваемых данных: высокий уровень - графические данные, низкий - инструкция.

* S̅C̅E̅ - выбор чипа. Передача данных осуществляется при низком уровне на этой линии. При высоком уровне данные игнорируются.

* R̅E̅S̅ - сброс. При низком уровне происходит аппаратный сброс контроллера.

 

Поскольку, согласно спецификации (см п.8.1) аппаратный сброс является необходимым для инициализации дисплея, линия R̅E̅S̅ также должна быть подключена.

 

В принципе, линия S̅C̅E̅ может быть притянута постоянно к земле, но в этом случае, если по какой либо причине контроллер дисплея потерял синхронизацию с МК, это никак не удастся обнаружить. При подключении к МК, рекомендую притягивать эту линию к высокому уровню подтягивающим резистором 100-500кОм, чтобы исключить реакцию контроллера на помехи, пока МК находится в состоянии сброса.

 

PinOut

 

 

 

 

 

 

 

 

 

 

Принципиальная схема модуля

 

 

 

 

 

 

 

Если появляется ошибка компиляции при использовании стандартной библиотеки:

In file included from /Users/petersni/Desktop/Arduino.app/Contents/Resources/Java/hardware/arduino/avr/cores/arduino/Arduino.h:28:0,
 from LCD4884.h:21,
 from LCD4884.cpp:17:
font_6x8.h:6:29: error: variable 'font6_8' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
 unsigned char font6_8[][6] PROGMEM =
 ^
font_big.h:9:39: error: variable 'big_number' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
 unsigned char big_number[13][3][16] PROGMEM = {
 ^
Error compiling.

 

Нужно изменить в файле font_6x8.h строчку

unsigned char font6_8[][6] PROGMEM =

на

const unsigned char font6_8[][6] PROGMEM =

и аналогичные действия провести с файлом font_big.h

Исправленная библиотека LCD4884 v1.2

 

 

 

Категория: Электроника | Просмотров: 402 | Добавил: graftsv | Теги: LCD4884, Ардуино, spi, дисплей
Всего комментариев: 0
avatar