
Программно-аппаратное формирование видеосигнала
Moderator: Shaos
-
- Admin
- Posts: 24014
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Galaksija
Ну ты сразу же и написал сам, что эту схему "весёлых людей" "прочитать практически невозможно" - я уж не стал от себя добавлять 

Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Supreme God
- Posts: 16680
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: Galaksija на К580ВМ80А
Строчный синхроимпульс расширил и сориентировал по стандарту относительно строчного гасящего: С кадровой синхронизацией призадумался: хотел задействовать третий канал таймера под это,Lavr wrote:Чего я не доделал - это кадровый синхроимпульс. Но там - однозначно будет К555АГ3 или какой
другой одновибратор. Строчный - тоже надо расширить одновибратором.
но тормозит меня мысль, что в компьютере, который 50 раз в секунду перывается на обновление
экрана, третий канал таймера, видимо, лучше оставить под генерацию звука спикером?
А кадровый синхроимпульс, возможно, сформировать чисто на одновибраторах...
Продумываю задно, как это всё собрать на макетке с U880 - еще один мешающий фактор всплыл:
в режиме отображения видео-ОЗУ счетчик до 3-х считает непосредственно фронты на адресной
линии А3 процессора К580ВМ80А, но у Z80 по А3 "шарится" заодно и счетчик регенерации...
Тактировать что-ли счетчик до 3-х... но это опять распирает схему...

Какая-то злобнозаточенная под К580ВМ80А схема получилась...

You do not have the required permissions to view the files attached to this post.
iLavr
-
- Supreme God
- Posts: 16680
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: Galaksija на К580ВМ80А
Тут вот какая двойственность получается: стабильная кадровая частота в схеме уже есть -Lavr wrote:С кадровой синхронизацией призадумался: хотел задействовать третий канал таймера под это,
но тормозит меня мысль, что в компьютере, который 50 раз в секунду перывается на обновление
экрана, третий канал таймера, видимо, лучше оставить под генерацию звука спикером?
А кадровый синхроимпульс, возможно, сформировать чисто на одновибраторах...
она используется для INT =50 Гц, вызывающего процессор для обновления экрана.
Но получатся, что этот импульс находится в самом конце кадрового импульса гашения.
Если брать 2 одновибратора из 555АГ3, то один из них должен отработать по запуску от
INT интервал, больший видимой части кадра, чтобы попасть на середину следующего
импульса гашения, где второй одновибратор из 555АГ3 сформирует длительность КСИ.
Я боюсь, что на интервале такой длительности у одновибратора 555АГ3 будет заметен
джиттер из-за конденсатора. В результате будет неустойчивость по кадру.
Вариант с таймером: канал 3 настраиваем в режим 5 и запускаем по INT, а сам КСИ
формируем по длительности опять же одновибратором из 555АГ3.
Здесь другая проблема: режим 5, насколько я помню, не возобновляемый, хотя и запускаемый
аппаратно по GATE. Значит в конце каждого кадра процем надо записать в канал 3 делитель.
Если проц ушел в задачу и не откликается на INT =50 Гц, синхронизация по кадру будет потеряна.
А мне хотелось, чтобы синхронизация в этом случае не терялась...
iLavr
-
- Supreme God
- Posts: 16680
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: Galaksija
Склонился я-таки в сторону одновибраторов на К555АГ3 в формировании развертки по кадру...
Множество материалов убеждают, что длительность импульса на К555АГ3 достаточно стабильна.
И раз уж есть прерывание 50 раз в секунду, то во время него неплохо и клавиатуру опрашивать
и контролироват длительность звука канала 3 таймера интервалами по 20 mS.
При 256 строках развертки в видимой части экрана длительность задержки должна составить 1776 мкс при 160 мкс КСИ по стандарту.
Расчет следующий:
Кадровая развертка: 312 строк при прогрессивной развертке составляют 312 х 64 мкс = 19968 мкс = 19.968 мс.
Видимая часть строки: 256 х 64 мкс = 16384 мкс = 16.384 мс
Кадровый гасящий импульс: 19968 мкс – 16384 мкс = 3584 мкс
Кадровый синхроимпульс: 160 мкс (по стандарту и примерно посредине гасящего)
Половина гасящего: (3584 мкс - 160 мкс)/2 = 1712 мкс
Но запуск на 64 мкс раньше => dT = 1712 мкс + 64 мкс = 1776 мкс (one-shoot)
Сразу и сделал оценку насколько занят процессор:
Видимая часть кадра составляет 82,05% от всего периода, откуда процессор не занят обновлением экрана всего лишь 17,95% времени.
Это несколько удручает, и склоняет к развертке в 192 строки, для них:
61,54% – видимая часть кадра, а 38,46% – не занят процессор, это лучше!
Осциллограммы я смотреть не стал, т.к. все-равно одновибраторы в расчете идеальные,
а кадровый импульс приходится ждать довольно долго.
Множество материалов убеждают, что длительность импульса на К555АГ3 достаточно стабильна.
И раз уж есть прерывание 50 раз в секунду, то во время него неплохо и клавиатуру опрашивать
и контролироват длительность звука канала 3 таймера интервалами по 20 mS.
При 256 строках развертки в видимой части экрана длительность задержки должна составить 1776 мкс при 160 мкс КСИ по стандарту.
Расчет следующий:
Кадровая развертка: 312 строк при прогрессивной развертке составляют 312 х 64 мкс = 19968 мкс = 19.968 мс.
Видимая часть строки: 256 х 64 мкс = 16384 мкс = 16.384 мс
Кадровый гасящий импульс: 19968 мкс – 16384 мкс = 3584 мкс
Кадровый синхроимпульс: 160 мкс (по стандарту и примерно посредине гасящего)
Половина гасящего: (3584 мкс - 160 мкс)/2 = 1712 мкс
Но запуск на 64 мкс раньше => dT = 1712 мкс + 64 мкс = 1776 мкс (one-shoot)
Сразу и сделал оценку насколько занят процессор:
Видимая часть кадра составляет 82,05% от всего периода, откуда процессор не занят обновлением экрана всего лишь 17,95% времени.
Это несколько удручает, и склоняет к развертке в 192 строки, для них:
61,54% – видимая часть кадра, а 38,46% – не занят процессор, это лучше!
Осциллограммы я смотреть не стал, т.к. все-равно одновибраторы в расчете идеальные,
а кадровый импульс приходится ждать довольно долго.

