Главная » Микроконтроллеры » Поддержка графического дисплея от телефона Nokia 3310 с помощью микроконтроллера STM32

Поддержка графического дисплея от телефона Nokia 3310 с помощью микроконтроллера STM32

ЖК-матрица от Nokia 3310 имеет размеры 84 × 48 пикселей, что позволяет комфортно отображать 14 разборчивых буквенно-цифровых символов в 6 строках. По сравнению с возможностями популярных буквенно-цифровых дисплеев (обычно 2 × 16 или 2 × 20 символов), это большой объем информации.

Поскольку дисплей был разработан для портативного устройства, поле отображения ЖК-матрицы не очень большое (30×24 мм), толщина всего модуля также мала (около 3 мм).

Рис. 1. Внешний вид дисплейного модуля от телефона Nokia 3310

Внешний вид дисплейного модуля от телефона 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.

Оставить комментарий

Ваш email нигде не будет показан. Обязательные для заполнения поля помечены *

*