Pull to refresh

Comments 64

Еще студентом делал нечто подобное для формирования видеосигнала на черно-белом телевизоре, чтобы использовать его как консоль для компьютера на базе Intel 8080 (КР580ИК80). Очень много микросхем и проводов МГТФ, но было весело!

Так он был символьным, а тут графика, 256х128.

Замечу, что у первых IBM PC был видеоадаптер IBM Color/Graphics Adapter, в народе известный как CGA. Этот адаптер строился вокруг микросхемы MC6845 - недовидеопроцессора для отображения текста. Тем не менее, за счет манипуляции с банками видеопамяти, видеоадаптер CGA умел отображать графику в трех видеорежимах: 640x200 (два цвета), 320x200 (четыре цвета) и 160x100 (16 цветов). Для того времени это было вполне стандартным решением. Наверняка с КР580ВГ75, которая была аналогом Intel 8275, можно проделывать аналогичные фокусы.

Строго говоря, CGA был блатной опцией. В базовой конфигурации шёл монохромный MDA (только текст, 40х25 или 80х25 знакомест), и к нему монохромный (чёрно-зелёный) монитор.

Всё верно, и в MDA тоже был MC6845. Адаптер CGA появился чуть позже чем MDA и быстро вытеснил адаптер MDA, так как пользователи хотели играть в игры, а за те деньги что IBM просила за PC c MDA это было невозможно. Более того, к MDA требовался отдельный монитор, это делало систему еще более дорогой. В CGA присутствовало два видеовыхода: RGBI для монитора с прямым управлением ЭЛТ и разъём с композитным NTSC сигналом, что позволяло подключать PC к телевизору как и другие ПЭВМ того времени. RGBI давал более высокое качество картинки, а NTSC позволял смешивать цвета (артифактинг), что было прикольно для игр.

На Википедии пишут, что некоторое время MDA и CGA устанавливался вместе в одну машину, но я таких машин не встречал и честно говоря не понимаю зачем это могло быть нужным (первый IBM PC я увидел в 1989-м, тогда уже во всю были EGA и немного CGA). Пишут, что якобы у MDA качество изображения было выше чем у CGA, но не ясно на каком типе монитора сравнивают, RGBI или NTSC.

"Пишут, что якобы у MDA качество изображения было выше чем у CGA, но не ясно на каком типе монитора сравнивают, RGBI или NTSC. " - Как работавший с тем и другим отмечу, что это верно для для RGBI-монитора. Долго работать с текстом в разрешении 640х200 на 15 кГц строчной развертки очень утомительно. С MDA 640х348 на 18 кГц гораздо приятнее, пиксели почти в 2 раза меньше, за счёт чего картинка более четкая. У меня правда был не MDA а Hercules, он ещё и одноцветную графику в таком разрешении выдавать мог.

Только что вспомнил что у MDA/Hercules не 640 а 720 пикселей по ширине. И хоть бы кто поправил, а...

Не якобы. Сравните текст на MDA и CGA. Плюс с двумя видеокартами можно на CGA вывести графику, на MDA - текст. Вроде как были тогда САПРы под DOS, умеющие это делать.

Отлаживал и доделывал опять же студентом графическую плату для символьного терминала Videoton VT-340. Там было много динамической памяти К565РУ1. Очень помогал многоканальный логический анализатор. Очень интересно было со всем этим возиться

И она умела только в текстовый режим.

Это было большим шагом вперёд по сравнению, например, со знакогенератором терминала ВТА2000 - один из двух вентиляторов заклинило, ПЗУшки перегрелись и погорели. А между прочим, на этих терминалах работала целая "Сирена-2" и много кто ещё

Только это всего лишь 50% от VGA. VGA - это как минимум 320х200

Замечание принято. В свое оправдание скажу, что я, как человек не образованный, ориентировался в большей степени на мониторы с интерфейсом VGA, чем на полноценный стандарт.

Коротко. По делу. Но есть вопросы:

Какова максимальная скорость обмена ЦПУ с видеопамятью ?

