Генератор субтитров из КР580ВГ75

Советские программируемые калькуляторы, микрокомпьютеры и большие ЭВМ, не попавшие в другие разделы

Moderator: Shaos

Num Lock
Senior
Posts: 178
Joined: 26 Oct 2006 11:55
Location: Москва

Генератор субтитров из КР580ВГ75

Post by Num Lock »

Здравствуйте, уважаемые форумопосетители!
В настоящее время среди радиолюбителей весьма популярны самодельные генераторы субтитров. Эти приборы позволяют накладывать текст, генерируемый несложной ЭВМ, на внешний видеосигнал. Вот некоторые из таких конструкций:
http://alternatezone.com/electronics/vcg.htm
http://www.usblcd.de/lcdproc/stv5730.php4
http://www.knology.net/~gdion/videoverlay.html
http://www.circuitcellar.com/avr2004/wa ... stract.pdf
http://perso.orange.fr/loicmarty/osdubz/osdubz.htm
http://perso.orange.fr/loicmarty/5730/l ... u_5730.htm
Все эти конструкции подразделяются на две категории. Одни используют микросхему STV5730A, которая снята с производства, дефицитна и дорога. Другие используют программную генерацию видеосигнала, но при этом у МК остаётся слишком мало ресурсов на сервисные функции.
Предлагаю использовать в качестве генератора субтитров многочисленные ЭВМ на основе видеоконтроллера КР580ВГ75. Для этого необходимо:
1. Выделить из внешнего видеосигнала синхроимпульсы. Это очень простая задача, для выполнения которой давно существует микросхема LM1881;
2. Засинхронизировать работу микросхемы КР580ВГ75 синхроимпульсами, выделенными из внешнего видеосигнала. А вот это задача посложнее, поскольку непонятно, как это сделать.
Кто какие идеи предложит?
Shiru Otaku
Retired
Posts: 490
Joined: 17 Mar 2002 00:00

Post by Shiru Otaku »

Боюсь, конструкция получится довольно сложная (ВГ75, ПЗУ знакогенератора, логика выхода, схема наложения на видеосигнал, управление ВГ-шкой, которое далеко не плевок в порт - в том-же РК для этого используется DMA). И фиговая - символы с ВГ75 получаются мелкими и трудночитаемыми, что совершенно не катит для субтитров.
User avatar
CHRV
God
Posts: 1101
Joined: 29 Dec 2003 08:00
Location: Москва
Contact:

Post by CHRV »

Shiru Otaku wrote:Боюсь, конструкция получится довольно сложная (ВГ75, ПЗУ знакогенератора, логика выхода, схема наложения на видеосигнал, управление ВГ-шкой, которое далеко не плевок в порт - в том-же РК для этого используется DMA). И фиговая - символы с ВГ75 получаются мелкими и трудночитаемыми, что совершенно не катит для субтитров.
Согласен. проще какой нить микроконтроллер достаточно шустрый а лучше специализированную фигню.
Фишка в том что видеосигнал надо раскладывать на составляющие и потом еще складывать (если с прозрачностью), а потом модулировать обратно.
Num Lock
Senior
Posts: 178
Joined: 26 Oct 2006 11:55
Location: Москва

Post by Num Lock »

Да нет, машину с КР580ВГ75 взять готовую, добавить только цепи синхронизации внешним видеосигналом, и готово. Но куда их к этой микросхеме подключать?
Shiru Otaku
Retired
Posts: 490
Joined: 17 Mar 2002 00:00

Post by Shiru Otaku »

Выложить тебе даташит на 8275 (ВГ75)?

Если взять готовую машину - то проблема с слишком мелким шрифтом будет очень актуальна (матрица символа 6x8 пикселей, на экране отображается 64x25, с пустыми полями слева-справа). И, кстати, я-бы пожалел готовую машину, так как их осталось в природе крайне немного. Их надо беречь и пылинки сдувать, а не курочить на титровальные агрегаты:)

Для титров можно купить Daewoo MSX CPC400S (я такой за 1000р купил в полном комплекте), у него уже всё для этого предусмотрено - композитные вход и выход.
Num Lock
Senior
Posts: 178
Joined: 26 Oct 2006 11:55
Location: Москва

Post by Num Lock »

