Реле Tianbo - ресурс 10 млн переключений

ТВ терминал на базе микроконтроллера AVR

Vassilis Serasidis

Часто при разработке своих проектов на микроконтроллерах появляется проблема в том, что необходимо как-то отображать данные. Конечно решением может быть использование ЖК индикаторов или нескольких светодиодных дисплеев, просто используя светодиоды. Но если требуется отображение различных данных и этих данных будет много… Большие LCD модули еще остаются дорогими в цене, использование графических модулей затрудняется из-за сложного протокола контроля и управления. Для решения таковой проблемы можно использовать компьютер, передавая данные по последовательному интерфейсу с вашего устройства и данные будут отображаться на мониторе. Но очень часто случается так, что компьютер необходим для другой работы или занят другим пользователем.

Сравнительное тестирование аккумуляторов EVE Energy и Samsung типоразмера 18650

Решением проблемы может быть данная разработка. Для отображения данных, которые передаются пользовательским устройством по последовательному интерфейсу, используется обычный телевизор с небольшим размером по диагонали. Сейчас можно без особых трудностей найти такой телевизор.

При разработке данного устройства преследовались определенные цели:

  • дисплейный модуль должен быть максимально простым;
  • для отображения данных достаточно текстового и псевдографического режима;
  • за всю работу модуля должен отвечать лишь 1 микроконтроллер
  • использование совместимой IBM PC AT клавиатуры для ввода данных

AVR TV Terminal

В итоге было разработано два варианта ТВ терминала: встраиваемый (для использования в устройстве) и как отдельный модуль с внешним блоком питания.

Основные параметры ТВ терминала:

  • цветовой режим: черно-белый;
  • разрешение в текстовом режиме: 40 символов × 25 строк;
  • разрешение в псевдографическом режиме: 80 × 75 точек;
  • отображаемые символы: ASCII 32 – 127;
  • скорость последовательного интерфейса: 1200 бод – 115.2 КБод;
  • источник питания: 9.0 – 12.0 В (5.0 В для встраиваемой версии).

Схема двух вариантов устройства представлена на рисунке. Различия, лишь в том, что в отдельном модуле имеется простой преобразователь уровней RS232-TTL и стабилизатор напряжения 78L05.

AVR TV terminal
Кликните для увеличения

AVR TV terminal (smd version)


Как видите все основные функции возложены на микроконтроллер U1. Для текстового режима (40 символов × 25 строк) необходим минимальный объем памяти 1 КБайт, поэтому был выбран хорошо изученный и доступный микроконтроллер Atmega8 фирмы Atmel (для встраиваемой версии – в smd исполнении).

Микроконтроллер выполняет 3 задачи:

  • генерация видеосигнала;
  • прием символов с клавиатуры, декодирование и отправка по последовательному интерфейсу;
  • прием символов с последовательного интерфейса и сохранение их в памяти.

Организация одновременного выполнения этих трех процессов была самой трудной задачей. Генерация видеосигнала должно быть крайне точной, поэтому исходный код программы микроконтроллера был написан на ассемблере. Рабочая частота микроконтроллера – 20 МГц, предпочтительнее, конечно было бы 22 МГц, но в целях повторяемости была выбрана 20 МГц, вследствие этого присутствуют некоторые различия в горизонтальной ширине пикселей.

Источник питания и преобразователь логических уровней включены в версию отдельного модуля. Для упрощения схемы использовался вариант преобразователя на двух транзисторах, при небольших расстояниях последовательной линии. При увеличении расстояния возможно появление ошибок на высоких скоростях обмена. Также хочется отметить, что необходима определенная осторожность при использовании указанного типа клавиатуры. Энергопотребление многих из них в пределах допустимого, но не исключаются варианты у которых потребление более 100 мА. Повышенное потребление может вывести из строя регулятор напряжения U2 78L05. В этом случае лучше использовать регулятор напряжения 7805 в корпусе TO220.

Клавиатуру можно подключать с коннектором PS/2 или DIN5. Устройство в виде отдельного модуля рассчитано сразу для подключения PS/2 клавиатуры. Возможно использование переходника DIN5/PS2 для клавиатур со старым вариантом разъема DIN5.

При программировании микроконтроллера необходимо выставить Fuse-биты: RESET=ON, BROWN-OUT LEVEL 4.0V, OSCILLATOR=EXT. CRYSTAL HIGH FREQ. Правильно запрограммированный микроконтроллер генерирует видеосигнал, при подаче питания на экране ТВ отображаются текущие параметры, спустя 3 с терминал полностью готов к работе. Если нет синхронизации на необходимо подобрать резистор R7.

Список использованных компонентов

Вариант – отдельный модуль

Компонент,
обозначение на схеме

Значение

Кол-во

Примечание

U1

ATMEGA8-16

1

корпус DIL28

U2

78L05

1

стабилизатор 5.0 В

T1

BC547

1

или аналогичный NPN

T2

BC557

1

или аналогичный PNP

XT1

20 МГц

1

кварцевый резонатор

D1,D2,D4

1N4148

1

-

D3

BAT48

1

-

C1,C2

15 пФ

2

керамические

C3

