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](https://village-radiolab.com/wp-content/uploads/2022/06/videomixer.png)
Как можно видеть, на базу транзистора подается смешанный с помощью резистивных делителей напряжения сигнал цветовых компонент R, G, B. Сигнал синхронизации подмешивается через диод КД522, просаживая напряжение в моменты присутствия синхроимпульсов. Резисторами 680 и 1к устанавливается рабочая точка работы транзистора, а сам транзистор используется как буферный усилитель и включен по схеме эмиттерного повторителя. Полученный на выходе схемы видеосигнал можно смело подавать на композитный вход телевизора или ТВ-тюнера.
Результат впечатляет:
![На компьютере "Робик" запущена игра "3D Deathchase"](https://village-radiolab.com/wp-content/uploads/2022/06/zx-spectrum-robik-bw-video-output-800x603.jpg)
Сама схема была собрана на беспаечной макетной плате:
![Схема получения чёрно-белого видеосигнала собрана на макетной плате](https://village-radiolab.com/wp-content/uploads/2022/06/videomixer-assembled-800x600.jpg)
Ну что же, результат однозначно хороший. И достигается он небольшим набором старых радиодеталей, имеющихся в наличии у любого радиолюбителя.
Зачем нужен PAL-Coder?
Устройство PAL-Coder позволяет получить цветной низкочастотный видеосигнал в стандарте PAL. На выходе преобразователя имеются два сигнала: композитный (стандартный НЧ-видеосигнал), а так же компонентный — S-Video, в котором информация о яркости (с синхронизацией) и информация о цвете передаются отдельными проводами в кабеле.
Композитный сигнал из-за возникновения перекрёстных помех имеет нечеткие цветовые границы на элементах изображения, а так же цветовую рябь.
Изображение, полученное через интерфейс S-Video имеет чёткие границы цветов. Рябь так же отсутствует.
Исходным материалом послужила разработка группы NedoPC. Так как дело было в 2010 году, то на тот момент это всё для меня казалось определённой магией.
![Схема PAL-Coder на CXA1645M от NedoPC](https://village-radiolab.com/wp-content/uploads/2022/06/pal-coder-schematic.png)
По сути эта схема содержит в себе стандартное включение микросхемы CXA1645M из даташита, генератор цветовой поднесущей на транзисторе и стабилизатор питания.
Для воспроизводства платы решено было взять готовую топологию от NedoPC и немного переразвести под имеющуюся в наличии элементную базу. В итоге получилось аж три PAL-Coder’а! Не сразу, конечно. И для разных компьютеров.
Первая версия PAL-Coder’а опиралась на использование выводных компонентов. Из элементов поверхностного монтажа применялась только микросхема CXA1645M.
В Sprint-Layout была нарисована односторонняя плата под ЛУТ:
![Топология печатной платы первой версии PAL-Coder](https://village-radiolab.com/wp-content/uploads/2022/06/palcoder-th-layout.png)
Голубыми связями указаны проволочные перемычки. К сожалению, исходный lay-файл этой версии не сохранился.
Но остались фотографии процесса изготовления платы и сборки устройства:
![Заготовка для печатной платы](https://village-radiolab.com/wp-content/uploads/2022/06/pal-coder-th-pcb-800x492.jpg)
![Нанесён шаблон на стеклотекстолит](https://village-radiolab.com/wp-content/uploads/2022/06/pal-coder-th-pcb-2-800x519.jpg)
![Вытравленная печатная плата](https://village-radiolab.com/wp-content/uploads/2022/06/pal-coder-th-pcb-3-800x574.jpg)
![Просверлены отверстия](https://village-radiolab.com/wp-content/uploads/2022/06/pal-coder-th-pcb-4-800x746.jpg)
![Залужены жорожки](https://village-radiolab.com/wp-content/uploads/2022/06/pal-coder-th-pcb-5-800x528.jpg)
![Собранный PAL-Coder](https://village-radiolab.com/wp-content/uploads/2022/06/pal-coder-th-assebled-800x594.jpg)
![Собранный PAL-Coder (вид снизу)](https://village-radiolab.com/wp-content/uploads/2022/06/pal-coder-th-assebled-2-800x565.jpg)
После подключения платы к «Робику» всё оказалось предсказуемо — ничего не заработало. Ну может и не совсем предсказуемо. И не совсем ничего не заработало. На экране всё же присутствовало инверсное искажённое чёрно-белое изображение.
![Искаженное чёрно-белое изображение](https://village-radiolab.com/wp-content/uploads/2022/06/pal-coder-th-fail.jpg)
![Искаженное чёрно-белое изображение на входе ТВ-тюнера](https://village-radiolab.com/wp-content/uploads/2022/06/pal-coder-th-fail-2-785x800.jpg)
Как я не крутил подстроечные резисторы, никаких улучшений не происходило. Разве что при определённом прикосновении пальцем снизу платы в районе кварцевого резонатора иногда проскакивали цвета. И более того, проскакивали те цвета, что должны быть! Но происходило это очень кратковременно и редко когда по всей площади кадра.
![Появляется цвет при прикосновении пальцем в области кварцевого резонатора](https://village-radiolab.com/wp-content/uploads/2022/06/pal-coder-finger-color-video-output.jpg)
![Появляется цвет при прикосновении пальцем в области кварцевого резонатора](https://village-radiolab.com/wp-content/uploads/2022/06/pal-coder-finger-color-video-output-2.jpg)
Проблема очевидна. И на тот далёкий момент не было понятно в чём была её причина. Но так как на радиорынке массово продавались поддельные и «восстановленные» радиоэлементы под видом новых, было предположено, что и в моём случае причиной стала неисправная микросхема. Была куплена ещё одна в другом месте и с отличающейся маркировкой.
![Микросхема CXA1645M](https://village-radiolab.com/wp-content/uploads/2022/06/pal-coder-th-new-ic-800x600.jpg)
После замены микросхемы… та-да-да-дам! Ничего не изменилось. Поиски в Интернетах показали, что причиной может быть кварцевый резонатор. Из рекомендаций следовало, что не стоит использовать резонатор в корпусе KX-49, а необходимо использовать резонатор в низкопрофильном корпусе HC-49U (называемый в народе «лодочкой»).
Как ни странно, но эти рекомендации дали очевидные плоды. PAL-Coder заработал и начал выдавать стабильную картинку.
![Стартовый экран компьютера "Робик"](https://village-radiolab.com/wp-content/uploads/2022/06/pal-coder-th-running.jpg)
Таким образом, схема оказалась полностью работоспособной (странно, если бы было иначе). Только нужно внимательнее подойти к выбору кварцевого резонатора и его характеристик.
В итоге, описанная плата PAL-Coder’а переместилась внутрь корпуса компьютера «Робик». А выходные сигналы были выведены на разъём «Видео», от которого предварительно были отпаяны и заизолированы исходные провода. Сама же плата PAL-Coder’а уютно расположилась на свободном пятачке под радиатором линейного стабилизатора питания компьютера.
![PAL-Coder внутри корпуса "Робика"](https://village-radiolab.com/wp-content/uploads/2022/06/pal-coder-robik-1-800x600.jpg)
![PAL-Coder внутри корпуса "Робика"](https://village-radiolab.com/wp-content/uploads/2022/06/pal-coder-robik-2-800x600.jpg)
Часть компонентов были заменены элементами поверхностного монтажа, а вместо разъёмов применено прямое подключением сигнальных проводов к разъему «Видео». Для подключения компьютера к телевизору был спаян отдельный кабель, соединяющий выход сигналов S-Video на разъёме «Видео» с телевизором через SCART.
PAL-Coder для компьютера Ленинград-3.1
В 2011 году я собрал первый компьютер своими руками. Это был совместимый с ZX-Spectrum 48k компьютер «Ленинград-3.1». И, конечно же, ему так же понадобился PAL-Coder.
На этот раз решил попробовать сделать плату на смеси выводных и SMD компонентов. По сути, это практически полная копия топологии печатной платы от команды NedoPC, но адаптированная под имеющиеся компоненты.
Плата — двухсторонняя. Нижняя сторона не травится и является «землёй». Компоненты как выводные, так и поверхностного монтажа паяются с верхней стороны платы. Механическая прочность дорожек при этом снижается. Но, если пользоваться аккуратно, то никаких проблем не будет.
Так как на момент создания этой платы я только начинал использовать SMD компоненты, то практически все резисторы и конденсаторы достаточно большого размера — 1206.
![Топология платы PAL-Coder](https://village-radiolab.com/wp-content/uploads/2022/06/pal-coder-smd-layout.png)
Если кто-то захочет повторить, то lay-файл печатной платы можно скачать здесь. Я его чуть поправил и сохранил в формате Sprint-Layout 6.0. Еще раз напомню, что эта разводка для домашнего производства. В ней отсутствует земляной слой и необходимые соединения с ним. Из этого файла НЕ нужно делать герберы и отправлять на производство!!! А при сборке необходимо немного раззенковать отверстия на земляном слое в тех местах, где нет соединения с землёй. В нашем случае это обозначает взять пальцами сверло диаметром побольше, приложить к отверстию и сделать несколько оборотов вперед назад для снятия слоя меди вокруг отверстия.
В качестве метода нанесения шаблона на фольгу заготовки печатной платы был выбран плёночный фоторезист. Как раз пытался в эти годы немного с ним поработать. А так же впервые попробовал лудить плату сплавом Розе. Не понравилось. Что первое, что второе.
![Плата с нанесённым шаблоном](https://village-radiolab.com/wp-content/uploads/2022/06/pal-coder-smd-pcb-800x487.jpg)
![Вытравленная, просверленная и залуженная плата](https://village-radiolab.com/wp-content/uploads/2022/06/pal-coder-smd-pcb-2-800x526.jpg)
Собранная плата выглядит так:
![Собранная плата PAL-Coder'а](https://village-radiolab.com/wp-content/uploads/2022/06/pal-coder-assembled.jpg)
Как видно из фото, разъемы припаиваются в первую очередь, пока имеется доступ паяльника со всех сторон. Гребёнки припаиваются со сдвинутой вверх пластмассовой частью, которая затем опускается назад к месту пайки. Электролитические конденсаторы и кварцевый резонатор не вставляются в плату до упора, а паяются «на весу».
Хоть данный вариант PAL-Coder’а и предназначался изначально для компьютера «Ленинград-3.1», он все же стал эдаким дежурным устройством, которое можно подключить к любому компьютеру в нужный момент. А для удобства, в крепёжные отверстия платы были установлены резиновые ножки.
![PAL-Coder подключён к Ленинград-3.1](https://village-radiolab.com/wp-content/uploads/2022/06/pal-coder-leningrad-3.1-800x600.jpg)
Устройство заработало сразу после сборки. Никаких дополнительных телодвижений не понадобилось.
![Загрузка игры "River Raid"](https://village-radiolab.com/wp-content/uploads/2022/06/pal-coder-leningrad-3.1-tv-800x600.jpg)
![Скриншот игры "River Raid"](https://village-radiolab.com/wp-content/uploads/2022/06/pal-coder-leningrad-3.1-tv-2.jpg)
Устройство показало себя весьма хорошо и каких-либо претензий к работе не возникло.
PAL-Coder для компьютера ZXM-Phoenix
В заключительной части статьи немного слов об ещё одном собранном PAL-Coder’е, но уже для компьютера «ZXM-Phoenix». Подход использовался такой же, как и в предыдущем варианте. Но размер платы и расположение разъемов определялись планкой крепления от видеокарты S3 Savage 3D.
![Видеокарта S3 Savage 3D без планки крепления](https://village-radiolab.com/wp-content/uploads/2022/06/s3-savage-3d-800x515.jpg)
Плата получилась более «квадратная». Элементная база та же, что и в предыдущей версии. Разъём D-SUB DE15 (какой был в продаже) используется исключительно для крепления платы к планке и ни к каким сигнальным линиям не подключается. Все его контакты припаиваются к медной фольге на нижней стороне платы.
![Топология печатной платы PAL-Coder для компьютера ZXM-Phoenix](https://village-radiolab.com/wp-content/uploads/2022/06/pal-coder-phoenix.png)
Если кому-то захочется воспроизвести эту плату, то файл в формате Sprint-Layout 6.0 можно скачать тут. Особенности всё те же, что и в предыдущей версии (плата для домашнего, а не для промышленного производства).
Фотографии получившегося устройства приведены ниже:
![PAL-Coder для компьютера ZXM-Phoenix](https://village-radiolab.com/wp-content/uploads/2022/06/pal-coder-zxm-phoenix-800x567.jpg)
![PAL-Coder для компьютера ZXM-Phoenix](https://village-radiolab.com/wp-content/uploads/2022/06/pal-coder-zxm-phoenix-2-800x724.jpg)
![PAL-Coder для компьютера ZXM-Phoenix](https://village-radiolab.com/wp-content/uploads/2022/06/pal-coder-zxm-phoenix-3-800x600.jpg)
![PAL-Coder для компьютера ZXM-Phoenix](https://village-radiolab.com/wp-content/uploads/2022/06/pal-coder-zxm-phoenix-4-800x600.jpg)
Для того, чтобы подключить получившейся PAL-Coder к внутреннему разъему XP2 «Внешн. видео» компьютера «ZXM-Phoenix», пришлось на макетной плате продублировать часть схемы самого компьютера. Получилась такая вот небольшая плата-переходник:
![PAL-Coder с платой переходником для ZXM-Phoenix](https://village-radiolab.com/wp-content/uploads/2022/06/pal-coder-zxm-phoenix-5-800x581.jpg)
![PAL-Coder установлен в корпусе ZXM-Phoenix](https://village-radiolab.com/wp-content/uploads/2022/06/pal-coder-zxm-phoenix-6-800x600.jpg)
Ну и результат работы устройства можно увидеть на следующей фотографии:
!["Prince of Persia" на ZX-Spectrum](https://village-radiolab.com/wp-content/uploads/2022/06/pal-coder-zxm-phoenix-prince-of-persia-794x800.jpg)
На этом свой рассказ про такое простое и полезное устройство как PAL-Coder для преобразования RGB сигналов в низкочастотный видеосигнал в стандарте PAL я заканчиваю.
Уже в 2012 году место PAL-Coder’а в «ZXM-Phoenix» занял VGA-конвертер (он же ZX -> VGA или ZXKit1) от zst, позволяющий подключать к компьютеру вместо телевизора — монитор. Но это уже совсем другая история…