iLavr
-
- Supreme God
- Posts: 16680
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: Galaksija
После консультаций с PVV, допилили мы модель z80(aka K580BM80) драчовым напильником,
так что теперь нужный сигнал /INTE будет выдаваться через вывод /RFSH.
Всё равно у K580BM80 никакого /RFSH нет в помине даже "в шкуре" z80...
Так что начал я потихонечку пробовать "собирать" опробованную идею в Протезусе.
Все "грязные трюки", в принципе, сработали как и ожидалось...
А то я уж начал опасаться, что Протезус не поймет притяжки шины данных резисторами
то к лог. "1", то к "0", поскольку у него на этот повод "цифровые резисторы" разные:
pull-up и pull-down - соответственно... Но - вроде обошлось... Протезус справился...
Конечно, порешать это всякими костылями в принципе было бы можно, но схему и так уже
начинает распирать от лишнего - всё-таки она конструировалась под K580BM80...
Один только аналог простого двунаправшенного ШФ К580ВА86 чего стОит!
так что теперь нужный сигнал /INTE будет выдаваться через вывод /RFSH.

Всё равно у K580BM80 никакого /RFSH нет в помине даже "в шкуре" z80...

Так что начал я потихонечку пробовать "собирать" опробованную идею в Протезусе.
Все "грязные трюки", в принципе, сработали как и ожидалось...
А то я уж начал опасаться, что Протезус не поймет притяжки шины данных резисторами
то к лог. "1", то к "0", поскольку у него на этот повод "цифровые резисторы" разные:
pull-up и pull-down - соответственно... Но - вроде обошлось... Протезус справился...
Конечно, порешать это всякими костылями в принципе было бы можно, но схему и так уже
начинает распирать от лишнего - всё-таки она конструировалась под K580BM80...

Один только аналог простого двунаправшенного ШФ К580ВА86 чего стОит!

You do not have the required permissions to view the files attached to this post.
Last edited by Lavr on 04 Jul 2016 22:35, edited 1 time in total.
iLavr
-
- Admin
- Posts: 24014
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Galaksija
А картинки то нету...
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Supreme God
- Posts: 16680
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: Galaksija
Это у тебя какой-то глюк форума - картинка то видна, то не видна...Shaos wrote:А картинки то нету...

Она закачана на форум - вот на неё "кривая" ссылка:
download/file.php?id=1040
По ссылке - открывается. А под спойлером как-то через раз...

