Программно-аппаратное формирование видеосигнала

Печатные платы, программируемая логика, разработка и изготовление аппаратуры

Moderator: Shaos

User avatar
Shaos
Admin
Posts: 24008
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Galaksija

Post by Shaos »

Lavr wrote:Глядя на свои расчеты и на план видео-ОЗУ, я пока сомневаюсь в подобной резвости К580ВМ80А на выбранной частоте.
Вообще я все эти размышления уже размышлял в теме про nedoPC-280 (2012) :roll:
Правда до VGA я тогда не добрался - остановился на NTSC
И кстати b2m тоже предложил там ВИ53 использовать для генерации синхроимпульсов ;)
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Galaksija

Post by Lavr »

Shaos wrote:
Lavr wrote:Глядя на свои расчеты и на план видео-ОЗУ, я пока сомневаюсь в подобной резвости К580ВМ80А на выбранной частоте.
Вообще я все эти размышления уже размышлял в теме про nedoPC-280 (2012) :roll:
Ну а если размышлял, то не заметил, что К580ВМ80А не слишком шустр на 2.5 МГц ?
Shaos wrote:... ВИ53 использовать для генерации синхроимпульсов ;)
Да я вот как раз не жажду 8253 использовать, но опасаюсь, что одновибраторы не дадут нужной
точности деления частоты.


P.S. Вот древние греки с римлянами поразмышляли и оставили после себя кучу пословиц,
поговорок, крылатых фраз и названий всему сущему...
А Shaos поразмышлял свою "размышлю" аж на 2 процессора - и нихрена полезного не осталось...
:wink:
iLavr
User avatar
Shaos
Admin
Posts: 24008
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Galaksija

Post by Shaos »

Lavr wrote:
Shaos wrote:
Lavr wrote:Глядя на свои расчеты и на план видео-ОЗУ, я пока сомневаюсь в подобной резвости К580ВМ80А на выбранной частоте.
Вообще я все эти размышления уже размышлял в теме про nedoPC-280 (2012) :roll:
Ну а если размышлял, то не заметил, что К580ВМ80А не слишком шустр на 2.5 МГц ?
вот поэтому их у меня там два :roll:
и 3.125 МГц :)
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Galaksija

Post by Lavr »

Shaos wrote:
Lavr wrote:Ну а если размышлял, то не заметил, что К580ВМ80А не слишком шустр на 2.5 МГц ?
вот поэтому их у меня там два :roll:
А полезного с них все-равно нихрена... я полистал, хотя и помню примерно... :lol:
iLavr
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Galaksija

Post by Lavr »

Еще вот одну шальную мысль обдумываю...

Я всё же хочу, чтобы ССИ и КСИ формировались аппаратно, чтобы дисплей не терял синхронизацию
даже когда процессору сказано заглушить прерывания и не обслуживать дисплей.
По моему опыту работы с "Микрошей" это весьма неприятно выглядит: потеря синхронизации
при загрузке или выводе на ленту и её восстановление.

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

Это, как мне кажется, более интересно, нежели вид "черного квадрата Малевича"... :ewink:
iLavr
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Galaksija на К580ВМ80А

Post by Lavr »

В общем, абстрактная идея постепенно обрастает "мясом"... :ewink:

Растр по строкам микропроцессор К580ВМ80А, согласно задумке, формирует вполне успешно:

 Осциллограмма формирования растра по строкам
Rastr1.gif

На осциллограммах из видео-ОЗУ для удобства наблюдения сдвигается сигнатура 55Н,
(светлые полосы толщиной в 1 пиксель, чередующиеся с темными).
Видно, что видео-сигнал чуть наезжает на строчный гасящий, т.к. процессор
читает ОЗУ чуть позже смены адресов - но идея работоспособна!
Выбрасываются на сдвиг 32 видимых байта в строке.
А процессор занят сейчас тем, что непрерывно формирует строчный растр по кругу.

Теперь надо добавить прерывание по кадру, которое через RST7 будет заставлять
процессор формировать растр 50 раз в секунду.

Эта часть отдельно у меня тоже работоспособна - осталось только эти 2 схемы удачно "сшить".

Из непредвиденных трудностей возникло то, что процессоры в эмуляторах (а я пробовал
разные, в том числе и с Z80) "не понимают" этого трюка с резисторами к +5В и к .
Либо у меня это как-то неудачно в симуляции получилось... :-?

Так что вместо резисторов пришлось подавать отдельно лог. "1" и "0" через тристабильные
буферы и коммутировать это на шину в соответствии с логикой работы. 8)
Так что даже когда в теории всё заработает, придется на практике "шаманить" на макетке
простой вариант с резисторами на шине данных... :wink:
You do not have the required permissions to view the files attached to this post.
iLavr
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Galaksija на К580ВМ80А

Post by Lavr »

