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

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

Moderator: Shaos

User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

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

Post by Lavr »

Galaksija на К580ВМ80?

Я тут немного поразмыслил, как бы концепцию Galaksija перенести на
возможности микропроцессора К580ВМ80. У него нет механизма регенерации,
поэтому напрямую перенести решения не представляется возможным.
Но задумка есть вот какая: пусть, к примеру, сначала всё идёт по сценарию
Galaksija...
По кадровому импульсу К580ВМ80 получает видео-INT. Заканчивает текущую инструкцию
и переходит к обработке прерывания. По характерным сигналам
схема на триггере вырабатывает сигнал WAIT и этим тормозит процессор.
Процессор молотит такты ожидания, выдерживая гашение по кадру.
Начало строки развёртки перебрасывает триггер, отпускает процессор
в работу и вот тут-то он...

выполняет по прерыванию команду JMP 9000H (или в видео-ОЗУ на начало).
На время действия прямого кадрового хода отдельным сигналом надо переключить
схему так, чтобы процессор при обращению к области видео-ОЗУ считывал
инструкцию NOP. То есть - он выдал адрес 9000Н и дал строб чтения RD, но
данные пошли не к процессору, а на регистр видео-сдвига.
Времени на NOP хватит, я так помню у "Спеца" на два обращения счетчика
регенерации приходилось одно обращение процессора.
По NOP К580ВМ80 ничего не делает и далее выставит адрес 9001Н . Возможно
надо точно тайминги посмотреть и для синхронности тормозить проц через
WAIT.
После того как проц во время действия прямого кадрового хода переберёт
весь видео-буфер, читая псевдо-NOP, сигнал начала обратного хода
развёртки по кадру снова разрешит процу обращаться к памяти как обычно.
И по тому адресу, на котором процессор закончит перебор адресов видео-ОЗУ
должна быть предварительно записана инструкция RET из видео-прерывания.
Её можно занести при начальной инициализации.
Таким образом мы получаем графический экран, отображением которого
занимается процессор, осуществляя заодно циклы регенерации ДОЗУ.
Вроде как всё правильно. Параметры экрана, конечно, надо подсчитать.
Организация получится:
9000Н, 9001Н, 9002Н ... - в первой строке, и т.д.

Какие будут мнения?

Кстати говоря, попалось мне упоминание, что аппаратная организация
клавиатуры в Galaksija позволяет получать код клавиши непосредственно
в ASCII без привычных для такой процедуры таблиц перекодировки.
Не проверял ещё этой возможности - но если это так, то весьма удобно...
Another interesting thing about this computer is that the each key on the keyboard is mapped in ASCII order to a memory location.
d_wanderer
Senior
Posts: 180
Joined: 28 Feb 2006 21:34

Post by d_wanderer »

Если память собрать на статике, то 580того хватит. ))) Возможно даже для простой графики.
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

А может ещё наглее всю эту Galaksi-ю сделать?
Взять и засунуть всю незатейливую синхронизацию в отдельный PIC?
Поскольку гашение формируется программно, ножек должно хваитить и
у небольшого PIC-а.
С другой стороны - как-то неспортивно: замшелый К580ВМ80 и PIC...
User avatar
Shaos
Admin
Posts: 24008
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

кр580вм80 тоже можно в пик затолкать ;)
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

Shaos wrote:кр580вм80 тоже можно в пик затолкать
Shaos - я помню, я не забросил эту идею,
viewtopic.php?t=9310
но для неё у меня нет подходящей памяти здесь. :oops:
d_wanderer
Senior
Posts: 180
Joined: 28 Feb 2006 21:34

Post by d_wanderer »

Lavr wrote:А может ещё наглее всю эту Galaksi-ю сделать?
Взять и засунуть всю незатейливую синхронизацию в отдельный PIC?
Поскольку гашение формируется программно, ножек должно хваитить и
у небольшого PIC-а.
С другой стороны - как-то неспортивно: замшелый К580ВМ80 и PIC...
Лучше не в PIC а в AVR. Правда кое кто считает что это слово ругательное. )))) Или может попробовать на 1801ВМ1 в пику БК-любов. ))))
Кстати, в AVR можно попробовать запихать и систему команд 580того. Можно попробовать это проделать.
User avatar
fifan
Devil
Posts: 911
Joined: 06 Oct 2006 03:17
Location: г.Лянтор,Сургутского р-на,ХМАО

Post by fifan »

d_wanderer wrote:Кстати, в AVR можно попробовать запихать и систему команд 580того. Можно попробовать это проделать.
Уже сделали. Отлаживается код. Правда процессор Z80. - http://www.zx.pk.ru/showthread.php?t=13747
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

Я здесь преследую несколько другую цель.
И вовсе не стремлюсь что-то куда-то упихать.
Мне интересно - имея опыт в схемотехнике, можно ли сделать простой
повторяемый и доступный комп (оглядываясь в 80,90-е, как если это
тогда), но и учитывая то, чего сейчас на прилавках в изобилии.
Почему К580ВМ80 - просто для совместимости по ПО, что не изобретать
заново.
Да и у меня их штук шесть должно быть. Если мне было некогда сильно
вникать во все хитрости тогда, поделаю с интересом сейчас.
Жалко только, что ВМ80 и Z80 - нет моделей под "Протеус", больно
я к нему пристрастился... :wink:
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

