Например TDA7294

РадиоКот > Статьи

Встраиваем дисплеи от нокия 1202 / 1616

Автор: axillent, axillent@gmail.com
Опубликовано 24.10.2013.
Создано при помощи КотоРед.

Вступление

Работающее устройство на микроконтроллере это хорошо, а устройство с симпатичным дисплейчиком - еще лучше. Пару месяцев назад сделал для себя открытие читая форум и открытие это, как вы уже наверно догадались, касается дисплеев от мобильных телефонов. Оказывается не надо далеко ходить (обычно на ebay или в китай) чтобы обзавестись для своего устройства полезным другом разной формы, с цветом или без, дорого или совсем дешево.

Вот с таким открытием приобрел я для себя наборчик дисплеев из которого хочу остановиться на двух дисплеях. Это дисплей от nokia 1202 и дисплей от nokia 1616. У 1202 есть синонимы - 1203/1280, у 1616 - 1661/5030/1800/1662. Первый монохромный с разрешением 96*68 точек, второй цветной 128*160 точек. Почему я решил описать два таких разных дисплея? Все просто - у них совершенно одинаковый шлейф! Поэтому начнем мы с универсальной платки для тестирования дисплеев.

Универсальная плата для 1202/1616

У тех дисплеев, что мне попались, шлейф на конце имеет расширение в виде буквы Т, 12 контактов. Порядок следования контактов виден из фото:

 

Контакты имеют такое назначение:

Не использован RST CS GND SDA CLK VDDI VDD GND LED- LED+ Не использован
1 2 3 4 5 6 7 8 9 10 11 12
  Сброс, активный ноль Выбор кристала, активный ноль   Данные SPI Тактирование SPI +3.3В +3.3В    - питания подстветки + питания подсветки  

Оба дисплея подключаются по 3-х проводному SPI интерфейсу, имеют вход аппаратного сброса с активным нулем, совместимы с питанием от +3.3В на оба пина 7 и 8. Оба требуют согласования уровней при подключении к МК запитанному от 5В, мы применим обычный резистивный делитель (470 Ом в верхнем плече и 1К на землю). Единственное в чем дисплеи не совместимы, так это в питании подсветки. Дисплеи которые мне попались, и те ресурсы на которые я сошлюсь в конце статьи говорят о том, что для питания подсветки нужны 7В. Перед подключением нужно проверять, есть информация о существовании дисплеев с подсветкой питающейся от 3.3В. Мы сделаем обычный переключатель перемычкой между питанием подсветки от 3.3В через резистор 100 ом и питанием от удвоителя входного напряжения до примерно 9.8В используя MAX1044 через дополнительный резистор на 150 ом. Дизайн платы расчитан на подключение дисплея без пайки, для этого контактная площадка расположена с края предполагая возможность прищепить шлейф сбоку. В качестве прищепки я использую обычную канцелярскую металическую скрепку для толстой кипы бумаг (видна ниже на фото), чтобы улучшить контакт и исключить замыкание внутри на губки скрепки приклеен двухсторонний скотч средней толщины с оставленной с одной стороны защитной пленкой (т.е. к шлейфу прищепка не приклеивается). Плата расчитана на подключение к МК питающемуся от 3.3В до 5.5В, питание самой платы должно быть в пределах 4.3-5.5В. На ней установлен стабилизатор 1117 на 3.3В.

Тестирование дисплея nokia 1202:

Тестирование дисплея nokia 1616:

Плата легко изготавливается методом ЛУТ без отверстий. Я использовал текстолит толщиной 0.5мм, который легко вырезается канцелярскими ножницами используя в качестве трафарета распечатку на обычной бумаге рисунка платы приклеенном малярным скотчем. Минимальная ширина дорожек 0.3мм. Отверстия не сверлил для упрощения, три детальки с "ножками" припаял сверху, для этого предусмотрены большие площадки - разъем 7-ми контактный для установки на отладочную плату (breadboard), трехконтактный разъем для перемычки переключения питания подсветки и MAX1044. Вместо установки умножителя (набор деталей справа в углу от разъема) можно просто подать нужное питание на 7-й контакт разъема или на средний контакт трехконтактного разъема убрав перемычку.

 Печатная плата в зеркально отображении для ЛУТ (в проложении есть PDF версия):

Схему не рисовал, она очень простая, расписал на картинке расположение деталей, умножитель напряжения собран по схеме из даташита с конденсаторами на 10мкф, использовано 6шт перемычек (резисторы 0 Ом в корпусе 1210):

  Програмирование

