Подключение недорогого LCD индикатора с параллельным интерфейсом (на контроллере HD44780) к компьютеру является самым распространенным проектом для начинающих в электронике, а также для тех, кто решил освоить микроконтроллеры. Самым распространенным, простым в подключении вариантом, является подключение индикатора к параллельному порту компьютера (LPT). Однако данный интерфейс отсутствует на современных компьютерах и ноутбуках. Как быть?
Решение – добавить USB интерфейс к контроллеру LCD индикатора. В данном проекте рассматривается, как подключить индикатор на HD44780-совместимом контроллере к USB интерфейсу и эмулировать последовательный протокол связи посредством виртуального COM-порта. Это позволит Вам «по-общаться» с LCD индикатором, используя распространенную программу управления LCDSmartie.
В устройстве использованы: микроконтроллер AVR ATtiny2313 компании Atmel, микросхема преобразователя USB – RS-232 FT232BM, производитель FTDI. Совместно с FT232BM используется микросхема EEPROM 93LCS56SN (программируемая через USB) для хранения настроек и другой необходимой информации, к примеру, Вы сможете записать имя Вашего проекта (устройства) и, при подключении данного устройства к USB интерфейсу компьютера, имя будет отображаться в панели подключенных устройств. Также в устройстве реализована функция управления подсветкой (поддерживается управление только светодиодной подсветкой) и контрастностью LCD индикатора с компьютера. Для этого используются ресурсы микроконтроллера (2 канала ШИМ). Питание подсветки возможно от USB порта компьютера, но потребляемый ток не должен превышать 420 мА, иначе лучше использовать внешний источник питания.
Схема устройства показана на рисунке.
Рисунок печатной платы:
Краткое пояснение к схеме.
Ограничительный резистор R6 необходим лишь в случае питания подсветки индикатора от USB порта компьютера. Использование керамических резонаторов (8 МГц, 6 МГц) для микроконтроллера и драйвера FT232BM – очень важно. Не следует использовать внутренний RC-генератор микроконтроллера вследствие его нестабильности. Не забудьте установить Fuse-биты при программировании для использования внешнего генератора (Fuse-bits младший байт 0*EE).
Список и номиналы использованных элементов:
Элемент |
Номинал |
Корпус |
R1 |
470 Ом |
smd 1206 |
R2 |
1 кОм |
|
R3 |
27 Ом |
|
R4 |
27 Ом |
|
R5 |
1.5 кОм |
|
R6 |
10 Ом (опция) |
|
R7 |
4.7 кОм |
smd 1206 |
R8 |
470 Ом |
|
R9 |
2.2 кОм |
|
R10 |
10 кОм |
|
R11 |
1 МОм |
|
C1 |
100 нФ |
|
C2 |
10 нФ |
|
C3 |
33 нФ |
smd 0805 |
C4 |
100 нФ |
smd 1206 |
C5 |
100 нФ |
|
C6 |
10 мкф |
CT6032 |
C7 |
100 nF |
smd 1206 |
IC1 |
FT232BM |
LQFP-32 |
IC2 |
ATtiny2313 |
SO-20 |
IC3 |
93LCS56SN |
SO-08 |
Q1 |
TO-92 |
|
XC1 |
6 МГц резонатор |
|
XC2 |
8 МГц резонатор |
|
CON1 |
USB-B коннектор |
Программное обеспечение для микроконтроллера написано на языке С и скомпилировано в среде AVR-GCC. Исходный код снабжен подробными комментариями. В случае использования дисплея с размерами отличными от 20*4, необходимо в исходном коде сделать соответствующие настройки и скомпилировать проект.
Также у Вас есть возможность запрограммировать EEPROM с помощью утилиты Mprog utility. Необходимый драйвер FT23BM доступен на сайте FTDI.
Для управления индикатором использовалась программа LCDSmartie. В настройках программы необходимо выбрать модуль Crystall.dll и настроить его на работу с виртуальным COM-портом. Не исключено, что работоспособность сохранится и с другими программами управления LCD, у которых есть поддержка последовательного протокола (Crystalfontz) обмена с LCD индикатором.
Исходный текст программы для микроконтроллера: USBLCDsource