Вход

Просмотр полной версии : Видеоконтроллер из пяти микросхем



zx-kit
31.03.2011, 10:35
Здравствуйте.

Можно ли на базе платы VGA&PAL сделать видеоконтроллер, который заменит кучу счетчиков, мультиплексоров, регистров и других элементов на плате Спектрума ? Я считаю - можно !

Как вы знаете, видеоконвертер VGA&PAL позволяет выводить информацию на VGA монитор и телевизор через PAL-кодер. При этом на вход платы подаются цифровые сигналы цвета (R, G, B , I), строчные и кадровые синхроимпульсы (KSI, SSI) и тактовые импульсы (F14MHz).

Однако ПЛИС, которая используется в видеоконвертере, достаточно мощная и позволяет создать на ней схему управления для целого компьютера типа Speccy2007 128К (http://zx.pk.ru/showthread.php?t=11890). Также на плате VGA&PAL имеется статическое ОЗУ со скоростью 10 нс и емкостью 256 Кслов по 16 бит.

Из этого можно сделать вывод, что видеоконвертер можно использовать для формирования изображения на мониторе и телевизоре путем перехвата данных, которые записываются в ОЗУ экрана Спектрума.

Только у платы мало входных-выходных сигналов. Давайте их посчитаем. На входном разъеме - 7 шт. На штырях для установки перемычек можно использовать еще 7 шт. Еще 5 сигналов выведены на монтажные отверстия возле ПЛИС. Итого: 7+7+5=19 сигналов. Маловато для подключения шин адреса, данных и управления.

Чтобы решить эту проблему предлагаю применить 4 микросхемы К555КП11. Это позволит через 8 линий передавать 32 сигнала со Спектрума:
16 сигналов адреса Z80 - A15...A0.
8 сигналов данных Z80 - D7...D0.
7 сигналов старших адресов ОЗУ. Этого достаточно для адресации 128 страниц по 16 Кб при общем объеме ОЗУ 128*16 Кб=2 Мб).
1 сигнал - номер включенного экрана Спектрума.

То есть у нас еще остается свободными 19-8=11 сигналов.
Один сигнал используем как выход для формирования INT.
Остальные - входы:
F14MHz, CLK, MREQ, IORQ, WR.
Для обеспечения помехоустойчивости подадим их на плату VGA&PAL через инверторы. Для этого и нужна пятая микросхема К555ЛН1.

При использовании внешнего видеоконтроллера вместо внутреннего схема Спектрума упрощается. В качестве основной памяти Спектрума можно будет использовать одну-две микросхемы статического ОЗУ c простейшей схемой управления.

Alex_NEMO
31.03.2011, 10:57
Чтобы решить эту проблему предлагаю применить 4 микросхемы К555КП11. Это позволит через 8 линий передавать 32 сигнала со Спектрума:
16 сигналов адреса Z80 - A15...A0.
8 сигналов данных Z80 - D7...D0.
Вадим, я конечно далеко не спец в вопросах схемотехники, но ШД двухсторонняя шина, и память, вроде, используется как на чтение, так и на запись... Т.е. по любому надо обеспечить "двухстороннесть ШД" и мультиплексорами это не решить.
Или я не прав?

zx-kit
31.03.2011, 11:11
Вадим, я конечно далеко не спец в вопросах схемотехники, но ШД двухсторонняя шина, и память, вроде, используется как на чтение, так и на запись... Т.е. по любому надо обеспечить "двухстороннесть ШД" и мультиплексорами это не решить.
Или я не прав?

Видеоконтроллер должен отлавливать только данные, которые записываются в адреса экрана. Для этого он должен считать адрес ячейки вместе с номером страницы и данные с шины данных, которые Z80 хочет записать в ОЗУ экрана. Если адрес соответствует одному из двух экранов, то данные нужно будет записать в свое ОЗУ.

Эти же данные записываются в основное ОЗУ Спектрума и читаются только оттуда. Из видеоконтроллера данные считывать поэтому не надо. Значит, достаточно мультиплексоров для передачи данных в одну сторону - со Спектрума на видеоконтроллер.

ZEK
31.03.2011, 11:12
Скажем скальпелю нет :)

Black_Cat
31.03.2011, 12:01
Значит, достаточно мультиплексоров для передачи данных в одну сторону - со Спектрума на видеоконтроллер.Ну это будет то же что и Mick делал, а хотелось бы всёж полную видеокарту, из которой можно читать. Но на халяву - можно и такую урезанную :)

---------- Post added at 11:52 ---------- Previous post was at 11:46 ----------


