PAL-Coder. Подключаем отечественный ZX-Spectrum к телевизору

Проблема подключения домашнего 8-битного компьютера к телевизору

Большинство домашних 8-битных компьютеров использовали в качестве монитора обычный бытовой телевизор. Это было связано, в первую очередь, с экономией средств. Телевизор уже имелся в доме у большинства семей, а покупка дополнительного монитора сильно бы увеличивала стоимость домашнего компьютера. Особенно тогда, в 80-х.

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

Самый простой и цивилизованный — когда в компьютере установлен ВЧ-модулятор. Модулятор формирует маломощный высокочастотный телесигнал (такой же, как на передающей телевизионной станции) и этот сигнал подаётся на антенный вход телевизора. На телевизоре необходимо выбрать соответствующий телеканал либо настроиться вручную на его частоту. Такой подход использовался в оригинальном компьютере ZX-Spectrum, а так же в некоторых отечественных клонах типа «Парус ВИ-201» .

Второй, и более популярный, состоял в прямом подключении сигналов составляющих цвета, звука и синхронизации во внутренние схемы телевизора, с одновременной блокировкой модуля радиоканала. Этот способ подключения назывался — RGB. В инструкции к моему первому компьютеру «Робик» было указано, что на телевизоре необходимо установить разъем типа ОНЦ-ВГ-4-5/16-Р (DIN 41524) и переключатель. С помощью переключателя можно было включать и отключать выход сигнала с радиоканала, позволяя таким образом переключаться между просмотром телевизионных сигналов и выводом изображения с компьютера. А к контактам разъема припаивались провода, соединяющие его с соответствующими точками подключения в модуле цветности и радиоканала. Соединительный кабель входил в комплектацию компьютера.

Выводим чёрно-белый сигнал с компьютера

Первые телевизоры, как известно, были чёрно-белые. Но в 1950-1960х годах начало активно внедряться и распространяться цветное телевидение и телевизоры. Ну как активно. Где активно, а где и пассивно. Причем до такой степени, что ламповые (!!!) чёрно-белые телевизоры выпускались как минимум до 1989 года.

Для кодирования аналогового видеосигнала цветного изображения были разработаны такие известные стандарты как PAL, SECAM и NTSC. Все эти стандарты были надстройками над уже прижившимися к тому времени способами кодирования чёрно-белого сигнала и содержали в себе как обычный чёрно-белый сигнал, совместимый с имеющимися чёрно-белыми телевизорами, так и цвето-разностную информацию, которую мог декодировать только цветной телевизор. Таким образом чёрно-белый телевизор ничего не зная о цвете мог спокойно принимать и показывать все телепрограммы.

Сами по себе стандарты отличаются как количеством строк и кадров, так и частотой поднесущей, на которой передаётся информация о цвете.

В нашей стране, как и во всем СССР, применялся французский стандарт кодирования цветного телевидения SECAM. Для кодирования изображения использовалось 625 строк, из которых на экране отображалось только 576. В системе PAL используется такое же количество строк и частота кадров, но информация о цвете кодируется иначе. Именно поэтому, при подключении к советскому телевизору видеомагнитофона или видеокамеры, изображение на экране телевизора было чёрно-белым. Это же происходило и при приёме советским телевизором телесигнала в стандарте PAL, который начал внедряться в эфирное вещание в 90-х годах.

Так как отечественный бытовой 8-битный компьютер формирует синхроимпульсы в соответствии с Европейским стандартом строк и кадров, то и получение чёрно-белого изображения для телевизора, поддерживающего PAL/SECAM, является несложной задачей.

У «Робика» на 5-контактном разъеме «RGB» присутствует всё необходимое: сигналы цветовых составляющих R, G и B, а так же сигнал смешанной синхронизации, звука и общий провод. Для особых эстетов имеется отдельный разъем «Видео», предназначенный для подключения видеомонитора. К современным мониторам это не имеет абсолютно ни какого отношения. На разъёме присутствуют раздельные импульсы синхронизации — кадровые и строчные. Уровни сигналов составляющих цвета соответствуют уровням TTL-логики и не имеют градаций яркости.

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

Формирование синхроимпульсов производится группой счетчиков/делителей путем деления частоты тактового генератора компьютера. Не всегда эти синхроимпульсы точно соответствуют стандарту. Но они выбирались так, чтобы телевизоры их воспринимали без каких-либо проблем. Из этих же продуктов деления формируется и управляющие сигналы компьютера, в том числе и тактовый сигнал центрального процессора.

Таким образом, для получения чёрно-белого изображения, необходимо к сигналу с синхронизации подмешать в определённых пропорциях составляющие цвета. Готовая схема была давным-давно найдена в Интернете:

Схема получения чёрно-белого яркостного видеосигнала из RGB
Схема получения чёрно-белого яркостного видеосигнала (источник утерян)

