nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 28 Mar 2024 18:52



Reply to topic  [ 57 posts ]  Go to page Previous  1, 2, 3, 4  Next
Видеокарта 
Author Message
Fanat

Joined: 11 Mar 2007 03:57
Posts: 64
Location: 217.9.147.66
Reply with quote
Post 
Quote:
Контроллеру подается команда "нарисуй прямоугольник такого-то цвета от точки (x,y) до т. (x1,y1)"


А, понятно. Это ж целый графический ускоритель :)


29 Jan 2009 08:06
Profile
Fanat
User avatar

Joined: 24 Sep 2007 12:15
Posts: 63
Location: Украина
Reply with quote
Post 
Я чего-то вообще запутался.

Через SCART можно подавать роздельный RGB сигнал.
С другой стороны должны быть входы для горизантальной и вертикальной синхронизации и где они? http://pinouts.ru/Home/Scart.shtml

С VGA все понятно, но я запутался, разве VGA не RGB?
Для VGA нужен монитор... Но если в телевизоре есть вход для RGB, то есть можно телек вместо монитора чтоли юзать. Но как ведь частота обновления разная...

Теперь у меня в голове каша... Вернуться чтоли к чернобелому композитному сигналу, там все понятно.


Мои догатки на этот счет:
Если телевизор настроен на прием PAL сигнала, то на вход яркости поступает то, и всегда (синхроимпульсы, сигнал яркости), но часть строки с информацией о яркости игнорируется, в замен она берется из того что есть на входах Rd Gr Bl в это время.


29 Jan 2009 09:16
Profile
Fanat
User avatar

Joined: 24 Sep 2007 12:15
Posts: 63
Location: Украина
Reply with quote
Post 
На самом деле, черно-белый сигнал это не интересно, тем более, что цветной получить ни чуть не сложнее.

Так что буду использовать монитор. VGA сигнал 640x480, 60 Гц. Если продублировать строки, и сделать 320 пикселей в строке получим 320x240. При 16 чветах для хранения нужно 38400 байт, что вполне нормально.

Как плюс: простота синхронизации.

Минус: 60Гц против 50 у телевизора. Необходимость дублирования строк (дублирование полукадров с той же целью в телевизоре сделать проще). Неизвестная "дуракоустойчивость" самого монитора (как бы его не спалить, просчитавшись в сопротивлениях)

Интересно, а как монитор определяет разрешение и режим работы? Автоматически по интервалам между синхроимпульсами?


29 Jan 2009 11:11
Profile
Banned
User avatar

Joined: 20 Mar 2005 13:41
Posts: 2141
Location: От туда
Reply with quote
Post 
danchandoo wrote:
Интересно, а как монитор определяет разрешение и режим работы? Автоматически по интервалам между синхроимпульсами?

Да. В современных мониках стоит контроллер. Он измеряет частоты и учитывает полярность синхроимпульсов. Вот и все.
Я уже накидал синхрогенератор для того-же Специалиста с заточкой под VGA. Абсолютно ничего сложного. ;)


29 Jan 2009 20:08
Profile
Fanat
User avatar

Joined: 24 Sep 2007 12:15
Posts: 63
Location: Украина
Reply with quote
Post 
Ну тоесть современный монитор вполне поддерживает нужный мне формат.

Дело за быстрой памятью. А то каждые 78 нс обращение идет, а еще проц писать должен успевать, время доступа 25нс было бы хорошо...

Ну и, собственно, за розработкой всей логики синхрогенератора, тем и займусь.


30 Jan 2009 02:12
Profile
Fanat
User avatar

Joined: 24 Sep 2007 12:15
Posts: 63
Location: Украина
Reply with quote
Post 
Вот, 2 часа AutoCAD мучал, потом еще в Painte рехтовал =)

http://files.mail.ru/48436D

Сие есть схема для розделения доступа ЦП и синхрогенератора к памяти. Ну на вид (с моей точки зрения) может быть жизнеспособно.


Принцип действия:

Синхрогенератор каждые 156 нс генерирует сигнал RD (активный уровень низкий) который длится половину этого времени (78нс) остольное время используется для записи процессором данных в память.


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

При высоком уровне на RD, если был защелкнут низкий уровень WR происходит запись.

Таким образом если сигнал WR попал на спад RD, будет произведена запись даже если это случилось в крайний момент времени перед тем как WR станет неактивным.

