Генератор видеосигнала своими руками

Генератор видеосигнала на микроконтроллере PIC16F84

Идея создать такой проект появилась у меня после прочтения статьи Rickard Gunee «How to generate video signals in real-time using a PIC16F84» ( перевод смотрите здесь) и знакомства с его играми Pong и Tetris.
Оказывается для генерации видеосигнала достаточно всего одной микросхемы и двух резисторов. То есть можно сделать буквально карманный генератор видеосигнала размером с брелок. Такой прибор пригодится телемастеру. Его можно использовать при сведении кинескопа, регулировке чистоты цвета и линейности.

Работа генератора и его характеристики.
Генератор подключается к видеовходу телевизора, обычно это разъем типа «тюльпан» или SCART.
Прибор генерирует шесть полей:
— текстовое поле из 17 строк;
— сетка 8×6;
— сетка 12×9;
— мелкое шахматное поле 8×6;
— крупное шахматное поле 2×2;
— белое поле.

Текстовое поле. Сетка 8×6. Сетка 12×9.
Шахматное поле 8×6. Шахматное поле 2×2. Белое поле.
Переключение между полями осуществляется кратковременным ( длительностью менее 1с. ) нажатием кнопки S2. Удержание этой кнопки в нажатом состоянии более длительное время ( дольше 1 с. ) приводит к выключению генератора ( микроконтроллер переходит в состояние «SLEEP» ). Включение генератора производится нажатием кнопки S1. О состоянии прибора ( включен / выключен ) сигнализирует светодиод.
Технические характеристики прибора:
— тактовая частота — 12 МГц;
— напряжение питания 3 — 5 В;
— ток потрребления в рабочем режиме:
. — при напряжении питания 3В — около 5мА ;
. — при напряжении питания 5В — около 12мА ;
— частота кадров — 50 Гц;
— число строк в кадре — 625.

Схема.
Схема очень проста.
Вся работа по формир-
ованию видеосигнала
выполняется программой,
зашитой в микрокон-
троллере. Два резистора
вместе с сопротивлением
видеовхода телевизора
обеспечивают необходи-
мые уровни напряжения
видеосигнала:
— 0 В — синхроуровень;
— 0,3 В — уровень черного;
— 0,7 В — уровень серого;
— 1 В — уровень белого.
. . . . . . . . . .
Для формирования видеосигнала используется нулевой бит PORTA и целиком весь PORTB. ( Этот порт работает в сдвиговом режиме. Несмотря на то, что сигнал снимается только с его нулевого бита, программа использует его весь. Поэтому все биты PORTB настроены как выходы.) Первый бит PORTA используется для индикации состояния генератора. Когда прибор включен, — светодиод горит. Когда прибор выключен, — светодиод погашен. Третий бит PORTA используется для переключения режимов работы генератора и его выключения. Кратковременное нажатие кнопки S2 позволяет перейти от одного поля генератора к другому. При удержании этой кнопки в нажатом состоянии дольше 1 с. прибор выключается ( микроконтроллер переходит в состояние «SLEEP» ). Чтобы включить генератор необходимо выполнить сброс. Это осуществляется нажатием кнопки S1. Напряжение питания прибора можно выбрать в пределах 3 — 5 В. При этом соответственно должны быть подобраны номиналы резисторов.
3В . – R5=456Ом и R6=228Ом
3,5В – R5=571Ом и R6=285Ом
4В . – R5=684Ом и R6=342Ом
4,5В – R5=802Ом и R6=401Ом
5В . — R5=900Ом и R6=450Ом
Здесь указаны расчетные значения. Реально можно ставить резисторы из стандартного ряда, например для 5В — 910Ом и 470Ом, а для 3В — 470Ом и 240Ом.
Напряжение питания генератора может быть и меньше 3В. Для каждого конкретного PICа минимум следует определять эксперементально. У меня, например, 20МГц-й PIC выпуска 2001 года работал и при 2,3 В.