Как можно видеть, на базу транзистора подается смешанный с помощью резистивных делителей напряжения сигнал цветовых компонент R, G, B. Сигнал синхронизации подмешивается через диод КД522, просаживая напряжение в моменты присутствия синхроимпульсов. Резисторами 680 и 1к устанавливается рабочая точка работы транзистора, а сам транзистор используется как буферный усилитель и включен по схеме эмиттерного повторителя. Полученный на выходе схемы видеосигнал можно смело подавать на композитный вход телевизора или ТВ-тюнера.

Результат впечатляет:

На компьютере "Робик" запущена игра "3D Deathchase"
Компьютер «Робик» подключен к ТВ-тюнеру и запущена игра «3D Deathchase»

Сама схема была собрана на беспаечной макетной плате:

Схема получения чёрно-белого видеосигнала собрана на макетной плате
Схема собрана на макетной плате

Ну что же, результат однозначно хороший. И достигается он небольшим набором старых радиодеталей, имеющихся в наличии у любого радиолюбителя.

Зачем нужен PAL-Coder?

Устройство PAL-Coder позволяет получить цветной низкочастотный видеосигнал в стандарте PAL. На выходе преобразователя имеются два сигнала: композитный (стандартный НЧ-видеосигнал), а так же компонентный — S-Video, в котором информация о яркости (с синхронизацией) и информация о цвете передаются отдельными проводами в кабеле.

Композитный сигнал из-за возникновения перекрёстных помех имеет нечеткие цветовые границы на элементах изображения, а так же цветовую рябь.

Изображение, полученное через интерфейс S-Video имеет чёткие границы цветов. Рябь так же отсутствует.

Исходным материалом послужила разработка группы NedoPC. Так как дело было в 2010 году, то на тот момент это всё для меня казалось определённой магией.

Схема PAL-Coder на CXA1645M от NedoPC
Схема PAL-Coder’а от NedoPC

По сути эта схема содержит в себе стандартное включение микросхемы CXA1645M из даташита, генератор цветовой поднесущей на транзисторе и стабилизатор питания.

Для воспроизводства платы решено было взять готовую топологию от NedoPC и немного переразвести под имеющуюся в наличии элементную базу. В итоге получилось аж три PAL-Coder’а! Не сразу, конечно. И для разных компьютеров.

Первая версия PAL-Coder’а опиралась на использование выводных компонентов. Из элементов поверхностного монтажа применялась только микросхема CXA1645M.

В Sprint-Layout была нарисована односторонняя плата под ЛУТ:

Топология печатной платы первой версии PAL-Coder
Топология печатной платы первой версии PAL-Coder’а

Голубыми связями указаны проволочные перемычки. К сожалению, исходный lay-файл этой версии не сохранился.

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

После подключения платы к «Робику» всё оказалось предсказуемо — ничего не заработало. Ну может и не совсем предсказуемо. И не совсем ничего не заработало. На экране всё же присутствовало инверсное искажённое чёрно-белое изображение.

Как я не крутил подстроечные резисторы, никаких улучшений не происходило. Разве что при определённом прикосновении пальцем снизу платы в районе кварцевого резонатора иногда проскакивали цвета. И более того, проскакивали те цвета, что должны быть! Но происходило это очень кратковременно и редко когда по всей площади кадра.

Проблема очевидна. И на тот далёкий момент не было понятно в чём была её причина. Но так как на радиорынке массово продавались поддельные и «восстановленные» радиоэлементы под видом новых, было предположено, что и в моём случае причиной стала неисправная микросхема. Была куплена ещё одна в другом месте и с отличающейся маркировкой.

Микросхема CXA1645M
Новая микросхема Sony CXA1645M

После замены микросхемы… та-да-да-дам! Ничего не изменилось. Поиски в Интернетах показали, что причиной может быть кварцевый резонатор. Из рекомендаций следовало, что не стоит использовать резонатор в корпусе KX-49, а необходимо использовать резонатор в низкопрофильном корпусе HC-49U (называемый в народе «лодочкой»).

Как ни странно, но эти рекомендации дали очевидные плоды. PAL-Coder заработал и начал выдавать стабильную картинку.

Стартовый экран компьютера "Робик"
Успешно запущенный PAL-Coder

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

В итоге, описанная плата PAL-Coder’а переместилась внутрь корпуса компьютера «Робик». А выходные сигналы были выведены на разъём «Видео», от которого предварительно были отпаяны и заизолированы исходные провода. Сама же плата PAL-Coder’а уютно расположилась на свободном пятачке под радиатором линейного стабилизатора питания компьютера.

Часть компонентов были заменены элементами поверхностного монтажа, а вместо разъёмов применено прямое подключением сигнальных проводов к разъему «Видео». Для подключения компьютера к телевизору был спаян отдельный кабель, соединяющий выход сигналов S-Video на разъёме «Видео» с телевизором через SCART.

PAL-Coder для компьютера Ленинград-3.1

