Орион на Альтере с настоящим ВМ80А

Компьютер Орион-128 (1990) расширяемый до 256 КБ и его развитие

Moderator: Shaos

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

Post by Lavr »

newold86 wrote:Где можно найти самую схему подключения SD-карты вместо диска, и какой софт (ROM, операционная система и т.д.) нужен, чтобы это все заработало ?
Оригинал был на ЗетИкс.пе-ка.ру... Ну и мы где-то на форуме это копировали, если не снёс Хардвермен...

Как-то так: http://zx.pk.ru/showthread.php?p=262906

И мы: viewtopic.php?t=10486&sid=4c5f8d8ff33d0 ... dc81cfde30
iLavr
newold86
Devil
Posts: 716
Joined: 30 Nov 2013 11:08
Location: WWW

Post by newold86 »

Спасибо за ссылки, но, как говорил, смогу вернуться ко всему только после праздников..
newold86
Devil
Posts: 716
Joined: 30 Nov 2013 11:08
Location: WWW

Post by newold86 »

Всех с прошедшими праздниками !

Дождался расширителя пинов для своей отладочной платы и очень расстроился - несмотря на мои подробнейшие инструкции, прислали не с тем разъемом :(

Думал на выходных спаять и подключить "родную" клавиатуру, но не судьба. Зато начал осваивать новые технологии - "софтовый" процессор NIOS II от Altera.

Сгенерил простую систему (естественно, рядом с Орионом) - процессор, немного памяти и восемь 8-битных (если совсем точно, то два 32-битных) регистров. В регистры должны записываться биты, имитирующие нажатые клавиши. Регистры подключены к мультиплексору. Далее небольшая обвязка, чтобы при записи в порт А скана очередного столбца клавиатуры выбирался соответствующий канал мультиплексора, и чтобы при чтении из порта В читался выход мультиплексора. Все это заработало сразу - впрочем, никаких хитростей тут нет.

Далее подключаем к этому контроллеру клавиатуру (хоть PS/2, хоть USB), и пишем программу, которая будет принимать скан-коды и выставлять/сбрасывать нужные биты в регистрах. Тоже вроде все просто, но есть несколько моментов:

1. Никогда в жизни не работал на аппаратном уровне с портами PS/2 или, тем более, USB

2. Никогда в жизни не писал ни на чем, кроме ассемблера, а тут нужно писать на С.

Так что пока снова беру паузу на изучение вышеупомянутого :)

P.S. Но даже сейчас уже слегка работает - первая в моей жизни программа на С читает состояние кнопки на отладочной плате и выставляет соответствующим образом один из битов одного из регистров. В результате могу теперь печатать букву D :)
newold86
Devil
Posts: 716
Joined: 30 Nov 2013 11:08
Location: WWW

Post by newold86 »

Такое вроде не бывает - чтобы первая "настоящая" программа на новом языке программирования заработала сразу, без наладки. Тем не менее, это случилось:

Image

Так что клавиатура у меня появилась, можно двигаться дальше.

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

Зато сейчас вроде такие перспективы расскрываются ! На мой взгляд, это очень круто - прямо на компьютере можно и "железо" строить, и легко к нему прикручивать процессор с нормальным языком программирования.

Сейчас утрясу все в голове, доведу клавиатуру до ума (пока есть только латинский регистр, и не обрабатываются расширенные скан-коды, но это уже мелочь на полчаса работы) и можно подумать, наконец, о подключении внешнего накопителя (наверное, SD карты)...
newold86
Devil
Posts: 716
Joined: 30 Nov 2013 11:08
Location: WWW

Post by newold86 »

Никто не знает, обычно в играх для Ориона клавиатурный ВВ55 перепрограммировали для своих нужд, или оставляли в "стандартном" состоянии (как монитор проинициализировал) ?

А то запустил несколько игр, но моя реализация клавиатуры только с одной (Zoo) нормально заработала...
pfgx
Senior
Posts: 137
Joined: 20 Mar 2013 03:36
Location: Ростов-на-Дону

Post by pfgx »

В Специалисте точно перепрограммировали. Писал простенький эмулятор Специалиста, пришлось и ВВ55 хотя бы примерно описать. Многие игры сами клавиатуру сканируют, в отладчике было видно.
newold86
Devil
Posts: 716
Joined: 30 Nov 2013 11:08
Location: WWW

Post by newold86 »

Сканируют то ладно, волнует именно изменение настроек ВВ55...
User avatar
Stan
Banned
Posts: 397
Joined: 04 Jan 2013 10:09
Location: 95.24.178.158

Post by Stan »

Ну писателям игр не прикажешь же... а система у "Ориона" настройками ВВ55 вроде не хлопала...