P.S. Ну, поскольку глюк я и сам заметил, то скачал картинку с форума
и залил её под спойлер заново...
iLavr
-
- Admin
- Posts: 24014
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Galaksija
Теперь видно (а по старой ссылке как не открывалось, так и не открывается)
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Supreme God
- Posts: 16680
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: Galaksija
Ну вот смотри: нажал я на ссылку постом выше и всё тут же открылось!Shaos wrote:Теперь видно (а по старой ссылке как не открывалось, так и не открывается)


P.S. Если кому ещё не видно - кликаем следующую ссылку:
download/file.php?id=1041
Ну да ладно... пошел я в отпуск!...

You do not have the required permissions to view the files attached to this post.
iLavr
-
- Devil
- Posts: 912
- Joined: 06 Oct 2006 03:17
- Location: г.Лянтор,Сургутского р-на,ХМАО
Re: Galaksija
Да ладно. Отпуск не на Луне? в смысле на форум будешь заходить?Lavr wrote:Ну да ладно... пошел я в отпуск!...[/i]
-
- Supreme God
- Posts: 16680
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: Galaksija
А с нашим хобби отдыхать полноценно можно только на Луне, причем не брать с собой ноутбука...fifan wrote:Да ладно. Отпуск не на Луне?

А иначе после нескольких дней неорганизованного безделия тянет что-то сконструировать!...

Хотя, как говорят в одном моем любимом фильме:"Если проблема не решается, надо отвлечься..."

А проблема была такая, что не нравился мне в моей конструкции таймер К580ВИ53...

А делитель частоты на одновибраторе при больших коэффициентах деления (5МГц до 15625 Гц)
будет, похоже что, проскакивать точные нужные значения из-за неизбежного "джиттера"...
И как мне кажется, я нашел удобоваримое нищебродское решение: сделать одновибратор
синхронным с запускающим сигналом. В этом случае все мелкие неточности длительности "спрячутся" привязкой к фронтам запускающего сигнала.
На картинке я как раз сформировал строчный синхросигнал из сигнала с бОльшей частотой,
меньше, правда, чем 5МГц, чтобы процесс понаблюдать...
Видна аккуратная привязка к синхросигналу.
Попробую теперь "уволить" таймер К580ВИ53 из конструкции...
P.S. В общем-то на двух таких каскадах весьма четко получается строчная частота с импульсом
строчной синхронизации нужной длительности ~4мкс. Первым каскадом из 5МГц получаем частоту 250кГц (период 4мкс). Коэффициент деления = 20.
Это довольно-таки немного.
Вторым каскадом из 250кГц получаем 15625Гц с длительностью импульса ~4мкс.
Коэффициент деления = 16, что тоже вполне приемлемо...
You do not have the required permissions to view the files attached to this post.
iLavr
-
- Supreme God
- Posts: 16680
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: Galaksija
А вот эта мысль ну оооооочень правильная! Только не с 0хс020, а с 0хс030 и далее - кратно 30Н...DimkaM wrote:теоретически можно настраиваемый размер по вертикали.
если входить в прерывание, допустим, не с 0хс000, а с 0хс020, то будет на одну строку меньше
Действительно, похоже на то, что получается ситуация, при которой можно выводить заданное
количество строк на экране.
Сейчас сам так в отладке делаю, чтобы не ждать, когда эмулятор "прокрутит" полное число строк.

Ибо ждать полное число строк в симуляции довольно долго...
iLavr
-
- Supreme God
- Posts: 16680
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: Galaksija
Что-то у меня такое нехорошее впечатление складывается, что на этой модели под Протезусом
правильно всё работать не будет...

Растактовки команд, похоже, что отличаются от оригинального К580ВМ80А...
А на обратном ходе по строке у меня там точно посчитано в тактах всё.
P.S. Кстати говоря, когда я по тактам рассчитывал, пользовался вот этим источником.
Но вроде как пара опечаток в этом "полотнище" есть. Поэтому контролировал я сам себя по
следующему он-лайн документу: http://www.pastraiser.com/cpu/i8080/i8080_opcodes.html
Ошибиться по идее - не должен был...
правильно всё работать не будет...

Растактовки команд, похоже, что отличаются от оригинального К580ВМ80А...
А на обратном ходе по строке у меня там точно посчитано в тактах всё.

