LCD2USB - проект с открытым исходным кодом и описанием железа (open source/open hardware). Цель LCD2USB - подсоединить текстовые дисплеи на основе контроллера HD44780 к персональным компьютерам (PC) через USB. LCD2USB разрабатывался как дешевый проект, который можно просто изготовить из доступных запчастей. Поэтому он основан на недорогом микроконтроллере Atmel AVR ATmega8 (из памяти программ flash 8 кбайт используется ~3 кбайт), который легко достать. LCD2USB поставляется с программой-демо, работающей на Linux, MacOS X и Windows.
Dстатье описан проект, который позволяет легко и недорого подключить к компьютеру LCD-индикатор. Оригинал статьи на Github - https://github.com/harbaum/LCD2USB
В настоящий момент LCD2USB поддерживается lcd4linux (поддержка LCD2USB встроена), LCD Smartie (требуется отдельный драйвер) и LCDProc (поддержка LCD2USB встроена).
LCD2USB базируется на следующих проектах:
- LCD4LINUX [1], отличный фреймворк для использования маленьких LCD вместе с Линукс
- V-USB [2], полная программная реализация протокола USB для платформы AVR
- USBtiny [3], другая программная реализация протокола USB для AVR
- LCD library for HD44870 based LCD [9], подпрограммы LCD от Peter Fleurys для AVR
Интерфейс USB
USB интерфейс LCD2USB основан на программной реализации протокола USB с использованием трех ножек AVR (PC0, PC1 и PD2). Эта программная реализация поддерживает только low speed USB, о которой PC информируется резистором R1. Текущая версия 1.1 LCD2USB работает с сигналами USB на 3.6V, и в этом отношении она больше соответствует стандарту USB, чем старая версия 1.0.
Соединение с USB может происходить через коннектор типа USB B. Это квадратный коннектор, обычно используемый для USB-устройств (в отличие от коннекторов типа flat A, используемый для USB хостов). USB коннектор монтируется на обратной стороне PCB. Другой способ подключения - прямая напайка кабеля к обратной стороне, как показано на рисунке.
Питание
Для дисплеев с подсветкой нужно предпринять специальные меры для их питания. LCD2USB разработан так, что потребляет в большинстве случаев 75 мА, что нормально для LCD с подсветкой на LED. Эта величина также сообщается PC при конфигурировании подключения USB. Интерфейс LCD2USB может предоставить до 100 мА с помощью программного управления подсветкой. Это ограничение транзистора T1. Если подсветка потребляет более 100 мА, необходимо заменить T1 (см. секцию "Примечания к списку деталей" далее). Также необходимо предотвратить перегрузку шины USB, которая не может предоставить ток более 500 мА для bus powered device. Увеличение потребления тока подсветкой необходимо отразить в конфигурации устройства USB путем настройки константы USB_CFG_MAX_BUS_POWER в файле usbconfig.h исходного кода прошивки (firmware), и перекомпилировать проект. Это изменение firmware может не потребоваться для всех PC, но некоторые могут отключать источник питания для устройства, которое потребляет ток больше, чем заказано в дескрипторах USB.
Схема
На основе этой схемы изготавливаем печатную плату. От себя добавлю, что я убрал ДУВ1бК5бД1бК4бС7,S1 и S2. И без них работает нормально.
Прошивка
avrdude -c stk200 -p atmega8 -U lfuse:w:0x9f:m -U hfuse:w:0xc9:m -U flash:w:firmware-avrusb.hex
или
avrdude -c usbasp -p atmega8 -U lfuse:w:0x9f:m -U hfuse:w:0xc9:m -U flash:w:firmware-avrusb.hex
Сборка и настройка
Свой экран я собрал на макетке:
В системе он определился сразу как LCD2USB. Далее, если необходимо ставим драйвер...
Экран работает как с Smartie, так и с AIDA 64:
Возможности, конечно, ограничены этими программами, но всеравно достаточно обширны. Smartie позволяет выводить базовую eyae о железе, новых Email, получать RSS, печатать все что угодно на экране. AIDA 64 может выводить более обширную инфу о компьютере, которую удобно мониторить при тестах.
Комментариев нет:
Отправить комментарий