Устройство «ВИДЕОТЕКСТ FRS1.00»

Внимание: устройство работает на повышенной частоте и напряжении питания микроконтроллера. Повторение этого устройства может вывести микроконтроллер из строя. ВсЈ на ваш риск.

Назначение: вывод символьной информации на видеомонитор (телевизор).

Параметры видеосигнала:
- видеосигнал композитный, черно-белый, совместимый с PAL/SECAM (625 строк, 50 Гц);
- размах видеосигнала: 0..1 В.

Параметры изображения:
- количество символов по горизонтали - 32;
- количество символов по вертикали - 29;
- количество одновременно выводимых символов - 928;
- каждый символ представляет собой матрицу размером 5х7 точек;
- количество символов знакогенератора - 224 (коды от $20 до $FF включительно, кодировка КОИ-8).

Интерфейсы:
- параллельный, асинхронный, без стробирования (с кодом "повтор символа");
- последовательный RS-232 (9600 бит/с, 8N1);
- последовательный, совместимый с I2C (скорость до 150 кбит/с);

Принцип работы:

Экран видеотекста имеет виртуальный курсор с координатами вывода: CX и CY.
Горизонтальная координата CX должна находиться в пределах 0..31, вертикальная координата CY должна находиться в пределах 0..28.
Вывод символьной информации производится в текущую позицию курсора. После вывода символа виртуальный курсор автоматически переводится на следующее знакоместо (по горизонтали). По достижению конца строки виртуальный курсор автоматически передвигается на нулевую позицию следующей строки. По достижению конца экрана курсор устанавливается в положение 0, 0 (левый верхний угол экрана). Кроме вывода символов предусмотрены специальные байты - команды управления с кодами:

Код управления Описание
0x01, CX Установка координаты курсора CX
0x02, CY Установка координаты курсора CY
0x08 Перевод курсора на один символ назад (CX = CX - 1)
0x0A Перевод курсора на одну строку вниз (CY = CY + 1)
0x0C Перевод курсора в положение CX=0, CY=0 с очисткой экрана
0x0D Перевод курсора на одну строку вниз (CY = CY + 1)
и установка нулевой позиции по горизонтали (CX = 0)
0x1E Код "повтор" (только для параллельного интерфейса)

Пример: очистить экран и вывести три символа "F" в позицию CX=0, CY=13.
Передаваемые коды: 0x0C, 0x01, 0x00, 0x02, 0x0D, 0x46, 0x46, 0x46.

Работа по параллельному интерфейсу:

Устройство периодически сканирует входной параллельный порт IN, анализирует его состояние и сравнивает с предыдущим принятым кодом. В случае если код на входе отличается от предыдущего приинятого, устройство автоматически интерпретирует его как новый входной код. При обработке кода, последний дублируется в порту OUT и может быть анализирован передатчиком как подтверждение приема кода устройством. Для передачи двух одинаковых кодов сначала передается первый код, затем код "повтор" (код 0x1E). Например, для передачи 10 символов "пробел" с кодом 0x20, в устройство необходимо передать последовательность кодов: "0x20 0x1E 0x20 0x1E 0x20 0x1E 0x20 0x1E 0x20 0x1E".
Возможен также режим передачи кодов без контроля его прохождения на порт OUT. В этом случае необходимо передавать новые коды для вывода не чаще чем каждые 65 мкс.

Работа по последовательному интерфейсу RS-232:

Для передачи выводимых кодов по последовательному интерфейсу необходимо использовать скорость 9600 бит/с, количество бит данных - 8, контроля четности нет, 1 стоп-бит (8N1). Прием информации в устройство происходит по линии RX.
Код "повтор" не используется. При приеме кода последний передается обратно по тому же интерфейсу по линии TX. Так как скорость 9600 бит/с достаточно медленная для устройства, контролировать прием кода устройством не обязательно.
Допустима работа с RS-232 с использованием TTL-сигналов. В этом случае можно не использовать узел оптически развязанного порта, а подавать сигналы напрямую на линии TXD и RXD.
Используемая схема позволяет подключать устройство непосредственно на COM-порт компьютера.

Работа по последовательному интерфейсу I2C:

При использовании интерфейса I2C скорость передачи может быть до 400 кбит/c (реально проверялось на скоростях до 120 кбит/с). Информация передается по двум линиям - линии тактирования SCL и линии данных SDA. Устройство работает как подчиненное (slave) и имеет адрес 0x23.
Для приема кодов передатчик сначала должен установить состояние "START" шины I2C, передать адрес устройства и установить бит направления в "0" (запись). Устройство подтверждает принятие своего адреса установкой бита подтверждения ACK в ноль.
При получении сигнала ACK передатчик может передать один или несколько кодов для вывода. Каждый код подтверждается нулевым уровнем бита ACK. По окончанию передачи передатчик должен установить на шине I2C состояние "STOP". Повторная установка состояния "START" может происходить не ранее чем через 65 мкс после установки состояния "STOP".
Во время работы по интерфейсу I2C код "повтор" не используется. Если устройство не успевает обработать принятый код, то оно приостанавливает прием кодов для обработки путем удержания линии SCL в низком логическом уровне.

Пример передачи трех символов "A" в устройство:
1. Установить состояние "START"
2. Передать байт 0x46 (адрес 0x23 и бит "0" - запись в устройство);
3. Передать байт 0x41 (код знака "A");
4. Передать байт 0x41 (код знака "A");
5. Передать байт 0x41 (код знака "A");
6. Установить состояние "STOP".

Схема устройства:

Уровень сигнала VCC: 6 В. Возможно уменьшение напряжения VCC, но при этом стабильность работы микроконтроллера может нарушиться. Вместо АОТ101 можно использовать К249КН2А. Для увеличения четкости картинки можно поставить конденсатор емкостью 0.1 uF последовательно с сигналом VIDEO (хотя при этом немного пострадает яркость изображения).

При использовании импульсного источника для питания устройства (например, компьютерного) необходимо помнить, что соединение устройства и видеомонитора производить только в выключенном состоянии.

Программа для микроконтроллера: здесь.

Изменения в прошивке:
14.02.2002 - выложены исходные тексты
12.02.2002 - самая первая версия

Все права на данное устройтсво принадлежат Фролову С. В. Повторение устройства возможно только в некоммерческих целях. Использование исходных текстов или их части возможно только в некоммерческих целях.

Все вопросы и интересные предложения направляйте по e-mail: frs@overlink.ru.

Сергей Фролов

Санкт-Петербург, 2002

Страница: http://www.ussr.to/Russia/lautenaus/vi_frs.htm

Назад