Vga dac что это

Обновлено: 03.07.2024

VGA-совместимые видеоадаптеры управляются при помощи портов ввода-вывода 03C0h – 03CFh, 03B4h, 03B5h, 03D4h, 03D5h, 03DAh, причем реальное число внутренних регистров видеоадаптера, к которым можно обращаться через это окно, превышает 50. Так как BIOS предоставляет хорошую поддержку для большинства стандартных функций, мы не будем рассматривать подробно программирование видеоадаптера на уровне портов, а только рассмотрим основные действия, для которых принято обращаться к видеоадаптеру напрямую.

Внешние регистры контроллера VGA (03C2h – 03CFh)

Доступ к этим регистрам осуществляется прямым обращением к соответствующим портам ввода-вывода.

Регистр состояния ввода 0 (ISR0) — доступен для чтения из порта 03С2

бит 7: произошло прерывание обратного хода луча IRQ2

бит 6: дополнительное устройство 1 (линия FEAT1)

бит 5: дополнительное устройство 0 (линия FEAT0)

бит 4: монитор присутствует

Регистр вывода (MOR) — доступен для чтения из порта 3CCh и для записи как 3C2h

биты 7 – 6: полярность сигналов развертки — (01, 10, 11) = (350, 400, 480) линий

бит 5: 1/0 — нечетная/четная страница видеопамяти

биты 3 – 2: частота — (00, 01) = (25,175 MHz, 28,322 MHz)

бит 1: 1/0 — доступ CPU к видеопамяти разрешен/запрещен

бит 0: 1/0 — адрес порта контроллера CRT = 03D4h/03B4h

Регистр состояния ввода 1 (ISR1) — доступен для чтения из порта 03DAH

бит 3: происходит вертикальный обратный ход луча

бит 0: происходит любой обратный ход луча

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

Регистры контроллера атрибутов (03C0h – 03C1h)

Контроллер атрибутов преобразовывает значения байта атрибута символа в цвета символа и фона. Для записи в эти регистры надо записать в порт 03C0h номер регистра, а затем (второй командой out) — данные для этого регистра. Чтобы убедиться, что 03C0h находится в состоянии приема номера, а не данных, надо выполнить чтение из ISR1 (порт 03DAh). Порт 03C1h можно использовать для чтения последнего записанного индекса или данных.

00h – 0Fh: Регистры палитры EGA

биты 5 – 0: номер регистра в текущей странице VGA DAC, соответствующего данному EGA-цвету.

10h: Регистр управления режимом

бит 7: разбиение регистров VGA DAC для 16-цветных режимов: 1 = 16 страниц по 16 регистров, 0 = 4 страницы по 64 регистра

бит 5: горизонтальное панорамирование разрешено

бит 3: 1/0 — бит 7 атрибута управляет миганием символа/цветом фона

бит 2: девятый пиксель в каждой строке повторяет восьмой

бит 1: 1/0 — генерация атрибутов для монохромных/цветных режимов

бит 0: 1/0 — генерация атрибутов для текстовых/графических режимов

11h: Регистр цвета бордюра экрана (по умолчанию 00h)

биты 7 – 0: номер регистра VGA DAC

12h: Регистр разрешения использования цветовых плоскостей

бит 3: разрешить плоскость 3

бит 2: разрешить плоскость 2

бит 1: разрешить плоскость 1

бит 0: разрешить плоскость 0

13h: Регистр горизонтального панорамирования

биты 3 – 0: величина сдвига по горизонтали в пикселях (деленная на 2 для режима 13h)

14h: Регистр выбора цвета (по умолчанию 00h)

Функции INT 10h AX = 1000h – 1009h позволяют использовать большинство из этих регистров, но кое-что, например панорамирование, оказывается возможным только при программировании на уровне портов.

Регистры графического контроллера (03CEh – 03CFH)

