COM-терминал

В один прекрасный день мой старый добрый компьютер с 9-ти летним стажем приказал долго жить. Моя радость была неописуемой, ведь помимо отсутствия возможности добраться к нужной информации, находящейся на старых винчестерах, пропала возможность проводить отладку микроконтроллерных поделок с помощью вывода контрольных сообщений через COM-порт на терминальную программу. Уже хотел было сделать преобразователь интерфейсов RS232-USB для ноутбука, как пришла идея собрать автономный COM-терминал – устройство, позволяющее принимать и с помощью клавиатуры передавать символы в ASCII-кодировке, с отображением всей этой информации на жидкокристаллическом индикаторе. Результат поиска уже разработанных подобных устройств меня не порадовал – попалась лишь одна разработка, на которую у меня не было необходимого дисплея (да и искать его не особо-то хотелось:-) а автор предлагал лишь файл-прошивку. Ну что же, мы не ищем лёгких путей — решено разработать такой приборчик самому.

Дальше, злой рок наконец перестал вмешиваться в мою работу, поэтому через пару недель свободного времени COM-терминал был готов!

Собственно, устройство.

Основа устройства – контроллер Atmega8A. В качестве дисплея был выбран LPH8731-3C, библиотеку для работы с которым я описывал ранее. Но, в данном проекте, библиотека была полностью переделана и оптимизирована для быстрого вывода текстовой информации.

Информацию об интерфейсе клавиатуры PC/AT можно найти на данном сайте, в моей же программе был применён код, основанный на аппноуте AVR313 фирмы Atmel (прилагается в архиве).

Терминал поддерживает следующие скорости работы UART: 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600 и 76800 бод/с.

В программе используются 3 кольцевых буфера: один на приём данных по UART, второй – на отправку сообщений и третий – буфер данных клавиатуры. В принципе, при небольшой скорости печатания на клавиатуре можно было обойтись и без последних 2-х, но мне работать с ними удобнее.

В начале каждого запуска терминала появится окошко, в котором кнопкой SELECT необходимо выбрать требуемую скорость работы, а кнопкой ENTER установить её. При необходимости изменить скорость работы UART, нажимаем SELECT и выполняем опять описанные действия. Кнопка CLEAR производит очистку дисплея.

В схеме, помимо стандартного интерфейса RS-232, предусмотрена возможность подключиться напрямую к выводам TX и RX испытуемого микроконтроллера, блока GPS или другого устройства, имеющего интерфейс UART и необходимую нам скорость работы. Также предусмотрена гальваническая опторазвязка выводов TX и RX терминала, выполненная на оптопарах PC817. В этом случае для связи с испытываемым устройством нам понадобится на 1 соединительный провод больше, чтобы подать от него независимое питание (+3…+5В) на вывод Vcc разъёма X2. Насколько такое решение удачно – судить вам!

Принимаемые по UART символы отображаются на экране синим цветом, передаваемые с помощью клавиатуры – красным цветом. На дисплее организован сдвиг текстовых данных подобно тому, как он организован в Microsoft Word, что позволяет удобно отслеживать диагностическую информацию.

Плата создавалась по принципу «что есть в наличии», поэтому представляет собой симбиоз SMD-компонентов с «нормальными» деталями.

Все необходимые коммуникационные выводы представлены на плате в виде разъёмов, а сами гнёзда COM-порт и PS/2 расположены в корпусе прибора. В качестве источника питания используется 9-вольтовая батарейка типа «Крона».

Разъём для программирования микроконтроллера на плате не предусмотрен, из-за чего придётся самостоятельно подпаять проводники программатора к нужным выводам, для этого предусмотрены небольшие контактные площадки возле ножек микроконтроллера.

Конфигурация:

Биты конфигурации:

Печатная плата в Proteus (v 7.10):

И в железе:

Готовое устройство:

На видео представлен пример работы терминала с его первым, не особо удачным прототипом и блоком GPS-приёмника Lassen iQ


Список радиоэлементовОбозначение
Тип
Номинал
Количество
ПримечаниеМагазинМой блокнот

DD1
МК AVR 8-битATmega8A-AU1
DD2
ИС RS-232 интерфейсаMAX2321
DA1
Линейный регуляторLM7805CT1
VD1
СтабилитронBZX55C3V01
Любой стабилитрон 3В, 0.5 ВтU1, U2
ОптопараPC8172
ZQ1
Кварц16 МГц1
C1, C2
Конденсатор22 пФ2
C3-C6
Конденсатор0.1-1 мкФ4
C7
Электролитический конденсатор4.7мкФ 20В1
C8
Электролитический конденсатор47 мкФ 10В1
C9
Конденсатор47 мкФ1
R1-R4, R18, R19
Резистор4.7 кОм6
R5
Резистор510 Ом1
R6-R10
Резистор15 кОм5
R11, R12
Резистор240 Ом2
R13-R17
Резистор22 кОм5

LCDLPH8731-3C1
Добавить все

Скачать список элементов (PDF)

Прикрепленные файлы:

Добавить комментарий

Ваш адрес email не будет опубликован.