Главная » Микроконтроллеры
Призовой фонд
на июль 2017 г.
1. Осциллограф DSO138
Паяльник
2. Регулируемый паяльник 60 Вт
Паяльник
3. 200 руб.
От пользователей

COM-терминал

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

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

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

Схема COM-терминала

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

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

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

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

В начале каждого запуска терминала появится окошко, в котором кнопкой 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-AU
1 Поиск в FivelВ блокнот
DD2 ИС RS-232 интерфейса
MAX232
1 Поиск в FivelВ блокнот
DA1 Линейный регулятор
LM7805CT
1 Поиск в FivelВ блокнот
VD1 Стабилитрон
BZX55C3V0
1 Любой стабилитрон 3В, 0.5 ВтПоиск в FivelВ блокнот
U1, U2 Оптопара
PC817
2 Поиск в FivelВ блокнот
ZQ1 Кварц16 МГц1 Поиск в FivelВ блокнот
C1, C2 Конденсатор22 пФ2 Поиск в FivelВ блокнот
C3-C6 Конденсатор0.1-1 мкФ4 Поиск в FivelВ блокнот
C7 Электролитический конденсатор4.7мкФ 20В1 Поиск в FivelВ блокнот
C8 Электролитический конденсатор47 мкФ 10В1 Поиск в FivelВ блокнот
C9 Конденсатор47 мкФ1 Поиск в FivelВ блокнот
R1-R4, R18, R19 Резистор
4.7 кОм
6 Поиск в FivelВ блокнот
R5 Резистор
510 Ом
1 Поиск в FivelВ блокнот
R6-R10 Резистор
15 кОм
5 Поиск в FivelВ блокнот
R11, R12 Резистор
240 Ом
2 Поиск в FivelВ блокнот
R13-R17 Резистор
22 кОм
5 Поиск в FivelВ блокнот
LCDLPH8731-3C1 Поиск в FivelВ блокнот
Добавить все

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

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

Теги:

Опубликована: 0 0
Я собрал 0 1
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 5 Проголосовало: 1 чел.

Комментарии (11) | Я собрал (0) | Подписаться

0
Black #
Интересный приборчик, хоть и идея стара как мир. Но использовать графический дисплей здесь весьма к месту, если учесть, что размер символа можно урезать до 6х4 пикселя, что даст возможность уместить не мало текста. А вот питание сделано не очень здорово, хотя бы MC34063 поставили или что по круче, раз уж корпус под Крону. Но а так, лучше 3 батарейки АА или ААА и убрать стабилизатор.
Ответить
0
valexus #
Есть много схем для приема RS232 протокола и выводом на TV или VGA, там же можно и скорость выставить вплоть до 115200 и клаву подключать. На телек выводить проще и схема проще, правда мегу придется немного разгонять.
Ответить
0

[Автор]
Igoryosha #
Не спорю! Однако хотелось чего-то компактного. Разогнать мегу конечно можно, однако для настройки любительских конструкций, как по мне, хватает и небольших скоростей UART.
Ответить
0
Black #
А еще бы предложил приделать мониторинг шин i2c и SPI, для отладки пригодилось бы, такая фишка и компу с COM-портом фору даст
Ответить
0

[Автор]
Igoryosha #
Спасибо! А насчёт мониторинга i2c и SPI идея интересная, хотя тут наверное имеет смысл применять логический анализатор.
Ответить
0
Андрей #
Ищу что-то подобное, но с выходом на обычный ТВ (композитный ч/б выход) и возможностью установки скорости в 300 Бод (в качестве терминала для очень старого контроллера)... Было бы вообще классно немного модернизировать эту схему для олдскульщиков
Ответить
0

[Автор]
Igoryosha #
Модернизация схемы с выходом на TV в планах есть, только времени пока нет
Ответить
0
sector #
Можно ли применить дисплей LPH9157-2 (siemens c75) вместо этого? Или прошивку нужно заново писать?
Ответить
0
olegtur77 #
Собрал терминал. с жки LM15SGF не заработал, пришлось купить LPH , с ним заработало, но не всегда стартует инициализация, незнаю с чем связано. Проверял работу с ЖПС - приемником, все отображается. вообще вещица полезная. Пусть лежит. Спасибо автору.
Ответить
0
Сергей #
Схему пока не проверял,но в печатке есть ошибки.
В разьёме Com с внешним питанием Gnd висит в воздухе в то время как внешняя линия питания сидит на земле. Во втором разьёме контакт TX сидит на земле. Поправьте если ошибаюсь. Придётся править уже вытравленную печатку.
Ответить
0
Дмитрий #
Подскажите пожалуйста: как вывести строку на LPH8731?
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется электрическое сопротивление?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

AVR-программатор USB ASP
AVR-программатор USB ASP
Осциллограф DSO138 Raspberry Pi 2
вверх