Как Вам удалось раскочегарить микросхемы серии К155 до 12.5 МГц ? Если не ошибаюсь, там время задержки распростаренения 100нс и на 10МГц они уже начинают лагать. Этот же вопрос по микросхеме статической памяти КР537РУ17, по даташиту у нее время доступа - 130нс, а у Вас выборка из памяти каждые 80нс.

Затруднюсь полноценно ответить на Ваш вопрос, но попробую как получится. Если пройтись по 155 серии: К155ЛН1, К155ЛА8, и т.д. –грубо 22нс, К155ТМ2-грубо 40нс ну и остальные в том же духе. На счет КР537РУ17 у нее не 130нс, а не более 130нс.  Минимальный порог остается тайной, но как показала практика – всё работает.

На счет скорости обмена ЦПУ с видеопамятью полноценных тестов не проводил, так как эта видюха разрабатывалась для самодельной ЭВМ, которая производительностью не блещет, поэтому я не видел необходимость в таких тестах.

Цель разработки понятна, поэтому и возник вопрос. Если более конкретно, то сколько времени займёт отрисовка текста на полный экран ? С какой частотой кадров его можно будет прокручивать/пролистывать. В Вашем демо видеоролике с какой частотой Ардуина шлёт команды в видеоадаптер ? Это предел или можно быстрее ?

Я сейчас занимаюсь чем-то подобным, но на ПЛИС. Без аппаратного знакогенератора как-то у меня всё не весело выходит. :)

В видео на 1:41 ардуино затирает мусор видеопамяти темно-красным цветом. Здесь используется вся мощь ардуинки + мои кривые руки программиста). Съемка в реальном времени. Там происходит передача координат по Х=0, координат по Y=0, а дальше просто цвет пикселя, цвет пикселя и т.д., так сказать пакетный режим. Я уверен, что можно еще быстрее.

Картинки выводятся медленно, потому что скорость передачи UART= 115200

Картинки выводятся медленно, потому что скорость передачи UART= 115200

Ну так отключите UART на время отрисовки. :) Видно что рисует очень медленно и должно быть существенно быстрее.

Отключить? Вы забыли про мои кривые руки)))

А вот еще вопрос. Как происходит разделение доступа к видеопамяти ? У кого приоритет больше, у схемы формирования видеосигнала или у шины взаимодействия с ЦПУ ? Я смотрю на схему, и пока не могу понять, что произойдет если они одновременно будут адресовать видеопамять.

Приоритет больше у взаимодействия с ЦПУ. Поэтому можно писать/читать даже в процессе формирования видео сигнала, но как писалось в статье: на экране будут возникать артефакты. Чтобы этого не происходило необходимо обращаться к данным по сигналу пина «разрешить»

Ок, спасибо. Я как-то пролетел мимо этого предложения и сразу пошел изучать схему. :-)

Если детально, то если подать на вход «Пиксель» LOW, то пройдя через инвертор U38:F  сигнал примет значение HIGH. Далее он идет на 2ИЛИ U39:А. На выходе получается HIGH, который подается на вход ОЕ регистров U12, U13, которые закрываются (Z - состояние) и больше не производится адресация видеопамяти.

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

Тут имеется некая двузначность терминологии. Есть VGA видеодаптер который вставляется в слот ISA у IBM PC совместимых машин, со своими портами, видеорежимами и т.д. И есть видео интерфейс VGA - электрическая спецификация на подключение аналогово видеомонитора. Автору наверное следовало бы указать в заголовке на то, что это "видеоадаптер с VGA интерфейсом для микроконтроллера или 8-ми битной ЭВМ". Как-то так.

Отчего такая привязанность к 155 серии? Даже если хватает скорости - жрет по току она порядочно (на фоне 555\1533).

Всё банально просто, 155 -х у меня больше всех по количеству.

Если кварцевый резонатор (точнее говоря, поверхность контактов на кристалле) потереть стирательной резинкой, то его частота немного повышается. Если натереть грифелем, то частота немного снижается.

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

UFO landed and left these words here

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

Любопытно. Если есть эталон частоты, более точный чем кварц, то зачем сам кварц? А если нет такого такого эталона, откуда мы узнаём, что частота уходит и надо корректировать?

