Даже не знаю, будет ли интересно это устройство на фоне происходящих событий. Тем не менее, уже готов рабочий, выполняющий все основные функции, прототип. Пришло время рассказать о проекте.
В целом видеоконвертер повторяет функции известного «канадского» mce2vga.
Для начала короткое видео с демонстрацией работы (прошу прощения за качество, опыт съёмок чуть меньше, чем никакой):
Главные преимущества устройства по сравнению с канадским mce2vga:
- дешевые и легкодоступные комплектующие,
- на порядок лучшая совместимость с адаптерами EGA/CGA/Hercules.
Основной недостаток один – больше пайки, выше трудоемкость сборки.
Для понимания дальнейшего описания проекта, небольшая предыстория.
Начал им заниматься ещё в январе прошлого года. Первоначально скандаблер задумывался как супер-пупер универсальный с экранным меню и возможностью тонкой настройки входного и выходного сигнала. По различным причинам работа постоянно прерывалась, и спаять прототип удалось только в августе прошлого года. В январе была готова первая, тестовая (без захвата входного видео) прошивка. И сразу стало ясно, что основного чипа – CPLD Altera Max EPM3256 абсолютно не хватает для реализации задуманных функций ни по емкости, ни по быстродействию. Необходимо переходить на более современные чипы Altera Max II – EPM570 или EPM1270. Ещё тогда, в январе, сразу заказал на али несколько чипов EPM1270.
Но прежде чем разводить новую плату под эти чипы, нужно было убедиться, что идеи, заложенные в работу устройства в принципе работоспособны, протестировать входные и выходные цепи, задание частот и т.д. и т.п.
То есть попытаться сделать скандаблер с минимальными функциями, который уместился бы в имеющийся чип Altera. И, как ни странно, это получилось. Аппаратная часть работала безупречно. Начал с реализации скандаблера только для сигнала EGA HiRes (640x350).
После проверки работоспособности пора было переходить на Altera Max II EPM570 или EPM1270.
Снова полез на алиэкспресс и был неприятно удивлён. Ещё в январе заказал (и получил) EPM1270 по цене около 300 руб., включая доставку. А уже в апреле они стоили больше 1000 руб. за штуку, в то время как EPM570 более 600 руб. Причем от не очень надежных продавцов с низким рейтингом. От таких можно получить нерабочие чипы, или вообще ничего. Только возврат денег через 2-3 месяца. В то же время применённые EPM3256 по-прежнему стоили и до сих пор стоят копейки – менее 200 руб. за чип.
Встала дилемма – реализовывать первоначальную идею универсального скандаблера, который теперь становился гораздо дороже, или попытаться выжать максимум из текущего, дешевого варианта. Учитывая, что дорогих скандаблеров и так хватает, и универсальность нужна далеко не всем, пока остановился на втором варианте.
С помощью различных ухищрений и оптимизаций удалось реализовать то, что поначалу казалось невозможным – поддержку EGA, CGA, монохромных режимов Hercules и MDA, композитного режима CGA и многое другое. То есть почти всё, что умеет «канадский» скандаблер и даже чуть-чуть «сверху». Что не удалось – обойтись одним чипом памяти. Теоретически это возможно, но нужен более емкий и быстродействующий чип CPLD, например вышеупомянутый EPM570. Кроме того существенно возрастают требования к самим чипам памяти.
Теперь, как это работает. Основные функции – захват входного видеосигнала и формирование выходного VGA сигнала осуществляет уже упомянутый чип CPLD Altera Max EPM3256ATC144. Для записи и воспроизведения видео служат два буфера памяти на чипах SRAM 512Kx8. Они постоянно поочередно меняются местами. После записи полного кадра входной буфер становится выходным, а выходной наоборот входным. Выходной цифровой видеосигнал Altera преобразовывается в аналоговый VGA с помощью DAC (ЦАП). Первоначально использовался VideDAC ADV7123. Он имеет 3 канала по 10 бит. В последствии это решение оказалось избыточным, заменил его на резисторные DAC, 3 канала по 2 бита.
Управляет всем МК Atmega. Сейчас стоит Atmega168. Этот чип тоже с большим избытком перекрывает потребности. Экранного меню не будет, шрифты хранить не надо. Поэтому заменю его на Atmega88 или Atmega48. Микроконтроллер обрабатывает нажатия кнопок, принимает и обрабатывает информацию от текущем входном сигнале от Altera, управляет светодиодами, задаёт режимы захвата и вывода видео чипом Altera и управляет синтезатором частот PLL Si5351a.
Последний генерирует тактовые частоты для захвата видео и формирования выходного сигнала VGA. Синтезатор Si5351a – очень мощный чип. Позволяет по интерфейсу i2c с высокой точностью задать до трёх частот, вплоть до 120 МГц. В скандаблере используются две частоты.
Захват производится на частоте пиксель-клока входного сигнала. Для EGA HiRes (640x350) это 16.257 МГц, для CGA и EGA LowRes (640х200 и 320х200) это 14.318 МГц (видеокарта берёт эту частоту с разъёма ISA), для Hercules обычно 16.000 МГц. Для того, чтобы захват был надежен, и попадал примерно на середину пикселя, а не на границу между пикселями, может потребоваться ручная подстройка фазы захвата. Для этого служат две кнопки на корпусе скандаблера (правые верхние). Фаза подстраивается с точностью ¼ периода. То есть может принимать одно из четырёх значений.
На этом пока всё, постепенно буду выкладывать дальнейшее описание.
Напоследок несколько фото без корпуса, до модификаций схемы: