nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 16 Apr 2024 11:12



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

Joined: 24 Sep 2007 12:15
Posts: 63
Location: Украина
Reply with quote
Post 
Устройство уже НЕ на Z80, так что можно сохранить за топиком текущий ареал.
Почему так? Просто убрал из схемы вообще контроллер, теперь это просто 32 кб памяти и 2 порта вывода. Сделал это для повышения производительности. Раньше была концепция: "передача команд контроллеру через порты" + буфер общей памяти для ускорения передачи спрайтов. Но она не оправдана, если ведется как раз передача битовых изображений через тот самый буфер. Происходит двойное копирование: система - буфер, буфер -(контроллер)-видеопамять.
Вместо этого теперь будет прямая запись в видеопамять. Потеря интелектуальности устройства опрадана из-за новой сферы его применения.
Я задумал Crazy Z80 4x4 Project. 4 процессора на 4 МГц.
Процессоры подключены к общей памяти через шину. Частоту шины в 16 МГц врядли удастся обеспечить, но т.к. Z80 не имеют конвеера, то к памяти они обращаются не чаще чем раз в 4 такта. Так что буду буферизировать запросы доступа, и выполнять их по одному за такт, и хватит 4 МГц шины.
Соответственно конечную схему видеокарты (а ее в принципе-то и не было в завершенном виде) прийдется переделать с учетом использования ее как части банка памяти работающего с такой шиной.
На данный момент собрана часть видеокарты ответственная за синхронизацию, но никак не найду вдохновение испытать ее на реальном мониторе (в статике работает). Есть ее схема на бумаге, будет время -- сделаю в электронке и выложу.


19 Sep 2009 02:54
Profile
Fanat
User avatar

Joined: 24 Sep 2007 12:15
Posts: 63
Location: Украина
Reply with quote
Синхрогенератор в работе: красный экран 640x480 60Hz (извините за качество фото)
Image
Image
Image
Схема:
Image

После замены "тумблерного" программатора его аналогом, работающим через LPT с компом, появилась возможность запрограммировать синхрогенератор видеокарты, что я и сделал :)

Подробнее далее.


01 Mar 2010 13:12
Profile
Fanat
User avatar

Joined: 24 Sep 2007 12:15
Posts: 63
Location: Украина
Reply with quote
Post 
Псевдо код программирования синхрогенератора:
Code:
; инициализация: блокировка основного синхросигнала, сброс и т.д.
out (1), 00000100
out (0), 00100001
out (1), 00000000
out (1), 00000100
out (0), 00000000
out (1), 00000000
; программирование синхросигналов строки, для каждого пикселя
for i = 1 to <total piexel in line> do
{
  out (0), <состояние сигналов для i-го пикселя>
  out (1), 00000100 ; сохранение данных, инкремент счетчика пикселей
  out (1), 00000001
}
; программирование синхросигналов кадровой развертки, для каждой строки кадра
for i = 1 to <total lines in frame> do
{
  out (0), <состояние сигналов для i-й строки>
  out (1), 00001000 ; сохранение данных, инкремент счетчика строк
  out (1), 00000001
}

; запуск синхрогенератора
out (1), 00001111


01 Mar 2010 13:26
Profile
Fanat
User avatar

Joined: 24 Sep 2007 12:15
Posts: 63
Location: Украина
Reply with quote
Post 
И еще интересная особенность монитора. Сначала я подал на вход R монитора постоянное напряжение питания через резистор 620 Ом, но вместо красного экрана получил красную узкую полоску справа. Решил, что проблема в том, что сигнал подается постоянно, в т.ч. и во время обратного хода луча, и монитор, как-то специфично на это реагирует.
У синхрогенератора есть выходы предназначенные для принудительной установки сигналов цветовой составляющей в 0 для создания рамки, соедененные по схеме ИЛИ, ИЛИ-результат я проинвертировал (теперь сигнал подается только в активной области изображения) и подал через резистор на все тот же вход R монитора. Ура. Заработало.


01 Mar 2010 13:37
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22519
Location: Silicon Valley
Reply with quote
Post 
а когда видеопамять заработает? ;)

_________________
:dj: https://mastodon.social/@Shaos


01 Mar 2010 21:17
Profile WWW
Fanat
User avatar

Joined: 24 Sep 2007 12:15
Posts: 63
Location: Украина
Reply with quote
Post 
Shaos wrote:
а когда видеопамять заработает? ;)


Тема начата 11 Jan 2009 20:27...
Прошел год :-?
Ну если быть оптимистом, то к лету.

Сейчас возник ряд концептуальных проблемм.
Есть старые наброски схемы для работы в режиме 320 x 240 (дублирование строк и частота / 2), но мне кажется это мало. Лучше уж 640 * 480, хоть текст читать можно будет. Правда нужно больше памяти -- 153600 байт.

Ну и более глобально: внешняя шина 8 или 16 разрядов, для какой системы я вообще разрабатываю эту видеокарту?
Если для N16 CPU, то нужна шина 16 бит. Пока я не знаю нужен ли сам N16, может сделать что-то действительно полезное вместо процессора :D