При использовании внешнего видеоконтроллера вместо внутреннего схема Спектрума упрощается. В качестве основной памяти Спектрума можно будет использовать одну-две микросхемы статического ОЗУ c простейшей схемой управления.Как правило видеокарта нужна для старых компов, и в основном именно для реализации расширенных видеорежимов. Поэтому тебе придётся засунуть внутрь ещё менеджер памяти и управление видеорежимами.

---------- Post added at 11:57 ---------- Previous post was at 11:52 ----------


7 сигналов старших адресов ОЗУ. Этого достаточно для адресации 128 страниц по 16 Кб при общем объеме ОЗУ 128*16 Кб=2 Мб).
1 сигнал - номер включенного экрана Спектрума.ничего этого не надо, это есть в менеджере памяти

---------- Post added at 12:01 ---------- Previous post was at 11:57 ----------

Про мультиплицированную шину - в ZXMC например примерно такая, и ничего, работает, так что вполне наверно можно сделать :) . Делаешь платку с системным разъёмом с мамами на нём, в которые втыкаются игольчатые разъёмы VGA карты :) .

zx-kit
31.03.2011, 12:13
Ну это будет то же что и Mick делал, а хотелось бы всёж полную видеокарту, из которой можно читать. Но на халяву - можно и такую урезанную
Я предлагаю реализовать стандартный экран Спектрума. Но если появится один из вариантов стандартного видеоконтроллера - это будет первый шаг к стандартизации клоностроения. Микросхемы для формирования RGB на материнской плате теперь будут не нужны. А дальше - пожалуйста - можно делать более навороченные видеоконтроллеры.


Как правило видеокарта нужна для старых компов, и в основном именно для реализации расширенных видеорежимов.



Тут вопрос спорный. Большинству людей хватает возможностей Спектрума 48К c магнитофоном. Про расширенные режимы они и не слышали и они им не нужны. Вот если появится стройная концепция с алгоритмом реализации ускорителя графики, например, быстрое копирование спрайтов с 256 кодов цвета на точку - тогда они нужны. А текстовой режим или медленный режим 16 цветов на точку - многим не нужны. Для текста можно использовать PC. А много цветов на точку тоже нужны только с ускорением и чтобы не занимали основную память Спектрума.


Поэтому тебе придётся засунуть внутрь ещё менеджер памяти и управление видеорежимами.ничего этого не надо, это есть в менеджере памяти
А зачем ? У многих клонов страницы памяти разбросаны по разным адресам/регистрам. Подать готовые сигналы и все. Хоть Ленинград, хоть KAY или будущие клоны. Если ограничиться только 128К, тогда еще можно, но зачем - если сигналы уже есть готовые.

Можно эти пять микросхем распаять на макетном поле Ленинграда/КАЯ или на макетке ZX-BUS. Остальные сигралы шлейфами.

Если выбрать в качестве стандарта адресацию страниц, тогда можно это разместить в ПЛИС, но может и не влезть.



Про мультиплицированную шину - в ZXMC например примерно такая, и ничего, работает, так что вполне наверно можно сделать . Делаешь платку с системным разъёмом с мамами на нём, в которые втыкаются игольчатые разъёмы VGA карты .

По моим рассчетам плату VGA&PAL можно разместить в удобном месте корпуса и соединить двумя шлейфами или проводами с макеткой ZX-BUS или на плате компьютера, где припаять пять указанных микросхем.
...
Остается дождаться энтузиаста, кто спаяет их и перепрограммирует ПЛИС...

Black_Cat
31.03.2011, 12:43
А зачем ? У многих клонов страницы памяти разбросаны по разным адресам/регистрам. чтоб не лезть с паяльником в плату, МГТФ людей напрягает больше, чем экономия места в ПЛИС. Но для Ленинграда, конечно остаётся токо МГТФ :)


Если выбрать в качестве стандарта адресацию страницв твоём случае она будет везде одинакова, т.к. ограничена стандартом ZX128


плату VGA&PAL можно разместить в удобном месте корпуса и соединить двумя шлейфами или проводами с макеткой ZX-BUSШлейфы - это плохое решение, идеальное решение я дал выше. Втыкаться будет либо в слот, либо - дочкой на дублирующий игольчатый разъём шины.

---------- Post added at 12:43 ---------- Previous post was at 12:34 ----------


Я предлагаю реализовать стандартный экран Спектрума.А расширенный, что не влезет? Сколько у тебя доступно места под экранное ОЗУ?

zx-kit
31.03.2011, 12:44
чтоб не лезть с паяльником в плату, МГТФ людей напрягает больше, чем экономия места в ПЛИС. Но для Ленинграда, конечно остаётся токо МГТФ :)

У Ленинграда еще проще - там нет страниц ОЗУ. Экран жестко размещен по адресу A15=0, A14=1.



