VGA-видеокарта на советских микросхемах

Быть или не быть VGA-видеокарте на советских микросхемах?!

Всё же быть! Представляю Вашему вниманию VGA-видеокарту:

Разрешение 256×128 пикселей, 256 цветов, 2 страницы
видеопамяти и все это на 60 микросхемах. Общий объем видеопамяти 64 Кб.
Микросхемы использованы советского производства, хотя некоторые уже
российского, но ведь технологии все равно тех времен, значит этим можно
пренебречь. Эта видеокарта разрабатывалась для ЭВМ «Таймыр-2», который метит в
книгу «рекордов Гиннесса» как самый затянувшийся проект.))) На самом деле видеокарте
все равно с кем в связке работать, поэтому к ней можно подключить любой «камень».
Главное, чтобы пинов хватило. А их надо ни много ни мало — 15 штук (8-и битная шина данных, 5 команд, такт и сигнал видимого окна).

Организация цвета происходит одним байтом, в котором отведены 3 бита под красный, 3 под зеленый и 2 под синий.

Команды:

  • Передать координаты Х

  • Передать координаты Y

  • Установить пиксель нужного цвета по заранее переданным координатам и увеличить координату Х на 1. Если Х стал больше 255, то Х становится равным 0, а координата Y увеличивается на единицу. Если Y стал больше 127, то пиксель рисуется уже на странице №2.

16870e32e8d155a07f9dd5dc4813a3a1.jpg793fd00148589ccd79bc62e0d5c2b386.jpg

  • Получить содержимое пикселя по заранее переданным координатам и увеличить координату Х на 1. Если Х стал больше 255, то Х становится равным 0, а координата Y увеличивается на единицу. Если Y стал больше 127, то пиксель берётся уже с страницы №2.

5f704bbcb07c4029e935ad9791f49399.jpg50e645e20f245024320c23f736158ca9.jpgfc5ef964e8219d6dcd60f616b578ccd0.jpg

Принципиальная схема очень большая, поэтому для детального рассмотрения рекомендую ее скачать по ссылке: Яндекс Диск. или GitHub.

Краткое описание работы:

Так как используется видеорежим 640×480 пикселей, 60 Гц. Нужно тактировать схему с частотой 25,175 МГц. Но у данной видеокарты разрешение 256×128, а это значит, что 1 пиксель нужно растянуть по ширине и высоте. Для этого необходимо уменьшить кварц на половину, то есть нужен 12,5875 МГц. Но тут возникла проблема: мне не удалось найти советский кварцевый резонатор на 12,5875 МГц. или на 25,175 МГц, поэтому пришлось выкручиваться кварцем на 12,5 МГц. Это конечно не Фэн-шуй, но монитор худо-бедно принимает такие отклонения. Генератор собранном на микросхеме К155ЛН1 (U56).  Далее тактовый импульс поступает на узел формирования строчного синхроимпульса и видимости окна по горизонтали (U57-U59, U41-U45, U51-U55). С микросхемы К155ТМ2 (U60) выходят два сигнала: нога 6 — отображение окна картинки по горизонтали, нога 8 строчный синхроимпульс. При окончании строки с микросхемы К155ЛА3 (U45, 6 нога) подается сигнал для перехода на следующую строку на узел формирования кадрового синхроимпульса и видимости окна по вертикали (U46–48, U49, U50, U27, U28, U30-U35). С микросхемы К155ТМ2 (U29) выходят два сигнала: нога 6 — отображение окна картинки по вертикали и на выход «разрешить», нога 8 кадровый синхроимпульс. Выход «разрешить» нужен для того, чтобы сообщать микроконтроллеру, что видеокарта может безболезненно записывать/считывать видеопамять. Можно конечно игнорировать этот сигнал, но тогда в момент обращения к видеопамяти на экране монитора будут возникать артефакты. Хотя это дает прирост скорости, потому что процесс чтения/записи происходит даже когда луч рисует картинку в видимой части экрана. Проще говоря сигнал «разрешить» = LOW с 145 строки до 401 строки (видимая область экрана), все остальное время сигнал «разрешить» = HIGH.

                Счетчики К155ИЕ7(U18-U21) перебирают адреса видеопамяти. На выходе счетчиков добавлены регистры КР580ИР82 (U12, U13), которые используются не по назначению, а просто для создания Z — состояния. Дешифратор К155ИД10 (U14) в зависимости от адреса включает в работу необходимую микросхему видеопамяти КР537РУ17 (U1-U8). Данные с видеопамяти попадают на регистр КР580ИР82 (U9) на выходе которого находится R2R — ЦАП (цифро-аналоговый преобразователь), который и формирует насыщенность цветов.

                Регистр КР580ИР82 (U11) открывается, когда необходимо считать содержимое видеопамяти. Регистр КР580ИР82 (U10) открывается, когда необходимо записать в видеопамять. Все остальное время эти регистры в Z- состоянии.

                Счетчики К155ИЕ7 (U23-U26) необходимы для установки адреса видеопамяти, с которой будут производиться действия чтения или записи. Счётчик К155ИЕ7 (U23) дополнительно принимает участие при смене видимой страницы. Из которого берутся 0-й и 1-й бит для установки триггера страницы К155ТМ2 (U22). Регистры КР580ИР82 (U16, U17) создают Z-состояние между счетчиками и шиной адресации видеопамяти.

На этом краткое описание заканчивается.

ссылки на документацию:

GitHub.

Яндекс Диск.

Habrahabr.ru прочитано 1938 раз