10 мкф/16 В

1

электролитический или танталовый

C4

100 мкф/16 В

1

электролитический или танталовый

C5-C8

100 нФ

4

керамический

R1-R5

4.7 кОм

5

 

R6,R10,R11

10 кОм

1

 

R7

1 кОм

1

 

R8

82 Ом

1

 

R9

330 Ом

1

 

CN1

CANON 9 MALE

1

разъем DB9-Male

CN2

NAZ 2.5

1

разъем питания

CN3

CINCH FEMALE

1

разъем «Видео»

CN4

Mini DIN6 FEMALE

1

разъем PS2

J1

JUMPER

3×2

 

Встраиваемая версия (smd компоненты)

Компонет,
обозначение в схеме

Значение

Кол-во

Примечание

U1

ATMEGA8-16

1

корпус TQFP32

XT1

20 МГц

1

кварцевый резонатор

C1,C2

15 пФ

2

Керамический (корпус 0805)

C3,C4

100 нФ

2

Керамический (корпус 0805)

C5

10 мкф/10 В

1

танталовый smd

R1,R2

47 Ом

2

smd 1206

R3

1 кОм

1

smd 0805

R4

82 Ом

1

smd 0805

R5

100 Ом + 220 Ом

1+1

smd 1206

R6,R7

10 кОм

2

smd 1206, 0805

R8

4.7 кОм

1

1206

J1

JUMPER

3×2

 

ТВ терминал распознает три типа символов:

  1. Символы управления
  2. Отображаемые символы таблицы ASCII 32-127
  3. Псевдографические символы 128 – 191

Все оставшиеся символы (21) отображаются в виде квадратика. Символы 192 – 255 игнорируются. Активные символы управления представлены в таблице.  

Символ

Десятичное
значение

HEX-значение

Описание

SOH

1

0×01

Установка режима перевода строки “CR или LF” (Unix, Apple)

STX

2

0×02

Установка режима перевода строки "CR и LF" (Microsoft)

BS

8

0×08

Backspace

TAB

9

0×09

Horizontal TAB - move cursor to position modulo 8

LF

10

0×0A

Line feed (перевод строки) (см. также SOH и STX)

FF

12

0×0C

Form feed (новая страница) (очистка экрана)

CR

13

0×0D

Возврат каретки (see SOH and STX as well)

DC1

17

0×11

Курсор вкл.

DC2

18

0×12

Курсор выкл.

DC3

19

0×13

Следующий байт определяет Х позицию курсора

DC4

20

0×14

Следующий байт определяет Y позицию курсора

Точка начала отсчета позиции курсора – верхний левый угол – координаты (0,0), нижний правый угол – координаты (39,24). Псевдографические символы представляются как указано на рисунке ниже, кодируются 6 битами.

Отображаемые символы можете набирать на клавиатуре сразу. Специальные символы (символы управления и символы по таблице выше 127) могут быть переданы при помощи клавиши “левый Alt”, сначала нажимается клавиша “Alt” затем последовательно две клавиши соответствующие шестнадцатеричному значению символа. К примеру, для команды LF нужно нажать “Alt” + “0” + “A”. Таким образом вы можете Вы можете передавать все символы таблицы от 0 до 255.

Еще одна особенность – при нажатии клавиши F12, клавиатура переключается в режим “SCAN mode”. В этом режиме при нажатии клавиш передается строка содержащая Scan-код нажатой клавиши. Если нажать клавишу F12 еще раз – этот режим отключается.
При помощи переключателя J1 (jumper) выбирается скорость коммуникации по последовательному интерфейсу. В таблице представлены положения переключателя и соответствующие скорости.

Скорость

J1 - 2

J1 - 1

J1 - 0

115200 Бод

ON

ON

ON

57600 Бод

ON

ON

OFF

38400 Бод

ON

OFF

ON

19200 Бод

ON

OFF

OFF

9600 Бод

OFF

ON

ON

4800 Бод

OFF

ON

OFF

2400 Бод

OFF

OFF

ON

1200 Бод

OFF

OFF

OFF

Основное применение устройства: устройства, где требуется отображение различного рода информации большого объема, а также на этапе отладки пользовательских разработок на микроконтроллерах.

Скомпилированный код для программирования микроконтроллера (hex-файл)- скачать

Рисунки печатных плат (кликните для увеличения, сохраните и распечатайте)


Вариант: отдельный модуль


Вариант: встраиваемый модуль (smd)


Вид со стороны компонентов (отдельный модуль)


Вид со стороны компонентов (встриваемый модуль, smd)

Перевод: Vadim по заказу РадиоЛоцман

На английском языке: AVR TV terminal

Электронные компоненты. Бесплатная доставка по России
Для комментирования материалов с сайта и получения полного доступа к нашему форуму Вам необходимо зарегистрироваться.
Имя
Фрагменты обсуждения:Полный вариант обсуждения »
  • Слов нет! Ибо, что-то мне подсказывает, что девайс сей полезен будет весьма!!!!
  • Возможно для отладки своих устройств или для встраивания в свои устройства... Сам тоже решил собрать терминал, но нет времени, для себя и так что бы проверить работоспособность...