02 Mar 2010 10:58
Profile
Fanat
User avatar

Joined: 24 Sep 2007 12:15
Posts: 63
Location: Украина
Reply with quote
Post 
Шина данных в 16 бит отвергается -- неоправданно много корпусов.
Частота обмена данными с видеокартой при 640 пикселях в строке -- 12.5 МГц, при ширине шины в 8 бит это 12 Мб/с чего более чем достаточно.

Комфортным видеорежимом я бы назвал 640 x 400 x 70 Гц. Но в слчае 16-ти цветов на пиксель это 128Кб видеопамяти. Как ее адресовать?
У большинства простых процессоров адресуемое пространство -- 64Кб. Розбивать видеопамять на 2 страницы неудобно, потребуется постоянно отслеживать не выходит ли отрисовываемое изображение за границы текущей страницы и производить переключение на другую страницу если это случится.
При таком подходе снижается производительность.

Возможные решения:
- обращение к видеопамяти через три 16 бит порта (или шесть 8 бит), в первый записывается номер строки во второй, номер пикселя в строке в третий -- данные.
По скорости наверно хуже чем постоянная проверка выхода за границу страницы.

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

Какие могут еще быть варианты?


05 Mar 2010 02:22
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22519
Location: Silicon Valley
Reply with quote
Post 
danchandoo wrote:
Шина данных в 16 бит отвергается -- неоправданно много корпусов.


А я уж было хотел рассмотреть вариант прикручивания к 16-битному пикспьютеру...

_________________
:dj: https://mastodon.social/@Shaos


06 Mar 2010 05:13
Profile WWW
Fanat
User avatar

Joined: 24 Sep 2007 12:15
Posts: 63
Location: Украина
Reply with quote
Post 
Shaos wrote:
А я уж было хотел рассмотреть вариант прикручивания к 16-битному пикспьютеру...


PIC вроде 8-битный (я не вникал в устройство PIXPUTERa...).
На мой взгляз 8-битные устройства без проблем стыкуются с 16-битной шиной, принося в жертву старшие разряды.

Я задумывался о создании 4 процессорного компа на Z80, может быть и видеокарту под него делать.

С другой стороны мне нужно выкапываться из каменно-электронного века, переставая применять разработанный 36 лет назад процессор. Нужно освоить что-то новое. А AVR может работать как микропроцессор, или же нужно зашивать в него транслятор кода хранимого в памяти данных?


06 Mar 2010 09:28
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22519
Location: Silicon Valley
Reply with quote
Post 
danchandoo wrote:
Shaos wrote:
А я уж было хотел рассмотреть вариант прикручивания к 16-битному пикспьютеру...


PIC вроде 8-битный (я не вникал в устройство PIXPUTERa...).
На мой взгляз 8-битные устройства без проблем стыкуются с 16-битной шиной, принося в жертву старшие разряды.


PIC17 имеет внешнюю 16-битную шину для доступа к внешнему коду (с мультиплексированием данных и адреса) - стыковаться то оно стыкуется, однако теряем 8 бит и скорость в 2 раза ниже...

danchandoo wrote:
Я задумывался о создании 4 процессорного компа на Z80, может быть и видеокарту под него делать.

С другой стороны мне нужно выкапываться из каменно-электронного века, переставая применять разработанный 36 лет назад процессор. Нужно освоить что-то новое. А AVR может работать как микропроцессор, или же нужно зашивать в него транслятор кода хранимого в памяти данных?


память данных у некоторых моделей расширяется (не кода) - т.е. видимо нужен интерпретатор байткода (у меня есть RW0 : )

_________________
:dj: https://mastodon.social/@Shaos


06 Mar 2010 10:30
Profile WWW
God

Joined: 02 Jan 2006 02:28
Posts: 1390
Location: Abakan
Reply with quote
Post 
Не только память данных расширяется. Просто надо подыскать проц, у которого можно и память программ внешнюю применять. Точно можно на MCS51, про AVR не знаю, но с учетом того, что у многих младших моделей, типа mega16, не очень большая флешка, то очень даже может быть, что и в них предусмотрено подключение внешней памяти программ. Ну, либо интерпретация байт-кода, ежели совсем никак.


09 Mar 2010 00:00
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22519
Location: Silicon Valley
Reply with quote
Post 
jdigreze wrote:
Не только память данных расширяется. Просто надо подыскать проц, у которого можно и память программ внешнюю применять. Точно можно на MCS51, про AVR не знаю, но с учетом того, что у многих младших моделей, типа mega16, не очень большая флешка, то очень даже может быть, что и в них предусмотрено подключение внешней памяти программ. Ну, либо интерпретация байт-кода, ежели совсем никак.


насколько я помню у авра - только память данных

_________________
:dj: https://mastodon.social/@Shaos


09 Mar 2010 05:31
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 57 posts ]  Go to page Previous  1, 2, 3, 4

Who is online

Users browsing this forum: No registered users and 8 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:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.