Поэтому и контроллер PS/2 - ВВ55 у "Ориона" проще: обсуждали на форуме это...
pfgx
Senior
Posts: 137
Joined: 20 Mar 2013 03:36
Location: Ростов-на-Дону

Post by pfgx »

newold86 wrote:Сканируют то ладно, волнует именно изменение настроек ВВ55...
Так и настройки меняются, кто столбцами, кто строками сканирует...
Можно добавить на Verilog одну строку, определяющую запись в регистр статуса ВВ55, и вывести это на ножку ПЛИС, а к ней осциллограф или светодиод, сразу всё ясно станет.
newold86
Devil
Posts: 716
Joined: 30 Nov 2013 11:08
Location: WWW

Post by newold86 »

pfgx wrote:
newold86 wrote:Сканируют то ладно, волнует именно изменение настроек ВВ55...
Можно добавить на Verilog одну строку, определяющую запись в регистр статуса ВВ55, и вывести это на ножку ПЛИС, а к ней осциллограф или светодиод, сразу всё ясно станет.
Ну и почему я сам до этого не додумался, чтобы других людей глупыми вопросами не отвлекать ??? :)
petrenko
Doomed
Posts: 598
Joined: 10 Mar 2012 16:21
Location: РФ

Post by petrenko »

pfgx wrote:...
Можно добавить на Verilog одну строку... и вывести это на ножку ПЛИС, а к ней осциллограф или светодиод, сразу всё ясно станет.
Можно развить сию идею и для других узлов - тогда получится классическая модель легко проверяемого устройства - можно хоть с выводом почти всего, последовательно через один вывод ИМС.
( и обозвать сей вывод "тестовая сигнатура" :rotate: )
В пошаговом режиме отслеживать всё "насквозь" :idea:
newold86
Devil
Posts: 716
Joined: 30 Nov 2013 11:08
Location: WWW

Post by newold86 »

petrenko wrote:Можно развить сию идею и для других узлов - тогда получится классическая модель легко проверяемого устройства - можно хоть с выводом почти всего, последовательно через один вывод ИМС.
( и обозвать сей вывод "тестовая сигнатура" :rotate: )
В пошаговом режиме отслеживать всё "насквозь" :idea:
У меня на отладочной плате есть:

1. Светодиоды - 26 шт
2. 7-сегментные индикаторы - 8 шт
3. LCD экран с двумя строчками по 16 символов в каждой - 1 шт

Всем этим я активно пользуюсь в разборках с моим творением - помогает обалденно ! Также можно упомянуть о виртуальном логическом анализаторе SignalTap - его можно прикрутить внутри ПЛИС к чему угодно (правда, пока я не научился им пользоваться, поэтому светодиод как-то удобнее :) )

Только есть одно "но" - подключение дополнительных элементов реально влияет на работу устройства, если что-то работает "на грани" (впрочем, как и на реальном железе - щуп осциллографа может оказывать сильное влияние на работу железки).

Есть у меня один затык, который пока отложил на потом - иногда перестает формироваться сигнал 62. Подозрение на синхронность/асинхронность счетчиков (конкретно - DD3). Так вот, когда начал разбираться, то обнаружил, что простой вывод этого сигнала наружу может все запустить, как уберу - все останавливается.
Мало того - в зависимости от того, что я изменил в схеме (безотносительно к этому узлу - вообще где угодно), иногда требуется вывод этого сигнала на несколько внешних пинов. Можно, конечно, собраться с силами и описать синхрогенератор на VHDL, но тогда совсем уж уйду от оригинальной схемы, а не хотелось бы...
pfgx
Senior
Posts: 137
Joined: 20 Mar 2013 03:36
Location: Ростов-на-Дону

Post by pfgx »

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

А что за отладочная плата с таким количеством устройств индикации?
pfgx
Senior
Posts: 137
Joined: 20 Mar 2013 03:36
Location: Ростов-на-Дону

Post by pfgx »

petrenko wrote:
pfgx wrote:...
Можно добавить на Verilog одну строку... и вывести это на ножку ПЛИС, а к ней осциллограф или светодиод, сразу всё ясно станет.
Можно развить сию идею и для других узлов - тогда получится классическая модель легко проверяемого устройства - можно хоть с выводом почти всего, последовательно через один вывод ИМС.
( и обозвать сей вывод "тестовая сигнатура" :rotate: )
В пошаговом режиме отслеживать всё "насквозь" :idea:
недоJTAG? :)
newold86
Devil
Posts: 716
Joined: 30 Nov 2013 11:08
Location: WWW

Post by newold86 »

pfgx wrote:А что за отладочная плата с таким количеством устройств индикации?
На второй странице этой темы я фото размещал - Terasic DE2-115