в твоём случае она будет везде одинакова, т.к. ограничена стандартом ZX128

Например у KAY-1024 номер страницы состоит из 6 бит, у Пентагона-128 из трех. Видеоконтроллер по этим битам должен определить - в этой странице есть экран или нет.


Шлейфы - это плохое решение, идеальное решение я дал выше. Втыкаться будет либо в слот, либо - дочкой на дублирующий игольчатый разъём шины.
Это если слоты в клоне и клон в корпусе размещены так, что разъемы вылезут точно наружу. А если удобно прикрутить на стенку корпуса, то лучше шлейфы. Тем более сигналы на VGA&PAL будут после мультиплексоров и инверторов и длина шлейфа не будет влиять на работу остальной части схемы компьютера.

Даже были раньше такие встроенные видеокарты на PC, где сигналы VGA и S-VIDEO подавались на планку c разъемами через шлейф.

Black_Cat
31.03.2011, 12:59
Например у KAY-1024 номер страницы состоит из 6 бит, у Пентагона-128 из трех. Видеоконтроллер по этим битам должен определить - в этой странице есть экран или нет.Засунешь внутрь менеджер и все проблемы сразу исчезнут.


Даже были раньше такие встроенные видеокарты на PC, где сигналы VGA и S-VIDEO подавались на планку c разъемами через шлейф.Небыло таких видеокарт, там на планку подавались выходные видеосигналы, а у тебя системная шина будет - очень плохое решение!

---------- Post added at 12:59 ---------- Previous post was at 12:53 ----------

Вот на шлейф луцче выкинешь VGA разъём - вот это правильное решение

zx-kit
31.03.2011, 12:59
Засунешь внутрь менеджер и все проблемы сразу исчезнут.

Как же они исчезнут. Менеджер просто подключает нужную страницу к Z80, но экран там или нет он не знает.


Небыло таких видеокарт, там на планку подавались выходные видеосигналы, а у тебя системная шина будет - очень плохое решение!
Да шлейфами видеосигналы подавались. Я предлагаю соединять шлейфами номер страницы и сигналы после мультиплексоров и инверторов c дополнительных пяти микросхем. Эти сигналы с системной шиной не соединены. А если некоторые биты номера страницы есть, то их и подать с шины.


Вот на шлейф луцче выкинешь VGA разъём - вот это правильное решение

Согласен, что так лучше. Но обычно разъемы уже припаяны. На новых контроллерах с ZX-BUS я бы так и делал через выкидыши.

Black_Cat
31.03.2011, 13:04
ты не ответил про доступную память

zx-kit
31.03.2011, 13:07
ты не ответил про доступную память
Особо не считал.
8+8 Кб на два экрана Спектрума 128к.
Еще нужен буфер на весь экран по 4 бита на точку для режима 60 Гц. И конечно память для Z80 не доступна, так как у него своя на материнской плате стоит.

Black_Cat
31.03.2011, 13:13
Менеджер просто подключает нужную страницу к Z80, но экран там или нет он не знает:) Ну ты то знаешь какие страницы относятся к видеопамяти :) Определяется элементарно - по A16'=1 - это глобально, а если память не бесконечна, то ещё все старшие адреса менеджера должны быть в нуле. Всё! ..почти всё :)

---------- Post added at 13:13 ---------- Previous post was at 13:10 ----------


8+8 Кб на два экрана Спектрума 128к.А что, в аж 512kb ОЗУ даже 64kb под экранное ОЗУ не найдётся?

zx-kit
31.03.2011, 13:17
:) Ну ты то знаешь какие страницы относятся к видеопамяти :) Определяется элементарно - по A16'=1 - это глобально, а если память не бесконечна, то ещё все старшие адреса менеджера должны быть в нуле. Всё!

Вот как раз эту работу и должен делать видеоконтроллер.


А что, в аж 512kb ОЗУ даже 64kb под экранное ОЗУ не найдётся?
В большинстве игр используется только два экрана по 7 Кб.
В новых видеокартах новые режимы будут.

Black_Cat
31.03.2011, 13:36
Вот как раз эту работу и должен делать видеоконтроллер.
Вот он и должен контролировать продублированные в ПЛИС порты менеджера памяти :) ..а так же видеорежимов :)

В большинстве игр используется только два экрана по 7 Кб.
:) если так рассуждать, то в большинстве игр вообще используется один экран :)
Новая железка, добавляемая в комп должна привносить новый функционал. И лучше всегда будет та железка, которая заменяет сразу много других, экономя место и ресурсы. Так что, если памяти хватает, то лучше сразу реализовать всё, что влезет в ПЛИС. Вот сколько влезет - столько и будет :)