Для обращения к регистрам графического контроллера следует записать индекс нужного регистра в порт 03CEh, после чего можно будет читать и писать данные для выбранного регистра в порт 03CFh. Если требуется только запись в регистры, можно просто поместить индекс в AL, посылаемый байт — в АН и выполнить команду вывода слова в порт 03CEh. Этот контроллер, в первую очередь, предназначен для обеспечения передачи данных между процессором и видеопамятью в режимах, использующих цветовые плоскости, как, например, режим 12h (640x480x16).

00h: Регистр установки/сброса

биты 3 – 0: записывать FFh в цветовую плоскость 3 – 0 соответственно

01h: Регистр разрешения установки/сброса

биты 3 – 0: включить режим установки/сброса для цветовой плоскости 3 – 0

В этом режиме данные для одних цветовых слоев получают от CPU, а для других — из регистра установки/сброса. Режим действует только в нулевом режиме работы (см. регистр 05h).

02h: Регистр сравнения цвета

биты 3 – 0: искомые биты для цветовых плоскостей 3 – 0

Используется для поиска пикселя заданного цвета, чтобы не обращаться по очереди во все цветовые слои.

03h: Регистр циклического сдвига данных

биты 4 – 3: выбор логической операции:

00 — данные от CPU записываются без изменений

01 — операция AND над CPU и регистром-защелкой

10 — операция OR над CPU и регистром-защелкой

11 — операция XOR над CPU и регистром-защелкой

биты 2 – 0: на сколько бит выполнять вправо циклический сдвиг данных перед записью в видеопамять

04h: Регистр выбора читаемой плоскости

биты 1 – 0: номер плоскости (0 – 3)

Запись сюда изменяет номер цветовой плоскости, данные из которой получает CPU при чтении из видеопамяти.

05h: Регистр выбора режима работы

бит 6: 1/0 — 256/16 цветов

бит 4: четные адреса соответствуют плоскостям 0, 2, нечетные — 1,3

бит 3: 1 — режим сравнения цветов

биты 1 – 0: режим:

00: данные из CPU (бит на пиксель) + установка/сброс + циклический сдвиг + логические функции

01: данные в/из регистра-защелки (прочитать в него и записать в другую область памяти быстрее, чем через CPU)

10: данные из CPU, байт на пиксель, младшие 4 бита записываются в соответствующие плоскости

11: то же самое + режим битовой маски

06h: Многоцелевой регистр графического контроллера

биты 3 – 2: видеопамять:

00: A0000h – BFFFFh (128 Кб)

01: A0000h – AFFFFh (64 Кб)

10: B0000h – B7FFFh (32 Кб)

11: B8000h – BFFFFh (32 Кб)

бит 0: 1/0 — графический/текстовый режим

07h: Регистр игнорирования цветовых плоскостей

биты 3 – 0: игнорировать цветовую плоскость 3 – 0

08h: Регистр битовой маски

Если бит этого регистра 0 — соответствующий бит будет браться из регистра-защелки, а не от CPU. (Чтобы занести данные в регистр-защелку, надо выполнить одну операцию чтения из видеопамяти, при этом в каждый из четырех регистров-защелок будет помещено по одному байту из соответствующей цветовой плоскости.)

Графический контроллер предоставляет весьма богатые возможности по управлению режимами, использующими цветовые плоскости. В качестве примера напишем процедуру, выводящую точку на экран в режиме 12h (640x480x16) с использованием механизма установки/сброса:

Регистры контроллера CRT (03D4h – 03D5H)

Контроллер CRT управляет разверткой и формированием кадров на дисплее. Как и для графического контроллера, для обращения к регистрам контроллера CRT следует записать индекс нужного регистра в порт 03D4h, после чего можно будет читать и писать данные для выбранного регистра в порт 03D5h. Если требуется только запись в регистры, можно просто поместить индекс в AL, посылаемый байт — в АН и выполнить команду вывода слова в порт 03D4h.

00h: Общая длина горизонтальной развертки

01h: Длина отображаемой части горизонтальной развертки минус один

02h: Начало гашения луча горизонтальной развертки

03h: Конец гашения луча горизонтальной развертки

биты 6 – 5: горизонтальное смещение в текстовых режимах

биты 4 – 0: конец импульса