Что-то с форматированием не то... :-?
iLavr
User avatar
Shaos
Admin
Posts: 24008
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Galaksija на К580ВМ80А

Post by Shaos »

Lavr wrote:Что-то с форматированием не то... :-?
Я заметил - слишком много накрутил BB-тегов?...
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Galaksija

Post by Lavr »

Lavr wrote:Видно, что видео-сигнал чуть наезжает на строчный гасящий, т.к. процессор
читает ОЗУ чуть позже смены адресов...
Поправил интервал гашения:

 Осциллограмма формирования растра
cnt8Rastr2.gif

Решил посмотреть, что же получается в совокупности, для этого добавил инверсию каждой
второй строки, чтобы получилось точечное шахматное поле - оно и получилось! 8)
cnt9Rastr3.gif
Сейчас продумываю как процессору точно входить в первую строку по прерыванию - решение
использую как в Галаксии: процессор по прерыванию переходит на адрес начала первой строки -
0С000Н, и этим вызывает сброс READY и притормаживает, чтобы выбрать разницу тактов команды,
из которой он вышел в прерывание.
А вот после этого какой-то сигнал должен процессор "отпустить" из состояния WAIT синхронно
в формирование растра.
Весь анекдот ситуации, что в нищебродской конструкции не так-то много сигналов, которые можно
использовать для этого... :lol:

И вот еще думаю - не укоротить ли растр по вертикали?
Из 312 возможных используются 256 строк, значит только 56 строк процессор будет заниматься
полезной программой.
У Галаксии - 208 строк, может обрезать растр до формата Спектрума - 256х192 ?
You do not have the required permissions to view the files attached to this post.
iLavr
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Galaksija на К580ВМ80А

Post by Lavr »

Shaos wrote:
Lavr wrote:Что-то с форматированием не то... :-?
Я заметил - слишком много накрутил BB-тегов?...
Заколдованное место! :o Выше - полная копия того что было написано там где был сбой формата! :o
Но на том месте ничего исправить было практически невозможно! :o
iLavr
User avatar
Shaos
Admin
Posts: 24008
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Galaksija

Post by Shaos »

Автоцензор чего-то "распознал" в кодовом идентификаторе BB-тегов (идентификатор разный у разных сообщений, но одинаковый в пределах одного и того же сообщения)
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Galaksija

Post by Lavr »

Lavr wrote:...может обрезать растр до формата Спектрума - 256х192 ?
В этом случае изображение будет выглядеть вот так:
SpecDumpFF.gif
You do not have the required permissions to view the files attached to this post.
iLavr
DimkaM
Maniac
Posts: 261
Joined: 22 Jun 2005 04:35
Location: МО Россия

Re: Galaksija

Post by DimkaM »

теоретически можно настраиваемый размер по вертикали.
если входить в прерывание, допустим, не с 0хс000, а с 0хс020, то будет на одну строку меньше
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Galaksija

Post by Lavr »

DimkaM wrote:теоретически можно настраиваемый размер по вертикали.
если входить в прерывание, допустим, не с 0хс000, а с 0хс020, то будет на одну строку меньше
Теоретически тут получается всё довольно настриваемо...
И если взять z80 на частоте 5 МГц, то этот же растр может получиться и на VGA-развертке.
Другое дело, что у z80 нет сигнала INTE - а он используется в схеме чтобы различать:
процессор формирует растр или процессор "рисует" в области видео-ОЗУ...

Ну и с диапазоном видео-ОЗУ немного жестко аппаратно всё отслеживается, но будем посмотреть! :wink:
Вечно работа мешает по-быстрому доделать хороший проект... :mrgreen:


P.S. Но в общем-то я ставил себе задачу сделать графический растр именно на К580ВМ80А,
так что это я сделаю, а по поводу z80 расстраиваться даже не буду, просто была ленивая
мысль воплотить всё это в железо на своем уже готовом проекте...
:wink:
Last edited by Lavr on 20 Jun 2016 03:04, edited 1 time in total.
iLavr
DimkaM
Maniac
Posts: 261
Joined: 22 Jun 2005 04:35
Location: МО Россия

Re: Galaksija

Post by DimkaM »

Lavr wrote:Другое дело, что у z80 нет сигнала INTE - а он используется в схеме чтобы различать:
процессор формирует растр или процессор "рисует" в области видео-ОЗУ...
ну если пожертвовать 8к адресного пространства z80, то:
подцепить одни и те же 8к физической памяти и с адреса 0xc000 и (допустим) с адреса 0хе000(наверно можно какнить ноги закоротить через диоды или буфер)

тогда для формирования растра з80 будет обращатся с адреса 0xс000, и соответственно для "рисования" с адреса 0хе000

тогда достаточно ловить только 0xc000-0xdfff
Last edited by DimkaM on 20 Jun 2016 03:09, edited 1 time in total.