Недостаток: возможна повторная запись (расход эллектричества лишний), а также кратковременный конфликт между выводами адреса CPU и синхрогенератора во время смены сигнала RD.

Скажите пожалуйста это теоретически будет работать?


30 Jan 2009 13:49
Profile
Fanat
User avatar

Joined: 24 Sep 2007 12:15
Posts: 63
Location: Украина
Reply with quote
Post 
http://files.mail.ru/4YZVAS

Временная диаграмма сигналов.

Подсвеченное:

- красным -- чтение
- зеленым -- запись
- серым отсутствие записи
- не подсвечен момент повторной записи сразу после чтения за зеленым

(чтение подсвечено только один раз)

Прошу прошенья за избыточность рисунка, увлекся =).


30 Jan 2009 14:16
Profile
Banned
User avatar

Joined: 20 Mar 2005 13:41
Posts: 2141
Location: От туда
Reply with quote
Post 
danchandoo wrote:
Скажите пожалуйста это теоретически будет работать?

У тебя шина данных не реверсируется. Как оно будет работать? Или ты не хочешь читать из видеопамяти?
Вот набросок моего варианта (кликабельно):
Image
3М - сигнал который и задает весь смак. Тайминги.
Авторские примечания:
1. Изза высокой частоты пикселей в строке стоят синхронные счетчики. На выходе ИР13, он 25МГц работает (проверено).
2. Частота пикселей выбрана 25МГц (стандарт VGA) изза сохранения пропорций (экранчик будет 4:3 отцентрован в поле из 640х480). Если перейти на разрешение 800х600, то дублируя строки можно снизить пиксельклок, этот вариант возможно будет проработан.
3. Синхрогенератор полностью самодостаточен здесь, связь его с процом по сигналам адреса (А0-А15), данных (D0-D7) и управления (RD, WR, RAM).
4. Процессор нетормозиться, правда работает на 3МГц. Источник тактов - сам синхрогенератор. Окно обращения в лог.1 периода 3М (лог.0 N3M), которое отцентровано от подъема сигнала тактов процессора, поэтому обращения к памяти считываются полюбому.
5. Шина памяти отделена 2мя регистрами: тот, что работает на запись (CPU=>RAM) просто пропускает сигнал во время окна, а тот что на чтение (RAM=>CPU) записывает значение и хранит до следующего окна. Таким образом, отрабатывается тайминг цикла М1, который получает данные по спаду тактового сигнала.
6. Узел выхода VGA не проработан. Аналоговую часть надо будет переделывать.
7. Вся эта байда разрабатывалась для замены стандартной Спецовской. Можно, конечно, подогнать ее под конкретный ВМ80 (и при этом снизить ему частоту до положенных 2МГц), но я пока не прорабатываю этот вариант. Z80 проще и вкуснее.
8. Хочется прикрутить конроллер цвета спецовский.

Обсуждаем.


30 Jan 2009 22:07
Profile
Fanat
User avatar

Joined: 24 Sep 2007 12:15
Posts: 63
Location: Украина
Reply with quote
Post 
Сначала отпишусь, потом буду розбираться с прежложеной вами схемой, так как для меня это сложно.

Quote:
У тебя шина данных не реверсируется. Как оно будет работать? Или ты не хочешь читать из видеопамяти?


Конечно не хочу, так как потребуются двунаправленные буферы, а мне нужно все как можно проще.

Предложенная мной схема (в которой есть ошибка, т.к. вход C D-триггера и CP защелок олжны быть соеденены вместе, а у меня одни к RD другие к НЕ-RD) является в крайней степени роздолбайской, т.к. между ЦП и синхрогенератором нет никакой синхронизации. Единственное требование чтобы частота процессора не превышала частоту синхрогенератора.

25.17 мкс активная часть строки (640*480 при 60 Гц) если в строке 320 пикселей, то время вывода пикселя 76.7 нс, в одной ячейке у нас 2 пиксела, так что частота обращения к памяти =6.357 Мгц. Можно ставить проц до 6Мгц.

Нужно только розабраться с логикой, учесть все задержки.

А как расчитывается нагрузочная способность ТТЛ? Во всех datasheet-ах дается емкость, видимо все зависит именно от емкости и частоты.
Мне это важно, т.к. чем более нагружен выход тем дольше длятся переходы из одного состояния в другое.

P. S. Скажите, а в чем вы чертите схемы?


31 Jan 2009 02:22
Profile
Banned
User avatar

Joined: 20 Mar 2005 13:41
Posts: 2141
Location: От туда
Reply with quote
Post 
danchandoo wrote:
А как расчитывается нагрузочная способность ТТЛ? Во всех datasheet-ах дается емкость, видимо все зависит именно от емкости и частоты.
Мне это важно, т.к. чем более нагружен выход тем дольше длятся переходы из одного состояния в другое.

По количеству входов, подключенных к нему. Если тебе надо подключить, например, 10 входов к одному и тому же сигналу, а выхзодов их 2, то распределяешь поровну, по 5 штук. А вообще, ТТЛ можно грузить обычно 4-5 входов, если частота не выше 4МГц. В справочниках пишут обычно.
danchandoo wrote:
P. S. Скажите, а в чем вы чертите схемы?

Я в старом-добром PCAD4.5, ктото в PCAD2ххх, а наш админ предпочитает Eagle (ну и не только он собственно). Есть так же Proteus и Protel.


31 Jan 2009 03:50
Profile
Fanat
User avatar

Joined: 24 Sep 2007 12:15
Posts: 63
Location: Украина
Reply with quote
Post 
Что-то для меня синхрогенератор придумать не очень просто.

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

Но в ближайшем интернет-магазине ПЗУ-хи только с длинной слова 8 байт, их надо несколько штук (а именно 3, при чем у последней из 8 выводов используется 2, а это верх нерациональности...) а стоят они прилично... Плюс нужен программатор, или нужно сделать самопрограмирующуюся систему...

Другой вариант куча счетчиков. Тут вот думаю какую взять опорную частоту.
Есть варианты:
- исходные 25 Мгц (вообще нужно 25.175 но такого кварца нет)
- частота вывода пикселей на экран (320*240) 12.5 Мгц
- частота обращений к памяти 6.125 Мгц ИМХО упрощает генерацию адресса ячейки видеопамяти.

Проблема в том, что чем меньше частота, тем большие отклонения от таймингов VGA. Чем это может быть чревато?


31 Jan 2009 13:15
Profile
Doomed
User avatar

Joined: 05 Nov 2007 05:08
Posts: 487
Location: Украина
Reply with quote
Post 
а 6845 не приветствуется?

или это уже дифсыт? (я не спрашивал на рынке, но уменя есть 2 шт)


02 Feb 2009 01:09
Profile WWW
Fanat
User avatar

Joined: 24 Sep 2007 12:15
Posts: 63
Location: Украина
Reply with quote
Post 
Придумал схему:

- ПЗУ, работает как ПЛМ, к адрессной шине подключен 20-битный счетчик.
- счетчик реального адресса ячейки видеопамяти (16-бит).
- 3 D-триггера, используются чтобы меньше программировать ПЗУ:
изначально в ПЗУ после стирания одни "1". Вместо того чтобы прошивать "0" в бит соответствующий выводу V_synch, скажем во все ячейки когда должен появляться этот сигнал, мы шьем его в ячейку соответствующую моменту времени за такт до начала сигнала, и за такт до конца, а вывод подключаем не сразу к V_synch, а к счетчику на D-триггере, а уже вывод триггера к выводу синхронизации.

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

Quote:
а 6845 не приветствуется?


What is it? :D


03 Feb 2009 11:13
Profile
Doomed
User avatar

Joined: 05 Nov 2007 05:08
Posts: 487
Location: Украина
Reply with quote
Post 
Quote:
What is it?

Оу! это сердце ЦГА! А также такой контроллер применялся в болгарском Пълдине (из которого я один и выковырял). Болгарский аналог - СМ607.


03 Feb 2009 22:18
Profile WWW
Fanat

Joined: 11 Mar 2007 03:57
Posts: 64
Location: 217.9.147.66
Reply with quote
Post 
Quote:
а 6845 не приветствуется?

или это уже дифсыт? (я не спрашивал на рынке, но уменя есть 2 шт)


Круто! Для меня это точно дифицит :(

А много для 6845 обвеса надо?


04 Feb 2009 02:10
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 57 posts ]  Go to page Previous  1, 2, 3, 4  Next

Who is online

Users browsing this forum: No registered users and 17 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.