04h: Начало горизонтального обратного хода луча

05h: Конец горизонтального обратного хода луча

биты 7, 4 – 0: конец импульса

биты 6 – 5: горизонтальное смещение импульса

06h: Число вертикальных линий растра без двух старших бит

07h: Дополнительный регистр

бит 7: бит 9 регистра 10h

бит 6: бит 9 регистра 12h

бит 5: бит 9 регистра 06h

бит 4: бит 8 регистра 18h

бит 3: бит 8 регистра 15h

бит 2: бит 8 регистра 10h

бит 1: бит 8 регистра 12h

бит 0: бит 8 регистра 06h

08h: Предварительная горизонтальная развертка

биты 6 – 5: биты 5 и 4 регистра горизонтального панорамирования

биты 4 – 0: номер линии в верхней строке, с которой начинается изображение

09h: Высота символов

бит 7: двойное сканирование (400 линий вместо 200)

бит 6: бит 9 регистра 18h

бит 5: бит 9 регистра 15h

биты 4 – 0: высота символов минус один (от 0 до 31)

0Ah: Начальная линия курсора (бит 5: гашение курсора)

0Bh: Конечная линия курсора (биты 6 – 5: отклонение курсора вправо)

0Ch: Старший байт начального адреса

0Dh: Младший байт начального адреса (это адрес в видеопамяти, начиная с которого выводится изображение)

0Eh: Старший байт позиции курсора

0Fh: Младший байт позиции курсора

10h: Начало вертикального обратного хода луча без старшего бита

11h: Конец вертикального обратного хода луча без старшего бита

бит 7: защита от записи в регистры 00 – 07 (кроме бита 4 в 07h)

бит 6: 1/0 — 5/3 цикла регенерации за время обратного хода луча

бит 5: 1/0 — выключить/включить прерывание по обратному ходу луча

бит 4: запись нуля сюда заканчивает обработку прерывания

биты 3 – 0: конец вертикального обратного хода луча

12h: Число горизонтальных линий минус один без двух старших бит

13h: Логическая ширина экрана (в словах/двойных словах на строку)

14h: Положение символа подчеркивания

бит 6: 1/0 — адресация словами/двойными словами

бит 5: увеличение счетчика адреса регенерации на 4

биты 4 – 0: положение подчеркивания

15h: Начало импульса гашения луча вертикальной развертки без двух старших бит

16h: Конец импульса гашения вертикальной развертки

17h: Регистр управления режимом

бит 7: горизонтальный и вертикальный ходы луча отключены

бит 6: 1/0 — адресация байтами/словами

бит 4: 1 — контроллер выключен

бит 3: 1/0 — счетчик адреса регенерации растет на 2/1 на каждый символ

бит 2: увеличение в 2 раза разрешения по вертикали

18h: Регистр сравнения линий без двух старших бит

(от начала экрана до линии с номером из этого регистра отображается начало видеопамяти, а от этой линии до конца — видеопамять, начиная с адреса, указанного в регистрах 0Ch и 0Dh)

22h: Регистр-защелка (только для чтения)

23h: Состояние контроллера атрибутов

биты 7 – 3: текущее значение индекса контроллера атрибутов

бит 2: источник адреса палитры

бит 0: состояние порта контроллера атрибутов — 0/1 = индекс/данные

BIOS заполняет регистры этого контроллера соответствующими значениями при переключении видеорежимов. Так как одного контроллера CRT мало для полного переключения в новый видеорежим, мы вернемся к этому чуть позже, а пока посмотрим, как внести небольшие изменения в действующий режим, например, как превратить текстовый режим 80x25 в 80x30:

Еще одна интересная возможность, которую предоставляет контроллер CRT, — плавная прокрутка экрана при помощи регистра 08h:

Горизонтальная прокрутка осуществляется аналогично, только с использованием регистра горизонтального панорамирования 13h из контроллера атрибутов.

Регистры синхронизатора (03C4h – 03C5h)

Для обращения к регистрам синхронизатора следует записать индекс нужного регистра в порт 03C4h, после чего можно будет читать и писать данные для выбранного регистра в порт 03C5h. Точно так же, если требуется только запись в регистры, можно просто поместить индекс в AL, посылаемый байт — в АН и выполнить команду вывода слова в порт 03CEh.

00h: Регистр сброса синхронизации

бит 1: запись нуля сюда вызывает синхронный сброс

бит 0: запись нуля сюда вызывает асинхронный сброс

01h: Регистр режима синхронизации

бит 5: 1 — обмен данными между видеопамятью и дисплеем выключен

бит 3: 1 — частота обновления для символов уменьшена в два раза

бит 0: 1/0 — ширина символа 8/9 точек

02h: Регистр маски записи

бит 3: разрешена запись CPU в цветовую плоскость 3

бит 2: разрешена запись CPU в цветовую плоскость 2

бит 1: разрешена запись CPU в цветовую плоскость 1

бит 0: разрешена запись CPU в цветовую плоскость 0

03h: Регистр выбора шрифта

бит 5: если бит 3 атрибута символа = 1, символ берется из шрифта 2

бит 4: если бит 3 атрибута символа = 0, символ берется из шрифта 2

биты 3 – 2: номер таблицы для шрифта 2

биты 1 – 0: номер таблицы для шрифта 1

(00, 01, 10, 11) = (0 Кб, 16 Кб, 32 Кб, 48 Кб от начала памяти шрифтов VGA)

04h: Регистр организации видеопамяти

бит 3: 1 — режим CHAIN-4 (используется только в видеорежиме 13h)

бит 2: 0 — четные адреса обращаются к плоскостям 0, 2, нечетные — к 1, 3

бит 1: объем видеопамяти больше 64 Кб

Хотя BIOS и позволяет использовать некоторые возможности этих регистров, в частности работу со шрифтами (INT 10h АН = 11h) и выключение обмена данными между видеопамятью и дисплеем (INT 10h, АН = 12h, BL = 32h), прямое программирование регистров синхронизатора вместе с регистрами контроллера CRT позволяет значительно изменять характеристики видеорежимов VGA, вплоть до установки нестандартных видеорежимов. Наиболее популярными режимами являются так называемые режимы «X» с 256 цветами и с разрешением 320 или 360 пикселей по горизонтали и 200, 240, 400 или 480 пикселей по вертикали. Так как такие режимы не поддерживаются BIOS, для их реализации нужно написать все необходимые процедуры — установку видеорежима, вывод пикселя, чтение пикселя, переключение страниц, изменение палитры, загрузку шрифтов. При этом для всех режимов из этой серии, кроме 320x240x256, приходится также учитывать измененное соотношение размеров экрана по вертикали и горизонтали, чтобы круг, выведенный на экран, не выглядел как эллипс, а квадрат — как прямоугольник.

Установка нового режима выполняется почти точно так же, как и в предыдущем примере, — путем модификации существующего. Кроме того, нам придется изменять частоту кадров (биты 3 – 2 регистра MOR), а это приведет к сбою синхронизации, если мы не выключим синхронизатор на время изменения частоты (записью в регистр 00h):

Регистры VGA DAC (03C6h – 03C9h)

Таблица цветов VGA на самом деле представляет собой 256 регистров, в каждом из которых записаны три 6-битных числа, соответствующих уровням красного, зеленого и синего цвета. Подфункции INT 10h AX =1010h – 101Bh позволяют удобно работать с этими регистрами, но, если требуется максимальная скорость, программировать их на уровне портов ввода-вывода не намного сложнее.

03C6h для чтения/записи: Регистр маскирования пикселей (по умолчанию FFh)

При обращении к регистру DAC выполняется операция AND над его номером и содержимым этого регистра.

03C7h для записи: Регистр индекса DAC для режима чтения

Запись байта сюда переводит DAC в режим чтения, так что следующее чтение из 03C9h вернет значение регистра палитры с этим индексом.

03C7h для чтения: Регистр состояния DAC

биты 1 – 0: 00/11 — DAC в режиме записи/чтения

03C8h для чтения/записи: Регистр индекса DAC для режима записи

Запись байта сюда переводит DAC в режим записи, так что следующие записи в 03C3h будут записывать новые значения в регистры палитры, начиная с этого индекса.

03C3h для чтения/записи: Регистр данных DAC

Чтение отсюда считывает значение регистра палитры с индексом, записанным предварительно в 03C8h, запись — записывает новое значение в регистр палитры с индексом, записанным в 03C8h. На каждый регистр требуются три операции чтения/записи, передающие три 6-битных значения уровня цвета: красный, зеленый, синий. После третьей операции чтения/записи индекс текущего регистра палитры увеличивается на 1, так что можно считывать/записывать сразу несколько регистров

Команды insb/outsb серьезно облегчают работу с регистрами DAC в тех случаях, когда требуется считывать или загружать значительные участки палитры или всю палитру целиком, — такие процедуры оказываются и быстрее, и меньше аналогичных, написанных с использованием прерывания INT 10h. Посмотрим, как это реализуется на примере программы плавного гашения экрана.

Как и материнская плата компьютера, видеокарта изготавливается на печатной плате, содержит процессор и оперативную память, есть система ввода-вывода (BIOS микросхема), которая хранит настройки карты и выполняет диагностику памяти при запуске. Процессор видеокарты, называемый графическим процессором (GPU), подобен центральному процессору компьютера. Однако GPU, специально разработан для того, чтобы выполнять сложные математические и геометрические вычисления, необходимые для графического рендеринга. У некоторых из самых быстрых GPU имеется больше транзисторов, чем у самого ЦП и следовательно большая производительность. Так же в процессе работы GPU выделяет большое количество тепла, поэтому его обычно снабжают теплоотводом или вентилятором.

image003000
Типовое расположение компонентов видеокарты

В дополнение к своей вычислительной мощности GPU использует специальное программное обеспечение, разработанное для того чтобы помочь ему проанализировать и использовать принятые данные более эффективно. Например, корпорации AMD и nVidia производящие основной объем имеющихся GPU на рынке, разработали свои собственные программные улучшения для повышения производительности GPU, так для улучшения качества изображения и использования процессора разработано:

Сглаживание (FSAA), которое приглаживает края 3D объектов, помогая им выглядеть более реалистично.

Анизотропная фильтрация (AF), заставляет изображения выглядеть более свежими.

Так же каждая компания разработала определенные методы и приемы, чтобы помочь GPU применить цвета, штриховку, текстуры и образцы, к примеру PhisX nVidia или Catalyst AMD.

Поскольку GPU создает изображения, он должен где-нибудь содержать уже завершенные, готовые картинки так сказать буфер хранения. Для этого в видеокарте используется оперативная память (RAM), она хранит данные о каждом пикселе, его цвете и расположении на экране. Часть RAM может также действовать как кадровый буфер, т.е., содержит в памяти завершенные изображения, пока не поступит команда от GPU вывести их на экран. Как правило, видеопамять работает в сверхвысоких скоростях, так как нужно в минимальный промежуток времени передать большой объем данных поэтому при изготовлении видеокарт производители стараются использовать память способную это обеспечить, на сегодняшний день DDR3 (DDR 4 будет поддерживать частоты от 2133 до 4266 МГц и в массовое производство выйдет предположительно в 2013 году).

Оперативная память непосредственно соединяется с цифро-аналоговым преобразователем, названным DAC (что-то подобное мы рассматривали в статьях про звуковые карты). Этот преобразователь, также названный RAMDAC, преобразовывает изображение в аналоговый сигнал, который может использовать монитор и отправляет изображение ему через кабель. У некоторых карт есть преобразователь, который может улучшить производительность и поддерживать больше чем один внешний монитор.

image004
У этой видеокарты Radeon X800XL
есть DVI, VGA и соединения ViVo.

Видеокарты соединяются с компьютером через системную плату. Системная плата подает питание к карте и позволяет ей связываться с центральным процессором компьютера. Более мощные видеокарты часто требуют большего количества питания, чем системная плата может им предоставить, таким образом, их снабжают разъемом дополнительного питания.

Соединения с системной платой обычно выполнено через один из трех интерфейсов, это:

  • Взаимодействие периферийных компонентов (PCI) – в настоящие время не используется;
  • Ускоренный графический порт (AGP) – в настоящие время не используется;
  • PCI Express(PCIe).

PCI Express является самым новым из трех подключений и обеспечивает самые высокие скорости передачи данных и достаточный уровень питания видеокарты.

PCIe также поддерживает использование двух видеокарт на одном компьютере, работу порта PCIe рассмотрим в следующих статьях.

У большинства видеокарт есть два вывода для соединения с монитором. Это разъем DVI, который поддерживается ЖК мониторами и разъем VGA, для мониторов с ЭЛТ. Когда-то корпорация Apple выпустила мониторы, которые использовали собственный соединитель дисплея Apple (ADC). Хотя эти мониторы все еще находятся в использовании, компания Apple уже отказалась от выпуска мониторов с ADC и перешла к использованию соединения DVI.

В дополнение к соединениям карты, как с материнской платой, так и монитором, некоторые видеокарты снабжают и другими портами, вот некоторые из них:

  • Для телевизора (S-video)
  • Для аналоговых видеокамер: ViVo
  • Для цифровых фотоаппаратов: (FireWire или USB)
  • А некоторые видеокарты также содержат еще и телевизионные тюнеры для просмотра ТВ.

Использование видеокарт в современных компьютерах это так сказать не роскошь, а первая необходимость, а вот как не ошибиться при покупке видеокарты, как приобрести то что нужно и не жалеть о потраченных деньгах я постарался рассказать в статье «Основные 6 ошибок при покупке видеокарты или как выбрать видеокарту».

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



В своей предыдущей статье я рассказывал о подключении индикатора от телевизора к отладочной плате DE0-NANO. Однако получившаяся конструкция достаточна сложна и неудобна в работе — куча проводов, несколько источников питания, в том числе и 12В. Кроме того, из-за экзотичности индикатора, статья получилась не очень полезной. Поэтому далее в своих экспериментах я решил использовать обычный ЖК-монитор. О том, как подключить его к DE0-NANO — эта статья.


Внешний вид конструкции:


В Quartus система выглядит еще проще, чем в предыдущей статье — так как нет второго PLL:

Программирование Nios
Как я уже упоминал выше, для управление графической системой используется специальная библиотека, написанная в Altera.
Все функции, связанные с управлением SGDMA, находятся в файле «alt_video_display».
Наиболее важная — инициализация, вот пример ее использования:

Так как в данном примере вместо указателей стоят константы «ALT_VIDEO_DISPLAY_USE_HEAP», то библиотека разместит и видеобуферы, и дескрипторы в heap-памяти.
Так как число видеобуферов — 2, то будет использоваться двойная буферизация — в то время, пока на экран выводится один буфер, другой можно изменять.
После инициализации система готова к работе — данные из буферов автоматически выводятся на экран.
Формирование изображения должно осуществляться таким образом:


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

Видео работы программы:

Сначала отображаются кружки, как и в прошлый раз, а потом — синусоида.
Так как видеобуферов два, то каждый кружок приходится отрисовывать дважды — в каждом буфере.
Синусоида отрисовывается каждый раз заново, перед каждой отрисовкой буфер очищается. Расчет значений синусоиды — на ходу.

MDA/Hercules/CGA/EGA to VGA конвертер на ПЛИС (Канадский скандаблер на FPGA Cyclone IV)

Описания, советы, ремонт, эксплуатация старых IBM PC-совместимых ПК

Вклад в сообщество

MDA/Hercules/CGA/EGA to VGA конвертер на ПЛИС

