ЖК-матрица от Nokia 3310 имеет размеры 84 × 48 пикселей, что позволяет комфортно отображать 14 разборчивых буквенно-цифровых символов в 6 строках. По сравнению с возможностями популярных буквенно-цифровых дисплеев (обычно 2 × 16 или 2 × 20 символов), это большой объем информации.
Поскольку дисплей был разработан для портативного устройства, поле отображения ЖК-матрицы не очень большое (30×24 мм), толщина всего модуля также мала (около 3 мм).
Рис. 1. Внешний вид дисплейного модуля от телефона Nokia 3310
Доступное в интернете описание дисплеев телефона Nokia 3310 указывают на то, что он имеет встроенный драйвер типа PCD8544 производства NXP (Philips).
Кратко напомним конструкцию и способ управления контроллером PCD8544. Его структура включает в себя:
- Матричный драйвер ЖК-дисплея, включающий в себя систему подачи напряжения матрицы и систему компенсации контрастности в зависимости от температуры,
- Память изображений SRAM
- Интерфейс связи функционально аналогичен интерфейсу SPI.
Интерфейс связи контроллера PCD8544 был дополнен — по сравнению с классическим SPI — дополнительными линиями:
- nSCE — линия выбора системы (активна в логическом состоянии «0») — эквивалент Chip Select,
- D/nC — линия выбора места назначения отправленных данных: отображение оперативной памяти — данных (D/nC = 1) или управляющего регистра — отправка команд (D/nC = 0),
- RES — линия сброса контроллера.
На рис. 2 показан временная диаграмма при отправке байта данных или команды на контроллер дисплея.
Рис. 2. Способ отправки байта на контроллер PCD8544
Передача начинается с активации линии nSCE (установка на низкий уровень). Данные из линии SDIN вводятся в регистр контроллера с нарастающими фронтами тактового сигнала SCLK. В примере, показанном на рис. 2, после ввода одного байта линия nSCE становится неактивной. Контроллер допускает ввод блока байтов с активным nSCE (без необходимости устанавливать 1 по этой линии после каждого переданного байта), что в свою очередь ускоряет передачу данных.
Расположение выводов модуля дисплея от телефона Nokia 3310
Контактный номер | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
функция | Vdd | SCLK | SDIN | D/C | SCE | GND | Vout | RES |
Напряжение питания дисплея (Vdd) должно составлять от 2,7 В до 3,3 В. Напряжение, подаваемое на матрицу дисплея (6 … 8 В), генерируется от внутреннего преобразователя контроллера и выводится на контакт Vout, к которому должен быть подключен внешний фильтрующий конденсатор 10 мФ.
На рис. 3 показана принципиальная схема, иллюстрирующая подключение модуля дисплея к микроконтроллеру.
Рис. 3. Схема подключения дисплейного модуля от Nokia 3310 к микроконтроллеру
Память изображения
Содержимое памяти SRAM, встроенной в контроллер PCD8544, можно изменить, введя данные в контроллер, когда линия D/nC находится в высоком состоянии. ЖК-матрица может отображать 48 строк, каждая из которых имеет 84 пикселя.
Память SRAM организована в 6 банков по 84 байта. Эта организация обеспечивает логическое разделение поля отображения на 6 строк по 84 столбца (рис. 4). Строки пронумерованы от 0 до 5, столбцы от 0 до 83.
Рис. 4. Организация памяти SRAM в контроллере PCD8544
При вводе данных в память изображений сначала укажите номер банка памяти (переменная Y на рис. 4), затем номер байта в строке (переменная X на рис. 4). Сохранение всего банка эквивалентно отображению одной строки дисплея (линейки).
Каждый байт оперативной памяти отображается в виде вертикальной полосы размером 8 пикселей. Старший пиксель в строке соответствует младшему значащему биту, а самый низкий пиксель соответствует старшему значащему биту памяти. В стандартном режиме отображения установка бита в байте памяти соответствует отображению черного пикселя, а обнуление соответствует его отключению.
Адресация памяти
При вводе байтов в память SRAM, контроллер PCD8544 автоматически увеличивает счетчики строк и столбцов. Существует два режима автоматической модификации счетчика: вертикальный и горизонтальный — устанавливаются с помощью команды «Function Set». Вертикальный режим показан на рис. 5.
Рис. 5. Вертикальная адресация памяти изображений в контроллере PCD8544
Каждый раз, когда байт сохраняется, он увеличивается на один ряд строк. Когда достигается максимальное число строк, счетчик строк сбрасывается, а счетчик столбцов увеличивается на 1. При отправке 6 байтов 0xFF, начиная с номера строки, равного нулю, в первом левом столбце дисплея будет отображаться вертикальная полоса по всей высоте дисплея. Режим вертикальной адресации (рис. 6) можно использовать при сохранении полноэкранного растрового изображения.
Рис. 6. Горизонтальная адресация памяти изображений в контроллере PCD8544
После сохранения каждого байта счетчик столбцов увеличивается. При достижении максимального числа столбцов счетчик столбцов сбрасывается, а счетчик строк увеличивается на 1. Режим горизонтальной адресации очень удобен при работе в текстовом режиме. Режимы адресации могут свободно переключаться во время нормальной работы дисплея, и это не влияет на отображаемую информацию.
Команды драйвера PCD8544
Контроллер принимает два набора команд: стандартную и расширенную, их описания перечислены в табл. 1 .
Табл . 1. Команды контроллера PCD8544 (согласно документации NXP)
инструкция | D/C | Байт команды | описание | ||||||||
DB7 | DB6 | DB5 | DB4 | DB3 | DB2 | DB1 | DB0 | ||||
H=0 lub H=1 | |||||||||||
NOP | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Ничего не делать | |
Function Set | 0 | 0 | 0 | 1 | 0 | 0 | PD | В | H | Уменьшенное энергопотребление (PD), адресация (V) и расширенные команды (H) | |
Write Data | 1 | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | ОЗУ | |
H = 0 основной набор команд | |||||||||||
Reserved | 0 | 0 | 0 | 0 | 0 | 1 | X | X | Не использовать | ||
Display Control | 0 | 0 | 0 | 0 | 0 | 1 | D | 0 | Е | Конфигурация дисплея | |
Reserved | 0 | 0 | 0 | 0 | 1 | х | х | X | X | Не использовать | |
0 | 0 | 1 | 0 | 0 | 0 | У2 | Y1 | Y0 | Установка счетчика строк 0 … 5 | ||
Set X address | 0 | 1 | X6 | X5 | Х4 | X3 | X2 | X1 | X0 | Установка счетчика столбцов 0 … 83 | |
H = 1 расширенный набор команд | |||||||||||
Reserved | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | Не использовать | |
Reserved | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | X | Не использовать | |
Temperature Control | 0 | 0 | 0 | 0 | 0 | 0 | 1 | ТС1 | TC0 | Температурный коэффициент | |
Reserved | 0 | 0 | 0 | 0 | 0 | 1 | х | X | X | Не использовать | |
Bias System | 0 | 0 | 0 | 0 | 1 | 0 | BS2 | BS1 | BS0 | Настройка BIAS | |
Reserved | 0 | 0 | 1 | X | X | X | х | X | X | Не использовать | |
Set Vop | 0 | 1 | Vop6 | Vop5 | Vop4 | Vop3 | Vop2 | Vop1 | Vop0 | Матричное напряжение питания (контраст) |
Описание параметров из таблицы 1.
знак | Когда 0 | Когда 1 |
PD | Активная система | Режим низкой мощности |
В | Горизонтальная адресация | Вертикальная адресация |
H | Базовый набор инструкций | Расширенный набор команд |
D E
0 1 1 0 1 1 |
Дисплей выключен
Нормальный режим Все сегменты освещены. Дисплей в инверсии |
|
TC1 TC00 0
0 1 1 0 1 1 |
VLCD температурный коэффициент 0
VLCD температурный коэффициент 1 VLCD температурный коэффициент 2 (стандарт) VLCD температурный коэффициент 3 |
Команда Function Set предназначена для программного переключения дисплея в режим пониженного энергопотребления, обращения к памяти RAM и установки набора команд (обычный или расширенный).
Контрастность дисплея зависит от напряжения, подаваемого на ЖК-матрицу, и устанавливается командой Set Vop. Можно установить 128 значений, но используемый диапазон регулировки составляет от 30 до 90.
Команда «Контроль температуры» позволяет установить одну из 4 предопределенных характеристик компенсации контрастной температуры. Коэффициент 2 (TC1 = 1, TC0 = 0) может использоваться для большинства приложений. Для дисплея телефона Nokia 3310 значение параметра BIAS должно быть 3.