Till Harbaum
Введение
Цель проекта LCD2USB – подключить текстовые LCD дисплеи на базе контроллера HD44780 к различным компьютерам через интерфейс USB. По замыслу автора, LCD2USB должен быть дешевым и собранным из легко доступных компонентов. Поэтому схема основана на микроконтроллере Atmel ATmega8, и в ней нет деталей, которые трудно найти, например отдельных USB контроллеров и т.п. Общая стоимость устройства (без дисплея и печатной платы) составляет от 5 до 10 Евро. Для устройства разработано демонстрационное приложение, которое работает под Linux, MacOS X и Windows.
Железо
Печатная плата, смонтированная с дисплеем 4×20 | USB разъем установлен на задней стороне печатной платы |
Аппаратная часть LCD2USB сделана на ATmega8, дешевом и легко доступном микроконтроллере с 8 Кб флеш-памяти (из которой приблизительно 3 Кб заняты программой) и 2 Кб – ОЗУ. Остальные компоненты – преимущественно разъемы для подключения ЖК индикаторов и разъем интерфейса с ПК.
Светодиод питания (LED1) показывает, что система питается от USB. Тактовая частота задается кварцевым резонатором 12 МГц. Использование кварцевого резонатора необходимо, поскольку для интерфейса USB требуется высокая точность временных параметров.
Интерфейс USB
USB интерфейс устройства LCD2USB реализован чисто программно и использует три вывода AVR контроллера (PC0, PC1 и PD2). Эта программная реализация поддерживает только низкоскоростной USB, о чем ПК узнает благодаря резистору R1.
В интерфейсе используется разъем типа USBB. Это квадратный разъем, который обычно применяется для USB устройств (в отличие от плоских разъемов типа USBA, используемых для USB хостов). Разъем USB, в отличие от всех остальных компонентов, монтируется на обратной стороне печатной платы. Кроме того, кабель можно подключить и без разъема, со стороны компонентов, как показано на рисунках ниже.
Прямое подключение USB кабеля | Работающее устройство в сборе из минимума деталей |
Устройство относится к категории «bus-powered», т.е. вся схема питается от USB. Таким образом, AVR контроллер и ЖК дисплей питаются от USB линии VBUS. Эта линия может отдавать максимальный ток 500 мА. Питающее напряжение фильтруется и буферизуется конденсаторами C3 и C6.
Интерфейс ЖК дисплея
Интерфейс LCD2USB совместим с несколькими различными текстовыми LCD дисплеями на основе контроллера HD44780. Он поддерживает дисплеи с одним контроллером (тестировался с 16×2, 20×2 и 20×4) и с двумя контроллерами (тестировался с 27×4 и 40×4). Для обмена с контроллером HD44780 LCD2USB использует 4-битный интерфейс.
|
На плате установлены два разных разъема (JP1 и JP2), предназначенных для наиболее распространенных дисплеев на контроллере HD44780. Дополнительный разъем JP6 расширяет разъем JP2 для подключения дисплеев с двумя контроллерами, таких, например, как 40×4. Подробности показаны на рисунках ниже. Так как подключение питающего напряжения у дисплеев 40×4 отличается от дисплеев 20×2, на плате предусмотрены перемычки SJ2 и SJ3, которые позволяют подать напряжение заданной полярности на разъем JP2. По умолчанию они установлены для разъема дисплеев типа 20×2. На фотографии ниже показано, как изменить эту установку перемычек для дисплея типа 4×40:
|
Предупреждение: Ошибка в полярности питающего напряжения может вывести из строя ЖК дисплей, интерфейс и даже повредить USB порт ПК. Убедитесь, что контакты разъема дисплея соответствуют расположению сигналов на плате LCD2USB. Вы можете использовать USB концентратор между LCD2USB и вашим ПК на время экспериментов. Это снизит риск повреждения ПК, если вы неправильно подали питание на LCD дисплей. Однако при этом вы, все равно, можете повредить LCD2USB и USB концентратор.
Дисплеи: 2×16, 4×16, 4×20 | Дисплеи: 2×20, 2×40 | Дисплей: 4×40 (требуется припаять перемычку!) |
Рассуждения о напряжении питания
Особое внимание следует уделить дисплеям с подсветкой. Устройство LCD2USB разработано так, чтобы потреблять ток не более 75 мА, что вполне приемлемо для типовых LCD дисплеев со светодиодной подсветкой. Это значение также передается компьютеру через конфигурацию USB. Аппаратно интерфейс LCD2USB способен дать до 100 мА с помощью программного управления яркостью подсветки. Ограничение вносит транзистор Т1. Если подсветка будет потреблять ток более 100 мА, транзистор Т1 следует заменить (подробности найдете в секции «Замечания к списку компонентов» представленной ниже). Также особое внимание следует уделить тому, чтобы общее потребление тока не превышало допустимый для USB лимит в 500 мА. Увеличение тока подсветки должно быть отражено в конфигурации USB устройства путем установки значения USB_CFG_MAX_BUS_POWER в файле usbconfig.h исходного кода программы для микроконтроллера. В этом случае вам придется перекомпилировать прошивку, чтобы изменения вступили в силу и ПК передавалось увеличенное значение потребляемого тока. Эти изменения прошивки необязательны для большинства ПК, но некоторые ПК могут даже обесточить все устройство, если оно фактически будет потреблять больше, чем показывают его USB дескрипторы.
Интерфейс программирования (SPI)
Программа загружается в контроллер через стандартный 10 контактный разъем AVR ISP (SV1). Для загрузки потребуется кабель программирования. Например, такой, самодельный. Потребуются также совместимые с этим кабелем программы для ПК, такие как Ponyprog или UISP.
Последовательный интерфейс
Разъем JP3 подключен к последовательному интерфейсу микроконтроллера. Этот разъем предназначается только для целей отладки и не может быть напрямую подключен к интерфейсу RS-232 ПК. Для подключения понадобится согласователь уровней (например MAX232).
Схема и печатная плата
Перечень компонентов
Компонент |
Количество |
Наименование |
Q1 |
1 |
Кварцевый резонатор 12 МГц, корпус HC49U |
R1 |
1 |
Резистор 2.2 кОм ¼ Вт |
R2, R3 |
2 |
Резисторы 68 Ом ¼ Вт |
R4 |
1 |
Резистор 47 Ом ¼ Вт |
R5 |
1 |
Резистор 220 Ом ¼ Вт |
R6 |
1 |
Резистор 4.7 кОм ¼ Вт |
C1, C2 |
2 |
Керамические конденсаторы 22 пФ, 2.54 мм |
C3, C5 |
2 |
Конденсаторы 100 нФ, 5.08 мм |
C6, C7 |
2 |
Электролитические конденсаторы 10 мкФ |
T1 |
1 |
Транзистор BC547C |
L1 |
1 |
Дроссель 10 мкГн |
S1, S2 |
2 |
Кнопки |
SV1 |
1 |
10 контактный разъем ISP |
JP1 |
1 |
Разъем дисплея |
JP2, JP6 |
1 |
Разъемы дисплея |
-- |
1 |
Разъем со стороны дисплея для JP2/JP6 |
JP3 |
1 |
4 контактный разъем для отладки, |
LED1 |
1 |
Зеленый светодиод 3 мм |
-- |
1 |
USB-B разъем для ПП |
IC1 |
1 |
Микросхема ATmega8-16 DIP |
-- |
1 |
Панелька для IC1 |
D1, D2 |
2 |
Стабилитроны 3.6 В |
Дополнительно потребуются: дисплей, USB кабель
Замечания к списку компонентов
Кварцевый резонатор должен быть в небольшом корпусе типа HC-49U. Вы можете использовать резонатор в корпусе HC-18, но тогда придется монтировать его на заднюю сторону печатной платы.
Конденсаторы C1 и C2 должны иметь расстояние между выводами 2.54 мм (1/10 дюйма), C3 и C5 – 5.08 мм (2/10 дюйма).
Хотя Т1 обозначен в перечне как BC547C, подойдут также BC547A или BC547B.
Катод светодиода LED1 подключен к резистору R5. Таким образом, длинный вывод светодиода расположен ближе к JP1.
Резистор R4 ограничивает тока подсветки дисплея. Значение его сопротивления в перечне компонентов 47 Ом является наиболее подходящим и безопасным для дисплеев с маломощной светодиодной подсветкой. Некоторые дисплеи имеют встроенный ограничивающий резистор или им требуется больший ток. Признаком этого является обычно очень темная или даже еле заметная подсветка дисплея при сопротивлении резистора R4 47 Ом. Вы должны уменьшить сопротивление резистора R4, чтобы увеличить ток через подсветку и таким образом повысить ее яркость. Обязательно посмотрите описание на ваш дисплей, чтобы определить потребляемый его подсветкой ток. Это позволит правильно выбрать сопротивление ограничивающего ток резистора R4. Транзистор Т1 BC547 может оказаться неподходящим для дисплеев, ток подсветки которых превышает 100 мА. Один из пользователей сообщил мне, что используя в качестве Т1 MOSFET транзистор BS170, он питал подсветку дисплея током 240 мА.
Окончание читайте здесь