частота кварца это не скорость света в вакууме и зависит от физических параметров кристалла. Рискну предположить, что в данном случае кристалл нагревали превентивно до того, как весь корпус устройства не прогреется нитями накала ламп, но это только предположение.

Понял. Кварц греем до известной температуры, чтобы не зависеть от температуры в комнате. Меня сбило

терморегулятор с обратной связью по частоте

Опорный термостатированный генератор "Гиацинт". Знакомая штука, ага. Кварц внутри термостата, и всё. На передней панели частотомера был отдельный индикатор работы термостата, и он работал всегда, пока прибор к сети подключен, независимо от того, включен тумблер питания или нет.
Сейчас такие штуки тоже в ходу. Только стали значительно меньше в размера. Зовутся OCXO (Oven-Controlled Crystal Oscillator).

ООС по частоте? Но ведь тогда нужен еще эталон. Может быть просто по термодатчику на поверхности?

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

Изготовление кварцевых резонаторов, 1943 г.

Какого еще полевого шпата? В фильме упоминается raw crystal или rock crystal, т.е. горный хрусталь. Он же природный кристаллический кварц. А полевой шпат это алюмосиликаты, их там целая группа.

UFO landed and left these words here

сколько ненависти и пафоса, но вы, мсье, сели в лужу. VGA это только 640х480 и уж тем более видеокарты того времени не занимались рисованием примитивов ни в каком виде.

UFO landed and left these words here

Ну не первую в мире, но у меня есть парочка VGA из 80-х для ISA шины.

Ты о каком времени говоришь?

А причем тут время, есть стандарт.

Поищи по инету лузер фотку и увидишь что о никакой рассыпухе и речи не может быть

А я где-то пишу что-то про какую-то "рассыпуху"?

Ах да, забыл, тебя тогда и в планах небыло.

Когда я родился Стив Джобс еще даже в АТАРИ не трудоустроился и его Apple даже в планах не было и до первой VGA еще было как до пингвинов пешком.

странно, что вы не добавили трассировку лучей.)))

2автор: имхо не гоже в/к называть VGA лишь на основа коннектора для вывода картинки. Конечно не обязательно поддерживать все режимы, но 320х200(240)х256 и/или 640х480х16 всё же должны присутствовать. Как легко посчитать для таких режимов уже нужно 320х200х1=64000 байт или 640х480х0.5=153600 байт.

320x240x256 - это ж слоёный режим, если мне память не изменяет (ModeX). Там на одной реализации регистров замучаешься.

это просто пример того какие разрешения були популярны для VGA, в играх 320х200х256, 320х240х256 по большей части.

еще не забываем что VGA это не только разрешение, это еще и аппаратные вещи, куча функций биос.

UFO landed and left these words here

аппаратка была еще в чипах конца 70-х, даже в моем ATARI 65XE есть аппаратные функции.

320*200*256 - это, если не ошибаюсь, называлось MCGA

Это нестандартный режим VGA, требовал прямого программирования регистров контроллера, но был очень удобен поскольку аспект пиксела 1:1. Был описан в журнале доктор Доббс, я на основе этой статьи писал библиотечку на асме для вывода примитивов

Вопрос от "непотемщика"! А поставить делитель частоты (например всего один тригер) между генератором на 25,175 МГц и тем, чем вам нужно? Вы же все равно все на рассыпухе и самостоятельно делаете.

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

А примерно такую же, но только для ввода сигнала SDI в PCI Express (или в QSPI) сможете?

PCI Express (или в QSPI)

Это вроде все таки немножко разные материи. Но в любом случае для такого очень неплохо бы иметь СВЧ осциллограф так как речь идет на гигагерцы и схемотехнику на FPGA а никак не на мелкой логике

не, ну понятно, что на 155 серии не соберёшь... даже на 100й/500й. Даже на 74HC.

так вот и непонятно а чем blackMagic не угодил то?

тем что мы его не производим... ну и сложен в закупке и потенциально в техподдержке

Sign up to leave a comment.

Articles