суббота, 25 августа 2018 г.

LCD2USB - подключение LCD индикатора к компьютеру через USB

LCD2USB - проект с открытым исходным кодом и описанием железа (open source/open hardware). Цель LCD2USB - подсоединить текстовые дисплеи на основе контроллера HD44780 к персональным компьютерам (PC) через USB. LCD2USB разрабатывался как дешевый проект, который можно просто изготовить из доступных запчастей. Поэтому он основан на недорогом микроконтроллере Atmel AVR ATmega8 (из памяти программ flash 8 кбайт используется ~3 кбайт), который легко достать. LCD2USB поставляется с программой-демо, работающей на LinuxMacOS 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 может выводить более обширную инфу о компьютере, которую удобно мониторить при тестах.

Пара фото моего экрана


Комментариев нет:

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