В статье мы рассмотрим способ подключения дисплея от мобильного телефона Nokia 3310 к интерфейсу USB. Данный дисплей можно легко найти, он выполнен на контроллере Philips PCD8544, его интерфейс уже хорошо документирован. Такой дисплей идеален для применения в своих конструкциях и устройствах.
Реализация данного решения заключается в подключении ЖК дисплея к микроконтроллеру AVR посредством интерфейса SPI, а микроконтроллер подключается к компьютеру (Host-устройство) посредством интерфейса USB. Реализация же интерфейса USB на микроконтроллере возможна благодаря использованию программной библиотеки V-USB для микроконтроллеров AVR, которая предоставлена компанией Objective Development. В свою очередь на Host-устройстве для передачи данных по USB нам потребуется библиотека libusb для обеспечения доступа к устройствам USB (библиотека libusb включена в состав архива с исходными файлами программы для компьютера).
Итак, основные задачи, которые мы рассмотрим в проекте:
- схемотехническое решение, схема и электронные компоненты;
- обработка данных с использованием V-USB на AVR;
- коммуникация дисплея с микроконтроллером, управление дисплеем;
- передача данных посредством интерфейса USB с использованием библиотеки libusb на Host-устройстве;
- разработка собственных шрифтов для дисплея.
Настройку библиотек V-USB и libusb рассматривать не будем, т.к. они включены в исходные файлы.
Следует заметить, что V-USB подразумевает медленный обмен данными (USB 1.1), таким образом реализовать какую-либо анимацию невозможно, но для текстового режима вполне достаточно. Благодаря интерфейсу USB устройство можно будет использовать на любом компьютере, для этого, конечно же, потребуется наличие библиотеки libusb.
Исходные коды программного обеспечения (для микроконтроллера и хоста) являются открытыми.
Для проекта нам потребуется:
Обозначение |
Описание |
IC1 |
|
LCD1 |
Дисплей от мобильного телефона Nokia 3310 на контроллере PCD8544 |
ZD1, ZD2 |
Стабилитрон 3.6 В |
С1 |
Конденсатор электролитический 10 мкФ×16 В |
С2, С3 |
Конденсатор керамический 20 пФ |
R1 |
Резистор 1.5 кОм |
R2, R3 |
Резистор 68 Ом |
Q1 |
Кварцевый резонатор 12 Мгц |
ISP |
Разъем для внутрисхемного программирования |
X1 |
Коннектор USB |
На момент разработки устройства у автора отсутствовали стабилитроны на 3.6 В и резисторы номиналом 68 Ом, поэтому были использованы стабилитроны на 3.2 В и резисторы 33 Ом. Однако, автор настоятельно рекомендует использовать компоненты указанные в таблице, иначе не гарантируется стабильная работа USB интерфейса (устройство не будет корректно распознаваться компьютером).
Принципиальная схема устройства
При сборке устройства обратите внимание на имеющийся у Вас кабель USB, т.к. очень важно не перепутать сигнальные линии D+ и D-. Также следует обратить внимание на отсутствие короткого замыкания при подключении (пайке) дисплея, т.к. расстояние между выводами дисплея слишком мало.
При помощи программатора Вам необходимо загрузить программное обеспечение (hex-файл в приложении), либо скомпилировать исходный код под свой микроконтроллер (исходный код в приложении) и, также загрузить в микроконтроллер.
Если устройство собрано правильно, то после подключения к USB (после подачи питания) на дисплее появится надпись «Display Initialized» (дисплей инициализирован), а компьютер сообщит о подключенном USB устройстве.
Если сообщения о инициализации на дисплее не появилось, то причины могут быть следующие:
- не подается напряжение питания на дисплей (питание от USB интерфейса);
- неправильное подключение сигнальный линий дисплея к микроконтроллеру (например, в обратной последовательности);
- неправильно подключены сигнальные линии SPI интерфейса;
- вывод Vout дисплея не подключен к конденсатору С1;
- вывод Reset не подключен или подключен не правильно.
Если компьютер не обнаружил USB устройство:
- правильно ли подключены линии D+ и D-?
- правильно ли впаяны стабилитроны ZD1 и ZD2?
- правильно ли подключены линии D+ и D- к выводам микроконтроллера?
Исходный код программы микроконтроллера - скачать
hex-файл для прошивки микроконтроллера - скачать
В следующей части мы рассмотрим основные моменты в программном обеспечении микроконтроллера и Host-устройства. Разберем работу отдельных функций и подпрограмм микроконтроллера, познакомимся с командами, протоколом обмена данными и основные принципы работы с дисплеем, основные моменты процесса создания пользовательских символов (шрифтов). Рассмотрим основные функции и параметры в программном обеспечении Host-устройства для передачи команд и данных дисплею.