В 2011 году я собрал первый компьютер своими руками. Это был совместимый с ZX-Spectrum 48k компьютер «Ленинград-3.1». И, конечно же, ему так же понадобился PAL-Coder.

На этот раз решил попробовать сделать плату на смеси выводных и SMD компонентов. По сути, это практически полная копия топологии печатной платы от команды NedoPC, но адаптированная под имеющиеся компоненты.

Плата — двухсторонняя. Нижняя сторона не травится и является «землёй». Компоненты как выводные, так и поверхностного монтажа паяются с верхней стороны платы. Механическая прочность дорожек при этом снижается. Но, если пользоваться аккуратно, то никаких проблем не будет.

Так как на момент создания этой платы я только начинал использовать SMD компоненты, то практически все резисторы и конденсаторы достаточно большого размера — 1206.

Топология платы PAL-Coder
Топология печатной платы PAL-Coder’а для компьютера «Ленинград-3.1»

Если кто-то захочет повторить, то lay-файл печатной платы можно скачать здесь. Я его чуть поправил и сохранил в формате Sprint-Layout 6.0. Еще раз напомню, что эта разводка для домашнего производства. В ней отсутствует земляной слой и необходимые соединения с ним. Из этого файла НЕ нужно делать герберы и отправлять на производство!!! А при сборке необходимо немного раззенковать отверстия на земляном слое в тех местах, где нет соединения с землёй. В нашем случае это обозначает взять пальцами сверло диаметром побольше, приложить к отверстию и сделать несколько оборотов вперед назад для снятия слоя меди вокруг отверстия.

В качестве метода нанесения шаблона на фольгу заготовки печатной платы был выбран плёночный фоторезист. Как раз пытался в эти годы немного с ним поработать. А так же впервые попробовал лудить плату сплавом Розе. Не понравилось. Что первое, что второе.

Собранная плата выглядит так:

Собранная плата PAL-Coder'а
Собранный PAL-Coder

Как видно из фото, разъемы припаиваются в первую очередь, пока имеется доступ паяльника со всех сторон. Гребёнки припаиваются со сдвинутой вверх пластмассовой частью, которая затем опускается назад к месту пайки. Электролитические конденсаторы и кварцевый резонатор не вставляются в плату до упора, а паяются «на весу».

Хоть данный вариант PAL-Coder’а и предназначался изначально для компьютера «Ленинград-3.1», он все же стал эдаким дежурным устройством, которое можно подключить к любому компьютеру в нужный момент. А для удобства, в крепёжные отверстия платы были установлены резиновые ножки.

PAL-Coder подключён к Ленинград-3.1
PAL-Coder подключен к плате компьютера «Ленинград-3.1» во время отладки

Устройство заработало сразу после сборки. Никаких дополнительных телодвижений не понадобилось.

Устройство показало себя весьма хорошо и каких-либо претензий к работе не возникло.

PAL-Coder для компьютера ZXM-Phoenix

В заключительной части статьи немного слов об ещё одном собранном PAL-Coder’е, но уже для компьютера «ZXM-Phoenix». Подход использовался такой же, как и в предыдущем варианте. Но размер платы и расположение разъемов определялись планкой крепления от видеокарты S3 Savage 3D.

Видеокарта S3 Savage 3D без планки крепления
Видеокарта S3 Savage 3D — донор планки крепления для PAL-Coder’а

Плата получилась более «квадратная». Элементная база та же, что и в предыдущей версии. Разъём D-SUB DE15 (какой был в продаже) используется исключительно для крепления платы к планке и ни к каким сигнальным линиям не подключается. Все его контакты припаиваются к медной фольге на нижней стороне платы.

Топология печатной платы PAL-Coder для компьютера ZXM-Phoenix
Топология печатной платы PAL-Coder’а для компьютера ZXM-Phoenix

Если кому-то захочется воспроизвести эту плату, то файл в формате Sprint-Layout 6.0 можно скачать тут. Особенности всё те же, что и в предыдущей версии (плата для домашнего, а не для промышленного производства).

Фотографии получившегося устройства приведены ниже:

Для того, чтобы подключить получившейся PAL-Coder к внутреннему разъему XP2 «Внешн. видео» компьютера «ZXM-Phoenix», пришлось на макетной плате продублировать часть схемы самого компьютера. Получилась такая вот небольшая плата-переходник:

Ну и результат работы устройства можно увидеть на следующей фотографии:

"Prince of Persia" на ZX-Spectrum
Игра «Prince of Persia» на компьютере «ZXM-Phoenix»

На этом свой рассказ про такое простое и полезное устройство как PAL-Coder для преобразования RGB сигналов в низкочастотный видеосигнал в стандарте PAL я заканчиваю.

Уже в 2012 году место PAL-Coder’а в «ZXM-Phoenix» занял VGA-конвертер (он же ZX -> VGA или ZXKit1) от zst, позволяющий подключать к компьютеру вместо телевизора — монитор. Но это уже совсем другая история…