Страница 1 из 1

Простая VGA видеокарта

Добавлено: Ср май 21, 2014 18:32:46
da-nie
Наверное, многим будет интересна видеокарта для вывода изображений на компьютерный монитор. Данная видеокарта выдаёт картинку разрешением 254x240 точек при 256 цветах (реально получилось меньше, я ниже скажу почему). Реализует она стандартный VGA режим 640x480 при 60 Гц развёртки. Испытывал я эту видеокарту с 6 мониторами (1 ЭЛТ и 5 ЖК), при этом на всех мониторах карта работала, за исключением монитора фирмы Acer. Чем ему не понравился сигнал, я пока не понял. :oops:

Вот как выглядит данная видеокарта:

Изображение

Вот видео, как работает данная видеокарта: http://youtu.be/cDFSwHGo0lQ

Конструктивно видеокарта состоит из двух модулей: модуль памяти и модуль ЦАП'а. К ним подключается устройство, которое эту видеокарту собирается использовать - управляющий контроллер. Модуль памяти просто формирует сигналы синхронизации (HS, VS) и гашения луча (BL) и выдаёт наружу код цвета (D0...D7), который модуль ЦАП'а преобразует в уровень 0-0.7 В и подаёт на монитор. Микроконтроллер модуля памяти просто перебирает адреса статического ОЗУ, а данные из ОЗУ и есть цвета точек. Как видите, ничего сложного. С использованием микроконтроллера Atmega168 с частотой 20 МГц требуется 2 такта на одну точку.

Схема модуля памяти:
СпойлерИзображение
Схема модуля ЦАП:
СпойлерИзображение
Схему управляющего контроллера я не привожу (но в архиве есть печатная плата для него и его прошивка), так как вся его задача - выставлять адрес на шину адреса (A0...A15), выставлять данные на шину данных (D0...D7), выставлять сигналы WR (запись по низкому уровню), OE (разрешение вывода данных при низком уровне) и выставлять сигнал A/B (переключение памяти на работу с управляющим контроллером по низкому уровню). Управляющий контроллер получает от платы памяти сигнал гашения луча (BL), который может быть использован для синхронизации записи в память видеокарты (а можно по нему и не синхронизироваться, но тогда на экране будет в моменты перерисовки "снег" - как решают проблему одновременного доступа к памяти видеокарты без двухпортового ОЗУ я, увы, не знаю - может, кто подскажет? Рисовать во время обратного хода луча всё же довольно медленно.).

ЦАП не выдаёт всех 256 цветов, так как эмиттерные повторители срезают младшие биты цвета. Я пока не придумал, как можно в точности передать сигнал R-2R-ЦАП'а с усилением по току без использования обратных связей (на частоте 20 МГц ОС не очень полезна :) ). Конденсаторы на входных резисторах ЦАП'а ускоряют рассасывание заряда у транзисторов КТ315, чем ускоряют работу ключа на запирание. Без них отображать отдельный пиксель не удастся.

Ну вот, вроде бы и всё. :)

Архив с разведёнными платами, прошивками и исходниками (Внимание: я рисовал схему с плат и мог где-нибудь ошибиться по невнимательности. Но вроде бы проверил по три раза...). Компилятор WinAVR.
VideoCard.rar
(277.35 КБ) 433 скачивания

Re: Простая VGA видеокарта

Добавлено: Ср май 21, 2014 18:40:16
petrenko
..так как эмиттерные повторители срезают младшие биты цвета..
А если попробовать истоковые повторители ? Мож хоть чуток лучше будет ? :roll:

Re: Простая VGA видеокарта

Добавлено: Ср май 21, 2014 18:45:05
da-nie
А он сможет на 10 МГц работать? :oops: Хотя, написано, в осциллографы ставят на вход... :idea:

Re: Простая VGA видеокарта

Добавлено: Ср май 21, 2014 20:58:06
GARMIN
ЦАП не выдаёт всех 256 цветов, так как эмиттерные повторители срезают младшие биты цвета. Я пока не придумал, как можно в точности передать
Держи ответ:
Изображение

Re: Простая VGA видеокарта

Добавлено: Ср май 21, 2014 21:16:43
da-nie
Спасибо! Но эта схема сделает другую штуку: выше 4.3 В обрежется до 4.3 В. Хотя... Оно ведь и сейчас выше 4.3 не выдаёт. :) Правда, сейчас на входе может быть и 4.6 В и 4.9 и они верно смасштабируются, а с этой схемой они будут притянуты к 5 В и потеряются уже верхние биты. :oops:

Re: Простая VGA видеокарта

Добавлено: Чт май 22, 2014 08:21:34
GARMIN
Запитай R-2R через диод с конденсатором.

Re: Простая VGA видеокарта

Добавлено: Чт май 22, 2014 18:45:57
da-nie
Да это понятно, что можно питание ЦАП'а уменьшить... Точно так же можно и на текущей схеме поднять уровень нуля.

Re: Простая VGA видеокарта

Добавлено: Чт май 22, 2014 21:07:19
GARMIN
Я думаю, ты хочешь на двух транзисторах сделать rail-to-rail операционник ;)
Уменьшай диапазон напряжений на выходе ЦАПа, делай правильные уровни чёрного, белого и синхросигналов.
Подобное делал в 92 году в цветном выходе для специалиста.

Re: Простая VGA видеокарта

Добавлено: Чт май 22, 2014 21:17:41
da-nie
Примерно да. ;) Но вот нет таких схем без ОС. А с ОС частота не та (хотя, думаю, есть решения с ОС и на 100 МГц). Потому и спрашивал, вдруг кто знает что-то эдакое, чтобы 1 в 1 и без ОС и без изменения параметров питания.

Это не к телевизору подключается, поэтому тут уровни все и так в норме (здесь нет подъёма на 0.3 В сигналов цветов, так как синхросигналы идут отдельными линиями). Просто ЦАП работает несколько хуже, чем хотелось бы. Можно, конечно, понизить питание ЦАП'а или поднять его ноль, но было интересно сделать это иначе (а с подъёмом нуля ЦАП я так и сделаю, если буду делать подключение к телевизору, чтобы поднять на 0.3 В относительно синхросигнала).

Re: Простая VGA видеокарта

Добавлено: Пт май 23, 2014 07:27:33
GARMIN
Какая нужна амплитуда сигналов RGB? Плясать нужно от этого. И задачи ставить решаемые. Если нужна амплитуда 5V p-p, то питание бери больше 5 вольт.
А то ты сначала просишь дать тебе 5 вольт амплитуды, а потом делишь в три раза делителем на выходе.
Сначала сделай нужную амплитуду 1,5 вольт, а потом ставь повторитель, чё упёрся лбом в стену?

Re: Простая VGA видеокарта

Добавлено: Пт май 23, 2014 08:07:19
da-nie
Да я не решаю задачу. Я давно знаю одно решение (поднять уровень земли диодами и всё тут (хотя на ключи пойдёт отрицательное напряжение, но оно невелико); впрочем, про использование p-n-p повторителя на входе я не подумал. :) ). Это не тема о вопросах. Это готовое устройство.
Вопрос был так, между делом, в скобках, вдруг кто знает, как сделать повторитель 1 в 1 без извращений. :) Потому что такой повторитель много где ещё можно применить (это же усилитель мощности с усилением по напряжению равным 1).

Строго говоря, есть ещё вопрос такого же уровня: я видел кучу таймингов развёртки VGA-сигнала, но все они немного отличаются и у всех пишут, что сие есть стандарт. Какая же правильная? Устройство работает и с выбранной мной развёрткой, но это ещё не гарантирует соответствие стандарту VGA.

Re: Простая VGA видеокарта

Добавлено: Пт май 23, 2014 08:53:48
GARMIN
da-nie писал(а):впрочем, про использование p-n-p повторителя на входе я не подумал.
Хорошо, что чем - то помог.

Re: Простая VGA видеокарта

Добавлено: Пт май 23, 2014 09:09:06
da-nie
Да, спасибо вам и petrenko! :) Эти варианты мне в голову не пришли. :)