Не курочить. Машина остаётся в том же корпусе, выглядит так же, как и прежде. Работает так же! Добавляется только функция синхронизации.
Даташит на КР580ВГ75 видел какой-то неполный, куда синхронизацию подавать, не понял. :(
DAEWOO MSX - машина громоздкая слишком.
Shiru Otaku
Retired
Posts: 490
Joined: 17 Mar 2002 00:00

Post by Shiru Otaku »

Так как 580-ый комплект - клон 82xx, то и даташита на ВГ75 не бывает (изначально микросхемы набора поставлялись прямо с родной Intel'овской документацией). Вот тебе родной даташит на 8275 (3.8мб, на sendspace).

CPC400s не такая уж и громоздкая, если использовать без монитора - то она всего раза в два больше какой-нибудь РК-шки (к которой, между прочим, ещё и магнитофон/дисковод нужен, а у MSX'а сразу есть дисковод, и возможность легко сделать ROM-диск, даже не открывая корпус. И титры цветные будут, и шрифт можно любой сделать, и вообще.. Ладно:).
Num Lock
Senior
Posts: 178
Joined: 26 Oct 2006 11:55
Location: Москва

Post by Num Lock »

Вот это всё я и видел. Там описание не всех ног. Для начала такой вопрос: существует ли у этой микросхемы вообще возможность внешней синхронизации?
О! Можно ли ногу 6 для синхронизации использовать? Она, как я понял, предназначена для подтверждения, что запрос на DMA был выполнен. Т.е. как только микросхема узнала, что запрос был выполнен, начинается обращение к видео-ОЗУ и вывод кадра?
ЗЫ видел, как субтитры на "Агате-9" делали (синхронизировали же как-то!), но там видеоконтроллер совсем другой.
Shiru Otaku
Retired
Posts: 490
Joined: 17 Mar 2002 00:00

Post by Shiru Otaku »

Насколько я понимаю, у ВГ75 нет как раз внутренней синхронизации, она всегда внешняя. На вход идёт тактовая частота, внутри программно задаются различные параметры (сколько символов в строке, сколько строк); ширина символа в пикселях вообще задаётся внешней схемой (регистр, сдвигающий данные из ПЗУ знакогенератора). По мере прохода по растру ВГ75 даёт запросы на контроллер DMA (запрашивает коды символов, с упреждением на строку, и последовательностями программируемой длины).

Дать схему Радио 86РК?
Shiru Otaku
Retired
Posts: 490
Joined: 17 Mar 2002 00:00

Post by Shiru Otaku »

Имхо, проще забить на этот ВГ75, сделать простой растровый видеорежим (скажем, того-же Специалиста взять за основу, который модифицирован HardWareMan'ом, с SRAM вместо DRAM). Там можно будет любые шрифты использовать, а в случае с ВГ75 подключение ОЗУ знакогенератора, доступного из системы, будет целым геммороем, и возможные размеры шрифта будут крайне ограниченными (да ещё и только 128 символов в наборе!). Ну а проблему наложения сигнала в любом случае придётся решать отдельно от генератора изображения.
Num Lock
Senior
Posts: 178
Joined: 26 Oct 2006 11:55
Location: Москва

Post by Num Lock »

Только фрагмент, где видеоконтроллер показан.
Так, это радует, что она всегда внешняя. Только я вот что подумал, если синхронизацию подавать не от проца, а снаружи, то иногда она будет пытаться считывать данные из видео-ОЗУ тогда, когда оно занято (т.е. в него что-то пишут). Как эту проблему решить?
И куда именно подавать синхру?
Машины на основе других видеоконтроллеров сразу отпадают вот по какой причине: они все разные (у специалиста один, у вектора другой, у ориона третий, у спекообразных вообще четвёртый), а которые на КР580ВГ75 - все в части видеоконтроллера примерно одинаковы (что РК, что апогей, что партнёр, что микроша), и можно придумать универсальный способ переделки, который подходит ко всем таким машинам.
Shiru Otaku
Retired
Posts: 490
Joined: 17 Mar 2002 00:00

Post by Shiru Otaku »

Схема вот (вся, качество низкое, если надо - есть получше, в djvu): http://retro.bip.ru/RK86/CPU/CPUP3.jpg
Описание к ней из журнала вот: http://retro.bip.ru/RK86/CPU/CPU.html

Интересующий тебя фрагмент - справа внизу схемы. Тактирование ВГ75 идёт через счётчик D3 на 30-ый вывод ВГ-шки; этот-же счётчик формирует остальные синхросигналы. Изображение символов формируется ПЗУ знакогенератора D12, регистром D15, и мелочёвкой рядом с ними.

Из ОЗУ считывает контроллер DMA, при этом проц тормозится. Внутри ВГ75 есть два строковых буфера, так что данные в любом случае успевают считаться.
Num Lock
Senior
Posts: 178
Joined: 26 Oct 2006 11:55
Location: Москва

Post by Num Lock »

И если неаккуратно засинхронизировать, то регенерация ОЗУ нарушиться может?
Ну, допустим, на ВГ75 подаётся что? Просто тактовая частота (какая она, кстати, там, после делителя?). Просто так туда (на 30 ногу) кадровые и строчные синхроимпульсы не подашь. Надо не просто привязать тактовую частоту КР580ВГ75 к частоте кадров внешнего видеосигнала, а именно привязать начало развёртки следующего кадра микросхемой к кадровому синхроимпульсу из внешнего видеосигнала. А как?
Желательно, конечно, ещё и строчную частоту к внешнему видеосигналу привязать, но это не обязательно. Если смириться с тем, что буквы будут немного уплывать по диагонали, можно строчную не привязывать, только кадровую.
Shiru Otaku
Retired
Posts: 490
Joined: 17 Mar 2002 00:00

Post by Shiru Otaku »

Да, если неправильно синхронизировать, ОЗУ начнёт забываться.

Частота после счётчика - это частота после ГФ24 (1.78мгц, делит 16мгц на 9), делёная на 6. Т.е. 16000000/9/6 = 296296 Гц.

А вот как привязать начало кадра - у меня чего-то идей совсем нет.
Num Lock
Senior
Posts: 178
Joined: 26 Oct 2006 11:55
Location: Москва

Post by Num Lock »

Есть, правда, ещё одна идея, совсем ленивая. Ничего вообще не синхронизировать, просто найти в схеме машины такую точку, где имеется видеосигнал БЕЗ синхроимпульсов (а такая точка есть в любой бытовой ЭВМ, неважно, на КР580ВГ75, или нет). Этот сигнал через простейший микшер подмешиваем к внешнему видеосигналу. Надпись окажется в произвольном месте экрана, немного сползёт по диагонали, возможно, часть её переползёт за край (но это устраняется изменением её местоположения в видео-ОЗУ). Зато сделать-то как просто! :)
Post Reply