2_fifan

Post by Lavr »

2_fifan
Похоже, что Лисицын Василий Николаевич тоже делает что-то похожее,
но только на AVR и тоже just for fun.
Может ему AVR-ки больше нравятся, а может просто у него их есть.

2_d_wanderer
d_wanderer wrote:в AVR можно попробовать запихать и систему команд 580того
Я её практически на 80% упихал в "нищебродский" PIC16F84, правда желательно не в самый медленный.
Хотел сделать "Специалиста" или близкое подобие. Проект завял из-за
отсутствия доступной статической памяти 64К или 128К. Думаю переделать
на более доступные СРАМ. С AVR никогда не связывался и даже сомневаюсь
стОит ли начинать. У меня их нет, а покупать just for fun не люблю.
User avatar
fifan
Devil
Posts: 911
Joined: 06 Oct 2006 03:17
Location: г.Лянтор,Сургутского р-на,ХМАО

Re: 2_fifan

Post by fifan »

Lavr wrote:Проект завял из-за отсутствия доступной статической памяти 64К или 128К. Думаю переделать на более доступные СРАМ.
Есть такие. Мы с HardWareManом такие юзаем на Специалисте - http://www.chipdip.ru/product/ut621024pc-70ll.aspx - можно поискать дешевле, в SOI корпусе в два раза дешевле.
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

fifan wrote:Мы с HardWareManом такие юзаем на Специалисте
В песне Высоцкого это называется "инструктор коленом под зад мне помог": :wink:

Code: Select all

Технические параметры позиции 
UT621024PC-70LL =628128 PDIP32
Тип организации памяти	128K x 8
Напряжение питания, В	5
Время доступа, нс	70
Тип шины	паралелльная
Мне-то нужна память с последовательным интерфейсом.
64K SPI Bus Low-Power Serial SRAM
У PIC16F84 ног не хватит заюзать эту память UT621024PC... :lol:
User avatar
Shaos
Admin
Posts: 24008
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

скоростёнки не хватит у пика эмулить 8080 и ещё последовательно в память лазить

P.S. лучше сделать программно-аппаратное решение - типа вот этого: viewtopic.php?t=8311
суть в том, что новый адрес памяти устанавливается медлено (побайтно), а следующий (получаемый аппаратным инкрементом) - быстро (инкремент идёт автоматом после обращения к ячейке памяти на чтение или запись)
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
fifan
Devil
Posts: 911
Joined: 06 Oct 2006 03:17
Location: г.Лянтор,Сургутского р-на,ХМАО

Post by fifan »

Shaos wrote:скоростёнки не хватит у пика эмулить 8080 и ещё последовательно в память лазить
Полностью согласен. У меня пик на 30 МГц не успевал работать с ВВ55 (хотел эмулятор клавиатуры сделать). Пришлось плисину ставить.
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

Shaos wrote:скоростёнки не хватит у пика эмулить 8080 и ещё последовательно в память лазить
Это смотря для какой тактовой частоты 8080-го. :wink:
По моим прикидкам ПИК на 10 МГц довольно приемлемо должен смочь.
В прототипе на 6 МГц всё работало, хотя там не 8080, но близко.
With a 6.144–MHz crystal driving the PIC reading and interpreting an instruction takes around 60 µs (i.e., the computer executes about 17,000 instructions a second), which should be fast enough to control even a complex model in real time.
Я и надумал перейти к Serial SRAM чтобы ускориться.
Так, как сейчас опробовано - разогнать EEPROM принципиально нельзя.
Shaos wrote:суть в том, что новый адрес памяти устанавливается медлено (побайтно), а следующий (получаемый аппаратным инкрементом) - быстро
А у меня примерно так и есть сейчас:
The EEPROM has the useful property, that once you have sent a memory address to it, you can read sequential bytes indefinitely without sending a new address. You can execute instruction after instruction without worrying about the current program address.
Чето когда я сказал, что в тупике с памятью:
viewtopic.php?t=9310 все культурно промолчали.
А в топике про Galaksija решили обсудить. :o
Не - я ни в коем случае не против! :lol:
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

2_fifan

Кстати говоря, вот ты тут утверждал
fifan wrote:У меня пик на 30 МГц не успевал работать с ВВ55 (хотел эмулятор клавиатуры сделать).
Может ты тоже генератор на кварце не включил?
Там целый РК86 на 16 МГц пашет,
viewtopic.php?p=88325#88325
а тебе 30 МГц не хватило на клаву?
Я без намерения обижать кого-то, но вдруг?
А то я там читаю - думаю... 30 МГц для клавы не хватало, может и тормозит Мега на 16 МГц ...
Извини, что повторяюсь - не знаю, читаешь ли ты ветку AVR.

PS. И вот ещё что вспомнилось, подумав... Я запускал эмулятор Шевцова
на 286-й машине 20 МГц, всё работало, чуть тормозя, а в эмуляторе - не
только ВВ55, но и весь "Специалист МХ". А тут на 30 МГц только ВВ55 не
тянет, странно...
Last edited by Lavr on 14 Mar 2011 16:53, edited 1 time in total.