Прграмма.
Программа формирует 6 полей. Каждое поле состоит из 301 строки ( 300 информационных строк + одна черная ). Вообще расчетное число – 305 ( 625 строк растра — 15 строк кадровой синхронизации = 610. Информация в кадре выводится через строку ( подробнее об этом смотри здесь ), поэтому 610 / 2 = 305 ). Но при таком числе строк размер растра по вертикали получается немного больше того, что формирует видеосигнал, передаваемый телецентром.
Первая строка в каждом поле черная. В это время опрашивается состояние кнопки S2, вычисляется время удержания ее в нажатом состоянии и определяется необходимость перехода от одного поля к другому.
В графических полях есть небольшие искажения вертикальных линий. Это связано с тем, что длина некоторых строк на пару тактов больше остальных из за необходимости установления счетчиков циклов. Вцелом подпрограммы, формирующие графические поля, очень просты, поэтому нет необходимости их коментировать.
Подробнее разберем ту часть программы, которая формирует текстовое поле. Это наиболее сложный участок программы, занимает большую ее часть, использует максимум ресурсов микроконтроллера ( вся память данных и значительная часть ОЗУ ). Здесь используются фрагменты кода, взятые из игры Pong , которую написал Rickard Gunee.
Текстовое поле состоит из 17 строк, каждая из которых может состоять не более, чем из восьми символов. Символы отображаются через строку, то есть одна строка текста занимает 17 строк растра. ( Такое отображение связано с ограниченными возможностями PIC . ) Информация о графике символов хранится в памяти программ в разделе таблица. Например букве «Т» соответствует такой фрагмент кода:

Читайте также:  Брус задних фонарей газель своими руками

Информация о тексте строк хранится в памяти данных ( 64 слова = 8 строк по 8 символов ). Например в строке 08h ( адресами от 08h до 0Fh ) записано следующее:.20.60.48.50.90.58.20 20. Каждое значение — это координата ( смещение от начала ) символа в таблице. Значение .20. соответствует пробелу, .60. — буква «В», .48. — буква «И», и так далее. А все вместе образует ‘_ВИДЕО__’.
Разберем на примере, как выводится текст. Согласно программе, в 12-й текстовой строке экрана необходимо вывести информацию, на которую ссылается строка памяти данных 28h ( A0 B8 68 C8 D8 70 E0 D0 ). Таким образом, в следующих 17 строках растра должен быть выведен текст: » p i c 1 6 f 8 4 «. Это происходит следующим образом. В первой из 17 строк выводится только черный уровень. В эти 64 мкс, пока на экране отображается черная строка, в регистры ОЗУ переписываются «верхние значения» символов: 00h.от ‘p’, 08h от ‘i’, 00h от ‘c’ 18h от ‘1’ и так далее . Во время следующей строки эти данные последовательно передаются в PORTB, то есть на видеовыход. Третья строка снова черная. За время ее выполнения, в буфер переписываются «вторые сверху» значения символов: 00h.от ‘p’, 00h от ‘i’, 00h от ‘c’ 1Ch от ‘1’… В четвертой строке эти данные выводятся на экран. И так далее, пока вся строка не будет отображена.
Подпрограмма кадровой синхронизации целиком взята из игры Pong, которую написал Rickard Gunee . Эта подпрограмма короткая, но довольно запутанная. Если объяснять, как она работает то, получится еще длиннее и запутаннее. Лучше всего положить рядом текст подпрограммы и рисунок осциллограммы кадровых синхроимпульсов, и не торопясь разобрать каждую строку кода. Скажу только, что подпрограмма начинает выполняться не с верхней строчки, а из середины ( 🙂 ), от метки ‘vertsync’.

Разгон PIC16F84.
Как видно из схемы в этом проекте микроконтроллер работает на частоте 12МГц. На сегодняшний день выпускаются три версии PIC16F84: на 4МГц, на 10МГц и на 20МГц. ( на 1.1.2002 соотношение цен приблизительно такое: $3.5, $5.3 и $6.3) В своем проекте Pong Rickard Gunee утверждает, что использовал 4МГц-е PIC16F84 и они часами работали на частоте 12МГц без проблем. Я попробовал, и действительно 4МГц-й PIC нормально работает на частоте, которая в три раза ( . ) превышает его допустимую частоту ( правда я не стал испытывать судьбу и включал генератор лишь на несколько минут ). При этом у 4МГц-го PICа потребляемый ток был на 10 .. 20 % больше, чем у 20МГц-го ( отсюда, видимо и ограничение по частоте ). Думаю, что 10МГц-й микроконтроллер можно разгонять до 12МГц без риска, но в коммерческих проектах этого, конечно же, делать не стоит.

Читайте также:  Граверная шайба своими руками