P.S. Кстати говоря, когда я по тактам рассчитывал, пользовался вот этим источником.
Но вроде как пара опечаток в этом "полотнище" есть. Поэтому контролировал я сам себя по
следующему он-лайн документу: http://www.pastraiser.com/cpu/i8080/i8080_opcodes.html
Ошибиться по идее - не должен был...
You do not have the required permissions to view the files attached to this post.
iLavr
-
- Supreme God
- Posts: 16680
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: Программно-аппаратное формирование видеосигнала
Мы с Shaos-ом посоветовались и решили выделить эту тему из топика
Galaksija, чтобы не мешать его развитию.
Заодно я решил итоговую схему по этой теме: программно-аппаратное
формирование видеосигнала на К580ВМ80А выложить здесь, поскольку
"причесать" её окончательно руки так и не дошли...
Насколько этот вариант окончательный и безошибочный, мне сейчас точно сказать уже трудно.
Под схему было тестовое программное обеспечение:
СХЕМА ОДНОЗНАЧНО НУЖДАЕТСЯ В НЕКОТОРОЙ ДОРАБОТКЕ, ПОСКОЛЬКУ НА МОМЕНТ РАЗРАБОТКИ
НИ МНЕ, НИ АВТОРАМ ЭМУЛЯТОРА НЕ БЫЛО ИЗВЕСТНО, ЧТО КР580ВМ80 В РЕЖИМЕ ИСПОЛНЕНИЯ NOP
НЕ ТАКОЙ УЖ И ХОРОШИЙ СЧЕТЧИК ПО ШИНЕ АДРЕСА, КАК ЭТО ВСЕМИ ПРЕДПОЛАГАЛОСЬ РАНЕЕ.
viewtopic.php?p=135807#p135807
viewtopic.php?p=135808#p135808
viewtopic.php?p=135826#p135826
Galaksija, чтобы не мешать его развитию.
Заодно я решил итоговую схему по этой теме: программно-аппаратное
формирование видеосигнала на К580ВМ80А выложить здесь, поскольку
"причесать" её окончательно руки так и не дошли...

Но всё же я над оригиналом схемы поработал значительно и отрисовал вот такой вариант:Lavr wrote:Я её делал в другом симуляторе, где глюков тоже отбавляй - поэтому пользы от неё,
на мой взгляд, мало - чисто проверка работоспособности идеи.
Часть схемы там просто для "обхода глюков" эмулятора... Поэтому я и не выкладывал
эту схему в пост. Да и "читабельность" схемы оставляет желать лучшего...
Так что к ней больше вопросов возникает, ответы на которые:"здесь убирал глюк"...
Насколько этот вариант окончательный и безошибочный, мне сейчас точно сказать уже трудно.

Под схему было тестовое программное обеспечение:
СХЕМА ОДНОЗНАЧНО НУЖДАЕТСЯ В НЕКОТОРОЙ ДОРАБОТКЕ, ПОСКОЛЬКУ НА МОМЕНТ РАЗРАБОТКИ
НИ МНЕ, НИ АВТОРАМ ЭМУЛЯТОРА НЕ БЫЛО ИЗВЕСТНО, ЧТО КР580ВМ80 В РЕЖИМЕ ИСПОЛНЕНИЯ NOP
НЕ ТАКОЙ УЖ И ХОРОШИЙ СЧЕТЧИК ПО ШИНЕ АДРЕСА, КАК ЭТО ВСЕМИ ПРЕДПОЛАГАЛОСЬ РАНЕЕ.
viewtopic.php?p=135807#p135807
viewtopic.php?p=135808#p135808
viewtopic.php?p=135826#p135826
You do not have the required permissions to view the files attached to this post.
iLavr
-
- Supreme God
- Posts: 16680
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: Galaksija на К580ВМ80А
Вот этот момент, собственно, и требует доработки в схеме...
линии А3.
P.S. Да вобщем-то не так уж и масштабно доработать схему, если посмотреть на эту диаграмму:

Состояние адресной линии А3 скорее всего просто надо "защелкивать" перед счетчиком до 3-х,
в D-триггер в привязке к импульсу SYNC. По идее это должно убрать "изрезанность" А3...
Но, как оказалось, сигнал на адресной линии А3 процессора К580ВМ80А "изрезан"... ...и это будет сбивать счетчик до 3-х, который считает непосредственно фронты на адреснойLavr wrote:...еще один мешающий фактор всплыл:
в режиме отображения видео-ОЗУ счетчик до 3-х считает непосредственно фронты на адресной
линии А3 процессора К580ВМ80А, но у Z80 по А3 "шарится" заодно и счетчик регенерации...
линии А3.

P.S. Да вобщем-то не так уж и масштабно доработать схему, если посмотреть на эту диаграмму:
Состояние адресной линии А3 скорее всего просто надо "защелкивать" перед счетчиком до 3-х,
в D-триггер в привязке к импульсу SYNC. По идее это должно убрать "изрезанность" А3...
You do not have the required permissions to view the files attached to this post.
iLavr