zx-kit
31.03.2011, 13:42
Вот он и должен контролировать продублированные в ПЛИС порты менеджера памяти :) ..а так же видеорежимов :)

:) если так рассуждать, то в большинстве игр вообще используется один экран :)
Новая железка, добавляемая в комп должна привносить новый функционал. И лучше всегда будет та железка, которая заменяет сразу много других, экономя место и ресурсы. Так что, если памяти хватает, то лучше сразу реализовать всё, что влезет в ПЛИС.
Я предлагаю сделать только один шаг в сторону стандарта - модульного компьютера. Избавиться от груза формирователя RGB и динамической памяти на материнской плате. А уже вместо стандартного контроллера можно потом добавлять навороченные.

---------- Post added at 14:42 ---------- Previous post was at 14:40 ----------

Не всегда лучше объединять функции нескольких устройств в одном.

Black_Cat
31.03.2011, 13:45
Я предлагаю сделать только один шаг в сторону стандарта
..а я думал, что ты хочешь расширить сферу использования VGA конвертера, чтоб осчастливить владельцев старых компов.. ..особенно тех, у которых он уже есть..

zx-kit
31.03.2011, 14:18
..а я думал, что ты хочешь расширить сферу использования VGA конвертера, чтоб осчастливить владельцев старых компов.. ..особенно тех, у которых он уже есть..
VGA конвертер использовать в качестве макетирования, так как большинство железа там уже реализовано. А пять микросхем стоят рублей 50 и у многих уже есть. Спаять тоже не сложно.

Еще, например, захотел человек собрать компьютер своими руками из подручных микросхем. Например, я предлагал такую простую конфигурацию - http://zx.pk.ru/showpost.php?p=368003&postcount=12. Все бы хорошо, но если нужен вывод на экран, то здесь уже человек наткнется на очень сложную задачу. Схема вывода на экран занимает большую часть схемы Ленинграда. Почти это же говорил и Nemo.
Мы, конечно, многие его заповеди уже нарушили...

Но это требует время. Например КР565РУ5 не во всех магазинах найдешь. Симы скоро тоже кончатся. А зачем нам эта динамическая память, если, например, в Speccy2007 128К прекрасно работает статика, которую можно купить в большинстве магазинов.

Стандартный видеоконтроллер выполняет простую работу - отображает данные в ОЗУ на экране и добавляет еще BORDER. Но это занимает половину или больше схемы компьютера. Зачем она там ? Проессорную систему можно сделать из процессора, ОЗУ, ПЗУ/FLASH.

Я не говорю сейчас о клонах на FPGA и ПЛИС, в которых нет (кроме ZX-Evolution) шины ZX-BUS. У них свое назначение и в основном там игровые функции без возможности расширения. Я за шинную конструктцию.

---------- Post added at 15:18 ---------- Previous post was at 15:02 ----------

Если менять что-то в видеоконтроллере, то, на мой взляд, добавить палитру ULAplus (http://sites.google.com/site/ulaplus/).

Чтобы перекрасить игру требуется только добавить один файл с палитрой при загрузке игры. Много игр уже перекрасили.
Там программное обеспечение уже есть. И автор также делает свой Бейсик с поддержкой возможностей ULAplus...

Black_Cat
31.03.2011, 14:32
короче, видеорежимы ты делать по каким-то неведомым причинам не хочешь.. тоды непонятно зачем этот геморрой с кучей МГТФа вообще нужен юзеру, если у него просто конвертер уже и так есть..

zx-kit
31.03.2011, 14:43
короче, видеорежимы ты делать по каким-то неведомым причинам не хочешь.. тоды непонятно зачем этот геморрой с кучей МГТФа вообще нужен юзеру, если у него просто конвертер уже и так есть..
Для экспериментов. Модульный компьютер нельзя сделать, поке не будет видеоконтроллера.

Потом, если хочет человек слушать на Спеке MP3 - ставить NeoGS или другую продвинутую карту. Если ему достаточно бипера - ничего не ставит, даже AY/YM.
Достаточно магнитофона - ставит/паяет схему чтения с магнитофона. Надо диски - NEMO_FDC. Надо жесткие диски и CD-ROM - ставит NEMO_IDE.

Достаточно стандартного экрана - ставит стандартный контроллер. Надо смотреть демы от Пентагона - ставит видеоконтроллер с частотой кадров 48 Гц и "правильным" INT. Надо ускоритель графики или расширенные режими - ставит навороченный контроллер...

Black_Cat
31.03.2011, 14:48
:) zst, если хочешь порадовать владельцев конвертора, то просто приделай ему видеорежимы :) Всё! Больше ничего не надо! И тебе просто сажут спасибо :) Всё просто!