Изготовление.
Скачать архив проекта ( схема + ‘.asm’ файл + .’hex’ файл = 11,7 КБайт ) можно здесь . Не забудьте записать информацию о текстовом поле в память данных. О том, как это сделать, сказано в ‘.asm’ файле.

C этой схемой также часто просматривают:

Генератор телевизионных сигналов на простых микросхемах
Частотомер — цифровая шкала на PIC16CE625 (PIC16F84).
Цифровая шкала — частотомер на PIC16F84
ПРОСТОЙ ГЕНЕРАТОР СИГНАЛОВ НЧ И ВЧ
ГЕНЕРАТОР ИМПУЛЬСОВ НА PIC-КОНТРОЛЛЕРЕ
КОНСТРУКЦИИ И. БАКОМЧЕВА
ТЕЛЕФОННЫЕ АППАРАТЫ С КЛАВИШНЫМ НОМЕРОНАБИРАТЕЛЕМ
Простые датчики для охранной сигнализации
Имитатор для проверки телефонных аппаратов

Источник

Мой сайт

Генератор Испытательных Телевизионных Сигналов (ГИТС) необходим для ремонта проверки и регулировки параметров телевизоров.

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

Предлагаемый ГИТС формирует десять сигналов.

  • — Горизонтальные цветные полосы.
  • — Вертикальные цветные полосы.
  • — Чёрное поле.
  • — Белое поле.
  • — Синее поле.
  • — Красное поле.
  • — Зелёное поле.
  • — Шахматное поле.
  • — Совмещённый сигнал сетки и точек.
  • — Сигнал для центровки растра.

Сигналы соответствуют основным параметрам системы вещательного

Все выше перечисленные параметры, а также управление генератором реализовано программно на микроконтроллере фирмы MICROCHIP PIC16F84 [2].

Микроконтроллеры семейства PIC16F84 объединяют все передовые технологии микроконтроллеров. Позволяют осуществлять многократное электрически перепрограммирование, минимальное энергопотребление, высокую производительность, мощную RISC архитектуру. Широкие возможности и низкая стоимость сделали их хорошим выбором для инженерных решений.

Схема модуля формирователя сигналов синхронизации и основных цветов показана на рис1.

Выводы порта В микроконтроллера DD1 (RB1-RB6) используются для подключения 9-кнопочной клавиатуры, RB1-RB3 запрограммированы на вывод данных, RB4-RB6 — на ввод. Вывод RB0 запрограммирован как выход сигналов синхронизации. RA0, RA1, RA2 — Выходы сигналов основных цветов: синего, красного, зелёного соответственно. RA3 используется для формирования сигналов 100% -ной амплитудной яркостью при формировании уровня белого, 75% -ной амплитудной яркостью и 100%-ной насыщенностью при формировании цветов. Выходы (входы) RA0-RA3 порта А имеют уровни TTL (5V.). В таблице 1 приведено состояние логических уровней на выводах RA0-RA3 при формировании испытательного сигнала вертикальных цветных полос.

На элементах R1,R2,VD1,C4 выполнен узел внешнего сброса микроконтроллера при включении питания. Добавив резисторную матрицу Рис 2. можно получить чёрно-белый видео сигнал. В принципе такого генератора вполне достаточно для проверки, ремонта развёртывающих устройств телевизора, регулировки геометрических искажений растра, регулировки сведения, регулировки баланса цвета, контроля прохождения сигнала по цепям телевизора. Кроме того, многие современные телевизоры не имеют каких-либо регулировок в блоке обработки цвета кроме регулировки баланса цвета. Поэтому цветные испытательные сигналы требуются не часто.

Но если требуется более функциональный прибор, с формированием цветного сигнала необходим кодер основных сигналов RGB в полный телевизионный сигнал. Поскольку в нашем регионе (Латвия) телевизионное вещание ведётся в стандарте PAL, то рассматривались кодеры только этого стандарта. Из доступных на рынке микросхем кодеров PAL (MC13077,MC1377,CXA1145) была выбрана CXA1145 из соображения наиболее простого изготовления кодера (на изготовление кодера ушло десять минут). В мастерской по ремонту игровых приставок была куплена неисправная плата от игровой приставки Sega MegaDriwe и от платы отрезана (ножницами для металла) часть кодера фото 1.

Схема генератора вместе с кодером PAL на Рис 3.

Амплитуда входных сигналов RGB (выводы 2,3,4) микросхемы CXA1145 должна быть один вольт. Делители на резисторах R3-R11 необходимы для согласования уровней TTL с входными уровнями кодера. Сигнал синхронизации поступает на вывод 10 и имеет амплитуду 5V. Позиционные обозначения компонентов на схеме Рис.3 соответствуют обозначениям элементов на печатной плате кодера приставки SEGA MD2. Полный телевизионный сигнал PAL стандарта снимается с 20-го вывода микросхемы кодера. Выходные сигналы R0,G0,B0 выводы 23,22,21 можно использовать для подключения к европейскому разъёму «SCART». К сожалению, более подробного описания микросхемы CXA1145 найти не удалось. Так как не все телевизоры имеют входы видео сигнала, желательно иметь возможность подключения генератора к телевизору через гнездо для подключения антенны. Для этого понадобится радиочастотный модулятор. Проще всего использовать модулятор от приставки SEGA или других игровых приставок, но качество работы таких модуляторов не очень хорошее. Более качественные модуляторы у видео магнитофонов и спутниковых тюнеров. Автор использовал модулятор от видео плеера SONY фото 2. Хорошо, если удастся найти модулятор с переключением стандарта звука B/G D/K. Это позволит (добавив НЧ генератор 1кГц) настраивать канал звука с разными поднесущими частоты звукового сопровождения (5.5/6.5).

Прошивка микроконтроллера файл Gp_txt.zip.

Схема программатора prg4.gif. Программу для записи микроконтроллера можно получить на сайте: http://www.ic-prog.com/index1.htm

При программировании кристалла следует установить:

Фотографии конструкции и внешнего вида прибора. Размеры корпуса 150х80х33 мм.

Цветные Полосы. RA0 (B) RA1(R) RA2(G) RA3(Y)
1. Белый 1 1 1 1
2. Жёлтый 0 1 1 0
3. Голубой 1 0 1 0
4. Зелёный 0 0 1 0
5. Пурпурный 1 1 0 0
6. Красный 0 1 0 0
7. Синий 1 0 0 0
8. Чёрный 0 0 0
  • При необходимости к генератору может быть подключен формирователь сигналов ТЕЛЕТЕКСТА . Подробнее

Вариант печатной платы, которую можно взять за основу при самостоятельном изготовлении кодера на CXA1145. Фаил 71кб. pcb.zip

    1. Индивидуальные видео средства. Под редакцией С.А. Седова КИЕВ НАУКОВА ДУМКА 1990 752с.
    2. Однокристальные микроконтроллеры MICROCHIP: PIC16F8X. /Пер. С англ. А.Н.Владимирова. — Рига; ORMIX, 1996. — 120c.
Читайте также:  Как измерить свой размер руки для перчаток

По просьбам посетителей сайта выкладываю новую версию прошивки микроконтроллера генератора испытательных сигналов. В отличие от предыдущей версии, выбор необходимого испытательного сигнала осуществляется двумя клавишами: «паттерн + » и «паттерн — «. Сканирование клавиш происходит в фоне основной программы формирования испытательного сигнала (многозадачный режим ). Поэтому при переключении паттернов не происходит срыва синхронизации. Испытательные сигналы переключаются в следующей последовательности:

1. Сигнал для центровки растра. >>> 2. Совмещённый сигнал сетки и точек. >>> 3. Шахматное поле.>>> 4.Горизонтальные цветные полосы.>>> 5. Вертикальные цветные полосы. >>> 6. Красное поле.>>> 7. Зелёное поле. >>> 8. Синее поле. >>> 9. Белое поле. >>> 10.Чёрное поле.

Схема подключения клавиш.

Фотографии конструкций присланные посетителями сайта:

Фотографию своего варианта конструкции ГТИС прислал Rimas из Литвы. В качестве кодера PAL использована микросхема MC1377

Фотографии прислал Tomas V. , Siauliai, Litva.

Фотографии прислал Jevgenij, Vilnius, Litva.

Микрогенератор с кодером PAL AD725. Плата имеет размер 17 Х 90 мм.

© 2001 Alexandr Musatov. Все права защищены. При использовании материалов данного сайта ссылка на источник обязательна. Информация только для частного использования! Коммерческое использование запрещено!

Источник

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