Канадский скандаблер на FPGA Cyclone IV

  • Принимает стандартные цифровые TTL входы. Таким образом, не надо городить внешний DAC (ЦАП) на резисторах, замешивать самостоятельно HSync и VSync в синхру на 555ЛП5 и схему преобразования коричневого в коричневый на чем то вроде 555ИД7. Имеет стандартный DSUB9 разъем, который можно втыкать прямо в видеокарты MDA/Hercules/CGA/EGA (ну или через проводок DSUB-DSUB).
  • Понимает горизонтальную синхру, отличную от 15.7 KHz. У GBS-8200 с этим судя по всему все плохо - хотя в спеках и обещают, на деле нифига не работает. Поэтому кроме стандартных CGA-режимов и режимов EGA в режиме совместимости с CGA на GBS-8200 добиться чего-то еще сложно (хотя, поговаривают, что можно всем рулить через i2c интерфейс, но. )
  • Качество картинки. Я бы назвал это - идеально. Даже на VGA, подключенных к LCD монитору бывает хуже, чем с EGA и этим конвертером. Никаких вертикальных полос, снега, двоения, размытия. Все четко, как чечетка -)

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

Проверял на всех имеющихся у меня видео-картах, а есть у меня они такие:

Изображение

MDA/Hercules карта на чипе Winbond W86855AF

Изображение

CGA карта на чипе Udl

EGA карточки на чипе Gemini VC-001. Точнее даже SuperEGA, так как имеют на борту 256Kb памяти и могут режимы с высоким разрешением

Изображение

Знаменитая ATI EGA Wonder 800. Также несет на борту 256Kb памяти. Помимо EGA высоких разрешений, может еще и VGA 640x480x16 цветов.

Изображение

И пока не рабочая EGA на чипе Citygate D10. Пока нет кварца и генератора.

Вклад в сообщество

Если Вы его собрали, может и расскажете, как это работает?

А где детали брали, и во сколько примерно обошлось?

Изображение

Email для связи

Вклад в сообщество

Rio444 писал(а): Если Вы его собрали, может и расскажете, как это работает?

Работает просто - с одной стороны втыкается в CGA/EGA/MDA/HERCULES видео-карту, с другой стороны вставляется шнур от VGA монитора. А, ну и питание 5в от адаптера. И это вообщем-то все.
Есть автоматическое распознавание CGA/EGA сигнала. Для MDA необходимо включить первый переключатель. Для Hercules еще и второй.
В режиме CGA есть эффект "сканлайн" - типа как на старых ЭЛТ мониторах. Можно включить эмуляцию монохромного кинескопа. И самое главное - есть поддержка композитного CGA. Короче все, что есть у CGA эта штука умеет.
В режиме EGA - ну просто EGA, режимы с высоким разрешением. Можно включить эмуляцию монохромного кинескопа.
В режиме MDA/Hercules - можно задать тип кинескопа - зеленый, янтарный или белый.

Есть регулировка по вертикали и горизонтали. Можно менять фазу сигнала, подстраиваясь под конкретную видео-карту.

Rio444 писал(а): А где детали брали, и во сколько примерно обошлось?

Обошлось дорого. Основная отладочная плата с ПЛИС покупается на алиэкспрессе, гуглится по названию CoreEP4CE6. К ней же там же сразу покупается китайский USB-Blaster - это программатор для ПЛИС. Это главное. Но, не основное -) Затем нужна дочерняя плата. Плату, а так же быструю SRAM (8ns) перед новым годом предлагали на соседнем форуме в барахолке. Там и купил с доставкой почтой. Оставались разъемы D-SUB9 и VGA, переключатель, пара выводных резисторов - ну тут все просто - Чип и Дип. Когда уже почти все было собрано, внезапно осознал, что не могу нигде найти микросхему буфер SN74LVC245AN в DIP корпусе, да даже и не в DIP в России. Помыкавшись пару дней взял и заказал только эту микруху опять на али (нужно было это сделать сразу). И последнее - резисторные сборки по 1кОм - забыл купить в Чип и Дип, поэтому заколхозил из подручных smd 1кОм резисторов 0805 1%. На одной из фотографий это видно.

Вообщем, почти все приходится тянуть из китая. Отладочная плата, программатор (у кого нету), SN74LVC245AN (не найти в России), память SRAM 8ns (не найти в России). Остальное здесь вроде есть.

Читайте также: