А, понятно. Это ж целый графический ускоритель :)Контроллеру подается команда "нарисуй прямоугольник такого-то цвета от точки (x,y) до т. (x1,y1)"
Видеокарта
Moderator: Shaos
-
- Fanat
- Posts: 64
- Joined: 11 Mar 2007 03:57
- Location: 217.9.147.66
-
- Fanat
- Posts: 63
- Joined: 24 Sep 2007 12:15
- Location: Украина
Я чего-то вообще запутался.
Через SCART можно подавать роздельный RGB сигнал.
С другой стороны должны быть входы для горизантальной и вертикальной синхронизации и где они? http://pinouts.ru/Home/Scart.shtml
С VGA все понятно, но я запутался, разве VGA не RGB?
Для VGA нужен монитор... Но если в телевизоре есть вход для RGB, то есть можно телек вместо монитора чтоли юзать. Но как ведь частота обновления разная...
Теперь у меня в голове каша... Вернуться чтоли к чернобелому композитному сигналу, там все понятно.
Мои догатки на этот счет:
Если телевизор настроен на прием PAL сигнала, то на вход яркости поступает то, и всегда (синхроимпульсы, сигнал яркости), но часть строки с информацией о яркости игнорируется, в замен она берется из того что есть на входах Rd Gr Bl в это время.
Через SCART можно подавать роздельный RGB сигнал.
С другой стороны должны быть входы для горизантальной и вертикальной синхронизации и где они? http://pinouts.ru/Home/Scart.shtml
С VGA все понятно, но я запутался, разве VGA не RGB?
Для VGA нужен монитор... Но если в телевизоре есть вход для RGB, то есть можно телек вместо монитора чтоли юзать. Но как ведь частота обновления разная...
Теперь у меня в голове каша... Вернуться чтоли к чернобелому композитному сигналу, там все понятно.
Мои догатки на этот счет:
Если телевизор настроен на прием PAL сигнала, то на вход яркости поступает то, и всегда (синхроимпульсы, сигнал яркости), но часть строки с информацией о яркости игнорируется, в замен она берется из того что есть на входах Rd Gr Bl в это время.
-
- Fanat
- Posts: 63
- Joined: 24 Sep 2007 12:15
- Location: Украина
На самом деле, черно-белый сигнал это не интересно, тем более, что цветной получить ни чуть не сложнее.
Так что буду использовать монитор. VGA сигнал 640x480, 60 Гц. Если продублировать строки, и сделать 320 пикселей в строке получим 320x240. При 16 чветах для хранения нужно 38400 байт, что вполне нормально.
Как плюс: простота синхронизации.
Минус: 60Гц против 50 у телевизора. Необходимость дублирования строк (дублирование полукадров с той же целью в телевизоре сделать проще). Неизвестная "дуракоустойчивость" самого монитора (как бы его не спалить, просчитавшись в сопротивлениях)
Интересно, а как монитор определяет разрешение и режим работы? Автоматически по интервалам между синхроимпульсами?
Так что буду использовать монитор. VGA сигнал 640x480, 60 Гц. Если продублировать строки, и сделать 320 пикселей в строке получим 320x240. При 16 чветах для хранения нужно 38400 байт, что вполне нормально.
Как плюс: простота синхронизации.
Минус: 60Гц против 50 у телевизора. Необходимость дублирования строк (дублирование полукадров с той же целью в телевизоре сделать проще). Неизвестная "дуракоустойчивость" самого монитора (как бы его не спалить, просчитавшись в сопротивлениях)
Интересно, а как монитор определяет разрешение и режим работы? Автоматически по интервалам между синхроимпульсами?
-
- Banned
- Posts: 2139
- Joined: 20 Mar 2005 13:41
- Location: От туда
Да. В современных мониках стоит контроллер. Он измеряет частоты и учитывает полярность синхроимпульсов. Вот и все.danchandoo wrote:Интересно, а как монитор определяет разрешение и режим работы? Автоматически по интервалам между синхроимпульсами?
Я уже накидал синхрогенератор для того-же Специалиста с заточкой под VGA. Абсолютно ничего сложного.

-
- Fanat
- Posts: 63
- Joined: 24 Sep 2007 12:15
- Location: Украина
-
- Fanat
- Posts: 63
- Joined: 24 Sep 2007 12:15
- Location: Украина
Вот, 2 часа AutoCAD мучал, потом еще в Painte рехтовал =)
http://files.mail.ru/48436D
Сие есть схема для розделения доступа ЦП и синхрогенератора к памяти. Ну на вид (с моей точки зрения) может быть жизнеспособно.
Принцип действия:
Синхрогенератор каждые 156 нс генерирует сигнал RD (активный уровень низкий) который длится половину этого времени (78нс) остольное время используется для записи процессором данных в память.
При переходе RD с высокого на низкий уровень (можно и по фронту, просто до инвертора уже и так на RD много входов висело) засчелкивается состояние сигнала WR процессора и содержимое шин адресса и данных процессора.
При высоком уровне на RD, если был защелкнут низкий уровень WR происходит запись.
Таким образом если сигнал WR попал на спад RD, будет произведена запись даже если это случилось в крайний момент времени перед тем как WR станет неактивным.
Недостаток: возможна повторная запись (расход эллектричества лишний), а также кратковременный конфликт между выводами адреса CPU и синхрогенератора во время смены сигнала RD.
Скажите пожалуйста это теоретически будет работать?
http://files.mail.ru/48436D
Сие есть схема для розделения доступа ЦП и синхрогенератора к памяти. Ну на вид (с моей точки зрения) может быть жизнеспособно.
Принцип действия:
Синхрогенератор каждые 156 нс генерирует сигнал RD (активный уровень низкий) который длится половину этого времени (78нс) остольное время используется для записи процессором данных в память.
При переходе RD с высокого на низкий уровень (можно и по фронту, просто до инвертора уже и так на RD много входов висело) засчелкивается состояние сигнала WR процессора и содержимое шин адресса и данных процессора.
При высоком уровне на RD, если был защелкнут низкий уровень WR происходит запись.
Таким образом если сигнал WR попал на спад RD, будет произведена запись даже если это случилось в крайний момент времени перед тем как WR станет неактивным.
Недостаток: возможна повторная запись (расход эллектричества лишний), а также кратковременный конфликт между выводами адреса CPU и синхрогенератора во время смены сигнала RD.
Скажите пожалуйста это теоретически будет работать?
-
- Fanat
- Posts: 63
- Joined: 24 Sep 2007 12:15
- Location: Украина
http://files.mail.ru/4YZVAS
Временная диаграмма сигналов.
Подсвеченное:
- красным -- чтение
- зеленым -- запись
- серым отсутствие записи
- не подсвечен момент повторной записи сразу после чтения за зеленым
(чтение подсвечено только один раз)
Прошу прошенья за избыточность рисунка, увлекся =).
Временная диаграмма сигналов.
Подсвеченное:
- красным -- чтение
- зеленым -- запись
- серым отсутствие записи
- не подсвечен момент повторной записи сразу после чтения за зеленым
(чтение подсвечено только один раз)
Прошу прошенья за избыточность рисунка, увлекся =).
-
- Banned
- Posts: 2139
- Joined: 20 Mar 2005 13:41
- Location: От туда
У тебя шина данных не реверсируется. Как оно будет работать? Или ты не хочешь читать из видеопамяти?danchandoo wrote:Скажите пожалуйста это теоретически будет работать?
Вот набросок моего варианта (кликабельно):

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. Хочется прикрутить конроллер цвета спецовский.
Обсуждаем.
-
- Fanat
- Posts: 63
- Joined: 24 Sep 2007 12:15
- Location: Украина
Сначала отпишусь, потом буду розбираться с прежложеной вами схемой, так как для меня это сложно.
Предложенная мной схема (в которой есть ошибка, т.к. вход C D-триггера и CP защелок олжны быть соеденены вместе, а у меня одни к RD другие к НЕ-RD) является в крайней степени роздолбайской, т.к. между ЦП и синхрогенератором нет никакой синхронизации. Единственное требование чтобы частота процессора не превышала частоту синхрогенератора.
25.17 мкс активная часть строки (640*480 при 60 Гц) если в строке 320 пикселей, то время вывода пикселя 76.7 нс, в одной ячейке у нас 2 пиксела, так что частота обращения к памяти =6.357 Мгц. Можно ставить проц до 6Мгц.
Нужно только розабраться с логикой, учесть все задержки.
А как расчитывается нагрузочная способность ТТЛ? Во всех datasheet-ах дается емкость, видимо все зависит именно от емкости и частоты.
Мне это важно, т.к. чем более нагружен выход тем дольше длятся переходы из одного состояния в другое.
P. S. Скажите, а в чем вы чертите схемы?
Конечно не хочу, так как потребуются двунаправленные буферы, а мне нужно все как можно проще.У тебя шина данных не реверсируется. Как оно будет работать? Или ты не хочешь читать из видеопамяти?
Предложенная мной схема (в которой есть ошибка, т.к. вход C D-триггера и CP защелок олжны быть соеденены вместе, а у меня одни к RD другие к НЕ-RD) является в крайней степени роздолбайской, т.к. между ЦП и синхрогенератором нет никакой синхронизации. Единственное требование чтобы частота процессора не превышала частоту синхрогенератора.
25.17 мкс активная часть строки (640*480 при 60 Гц) если в строке 320 пикселей, то время вывода пикселя 76.7 нс, в одной ячейке у нас 2 пиксела, так что частота обращения к памяти =6.357 Мгц. Можно ставить проц до 6Мгц.
Нужно только розабраться с логикой, учесть все задержки.
А как расчитывается нагрузочная способность ТТЛ? Во всех datasheet-ах дается емкость, видимо все зависит именно от емкости и частоты.
Мне это важно, т.к. чем более нагружен выход тем дольше длятся переходы из одного состояния в другое.
P. S. Скажите, а в чем вы чертите схемы?
-
- Banned
- Posts: 2139
- Joined: 20 Mar 2005 13:41
- Location: От туда
По количеству входов, подключенных к нему. Если тебе надо подключить, например, 10 входов к одному и тому же сигналу, а выхзодов их 2, то распределяешь поровну, по 5 штук. А вообще, ТТЛ можно грузить обычно 4-5 входов, если частота не выше 4МГц. В справочниках пишут обычно.danchandoo wrote:А как расчитывается нагрузочная способность ТТЛ? Во всех datasheet-ах дается емкость, видимо все зависит именно от емкости и частоты.
Мне это важно, т.к. чем более нагружен выход тем дольше длятся переходы из одного состояния в другое.
Я в старом-добром PCAD4.5, ктото в PCAD2ххх, а наш админ предпочитает Eagle (ну и не только он собственно). Есть так же Proteus и Protel.danchandoo wrote:P. S. Скажите, а в чем вы чертите схемы?
-
- Fanat
- Posts: 63
- Joined: 24 Sep 2007 12:15
- Location: Украина
Что-то для меня синхрогенератор придумать не очень просто.
Сначала думал прицепить к одному еденственному счетчику большой разрядности ПЗУ, а выводы ПЗУ к шине адресса видеопамяти и к выходам синхросигналов.
Но в ближайшем интернет-магазине ПЗУ-хи только с длинной слова 8 байт, их надо несколько штук (а именно 3, при чем у последней из 8 выводов используется 2, а это верх нерациональности...) а стоят они прилично... Плюс нужен программатор, или нужно сделать самопрограмирующуюся систему...
Другой вариант куча счетчиков. Тут вот думаю какую взять опорную частоту.
Есть варианты:
- исходные 25 Мгц (вообще нужно 25.175 но такого кварца нет)
- частота вывода пикселей на экран (320*240) 12.5 Мгц
- частота обращений к памяти 6.125 Мгц ИМХО упрощает генерацию адресса ячейки видеопамяти.
Проблема в том, что чем меньше частота, тем большие отклонения от таймингов VGA. Чем это может быть чревато?
Сначала думал прицепить к одному еденственному счетчику большой разрядности ПЗУ, а выводы ПЗУ к шине адресса видеопамяти и к выходам синхросигналов.
Но в ближайшем интернет-магазине ПЗУ-хи только с длинной слова 8 байт, их надо несколько штук (а именно 3, при чем у последней из 8 выводов используется 2, а это верх нерациональности...) а стоят они прилично... Плюс нужен программатор, или нужно сделать самопрограмирующуюся систему...
Другой вариант куча счетчиков. Тут вот думаю какую взять опорную частоту.
Есть варианты:
- исходные 25 Мгц (вообще нужно 25.175 но такого кварца нет)
- частота вывода пикселей на экран (320*240) 12.5 Мгц
- частота обращений к памяти 6.125 Мгц ИМХО упрощает генерацию адресса ячейки видеопамяти.
Проблема в том, что чем меньше частота, тем большие отклонения от таймингов VGA. Чем это может быть чревато?
-
- Doomed
- Posts: 487
- Joined: 05 Nov 2007 05:08
- Location: Украина
-
- Fanat
- Posts: 63
- Joined: 24 Sep 2007 12:15
- Location: Украина
Придумал схему:
- ПЗУ, работает как ПЛМ, к адрессной шине подключен 20-битный счетчик.
- счетчик реального адресса ячейки видеопамяти (16-бит).
- 3 D-триггера, используются чтобы меньше программировать ПЗУ:
изначально в ПЗУ после стирания одни "1". Вместо того чтобы прошивать "0" в бит соответствующий выводу V_synch, скажем во все ячейки когда должен появляться этот сигнал, мы шьем его в ячейку соответствующую моменту времени за такт до начала сигнала, и за такт до конца, а вывод подключаем не сразу к V_synch, а к счетчику на D-триггере, а уже вывод триггера к выводу синхронизации.
Однако я забыл продублировать строки, так что схема еще утяжелится, как доделаю выложу.

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

-
- Doomed
- Posts: 487
- Joined: 05 Nov 2007 05:08
- Location: Украина
-
- Fanat
- Posts: 64
- Joined: 11 Mar 2007 03:57
- Location: 217.9.147.66