На дисплее 1202 подробно останавливаться не буду. О них уже достаточно много информации и примеров. Уверен, что и у вас пример заработает с первого раза. Рекомендую библиотеки с сайта digitalchip, их там две версии, одна только для текста, вторая с буфером в памяти и уже умеет рисовать графику. Сам планирую переписать под себя и сделать универсальный драйвер для нескольких дисплеев. Но это впереди, для тех кто хочет лучше понять как дисплей работает или захочет докрутить библиотеку - по ссылкам есть даташит на контроллер PCF8814. В конце статьи также все использованные ресурсы. Тестовые примеры на digitalchip имеют готовый HEX для atmega8/atmega32. В обоих случаях подключение по умолчанию такое:

RST CS SDA CLK
PC0 PC1 PC2 PC3

С дисплеем 1616 все получилось несколько сложнее. Есть упоминания на разных форумах об использовании этого дисплея. В том числе встречаются предположения о совместимости этого цветного дисплея с другим цветными дисплями типа 6100/6610. Из своего опыта скажу, что предроложение ошибочно. К сожалению реальные примеры применения найдены не были, толи не распространен дисплей, толи те, кто с ним справился не любят делиться. Более менее достоверными источниками информации являются статья http://we.easyelectronics.ru/lcd_gfx/podklyuchenie-displeya-nokia-1616-na-primere-lpc1343.html и http://robobuild.ru/index.php?itid=2. Используя код из последней (он проще для понимания) удалось дисплей запустить. Позже (спасибо MadOrc) выяснилось, что в дисплее контроллер SPFD54124B (ссылка в конце статьи). Изучая материалы по двум предудыщим ссылкам и по еще одной ссылке https://sourceforge.net/projects/nokiasuperbreak/ обнаружил, что в них всех присутствуют одни и теже ошибки по использованию SPFD54124B. Использован ряд не существующих команд и часть команд на мой взгляд использованы без понимания их сути. В своей библиотеке я попытался это исправить. Пока возможности библиотеки не такие большие - по сути только вывод текста. Но дальнейшее освоение уже не содержит секретов самого дисплея - вопрос только написания удобных функций. В контроллере обнаружилась удобная особенность - возможность на аппаратном уровне повернуть изображение в любом направлении, в библиотеке это легко делается функцией nlcdSetOrientation() которая на входе принимает enum - одно из 4-х положений изображениякак поворот в градусах от нормального положения по часовой стрелке. Нормальное положение соотвествует установкам после сброса дисплея - x по узкой стороне, верх со стороны шлейфа. При этой для понимания границ дисплея надо использовать функции nlcdGetWidth()/nlcdGetHeight(), их значение зависит от выбранной ориентации. Из моего опыта и из анализа кода по одной из ссылок выше могу сделать вывод, что подключение RST не обязательно. К тому же согласно даташиту програмный сброс соотвествует аппаратному. Возможно тоже справедливо для nokia 1202. Оптимальным режимом является 16-битный режим цветности, когда на одну точку отправляется два байта - 5 бит красного + 6 бит зеленого + 5 бит голубого. Контроллер подразумевает двухсторонний обмен, в частности если посмотреть код проекта "Nokia Super Break" по ссылке выше предполагает автоматическое определение дисплея по считанному ID. Во включаемом файле определены основные цвета, которыми удобно пользоваться. За достоверность смешанных цветов не ручаюсь, их не тестировал.

Тестовый пример содержит найстройки подключения в самом примере (в примере 1202 настройки во .h файле библиотеки), если использовать HEX то подключение идет к порту C точно так же как для примеров 1202. HEX откомпилирован под atmega31a.

Заключение

Для несложных и не дорогих проектов вполне подойдут два неплохих дисплея от Нокия. Для проектов самых простых 1202 - миниатюрный монохромный дисплей, требующий для подключения в минимуме всего трех проводов (в минимальном setup можно не подключать reset, подтянув его к + питания).

Для проектов поинтереснее, где есть готовность повозиться с назначением цветов - дисплей 1616. Минимальный setup также требует всего 3-х проводов.

Имея оба дисплея в арсенале всегда можно поменять предпочтения даже часто после изготовления платы ) Благодаря одинаковому подключению.

Надеюсь моя статья окажется полезной для тех, кто задался теми же вопросами, на которые мне удалось найти ответы.

Ссылки

  • Сайт откуда использованы примеры подключения и библиотеки для дисплея 1202 (совместим с 1100). Библиотеку и пример брать отсюда
  • Пример подключения именно 1202
  • Обзор по дисплеям от мобильников
  • Пример подключения 1616
  • Еще один пример подключения 1616
  • Пример универсальной библиотеки, дисплей 1616 не значится, но значится контроллер SPFD54124B
  • Даташит на SPFD54124B (нокия 1616)

Файлы:
Архив ZIP


Все вопросы в Форум.


ID: 1722

Как вам эта статья?

 Нравится
 Так себе
 Не нравится

Заработало ли это устройство у вас?

 Заработало сразу
 Заработало после плясок с бубном
 Не заработало совсем

90 2 1
5
Подробно