nedoPC.org

Community of electronics hobbyists established in 2002

...
Atom Feed | View unanswered posts | View active topics It is currently 25 Sep 2018 15:13



Reply to topic  [ 83 posts ]  Go to page 1, 2, 3, 4, 5, 6  Next
Еще один "Специалист" в Proteus 
Author Message
Maniac

Joined: 12 Feb 2016 14:39
Posts: 295
Reply with quote
Приветствую All
Хочу рассказать о моих экспериментах по моделированию в Proteus.
Все началось на новогодние каникулы, нужно было разработать одно устройство, а в моем 'рабочем кабинете'
было достаточно прохладно и макетировать там не было ни какого желания, и тут я вспомнил о такой
программке, как Proteus. Это был хороший повод ее изучить. Прочитав самоучитель, буквально за пару
дней была нарисована схема, еще за пару дней написана программка для avr, и еще пару дней ушло на комплексную
отладку, и получилось, что за неделю полностью удалось реализовать проект!(мой 'день' начинается в 11 вечера,
когда вся семья укладывается спать :)) В это, даже, как то и не верилось.
После чего возникло желание смоделировать еще что-нибудь и проверить в железе совпадения модели и реальной схемы.
В процессе изучения возможностей Proteus я несколько раз наталкивался на форум, с обсуждением 'Специалиста',
а 25 лет назад это был первый собранный мною компьютер(после него было еше несколько 'Cпециалистов', а потом
пошли разные спектрумы в мелко промышленных количествах), от чего и появилось желание смоделировать именно его.
Кроме того, еще в те же годы я порывался собрать 'Специалист'а на макетной плате, и даже что-то успел на ней
распаять, но затем у меня появилась готовая печатная плата для сборки и макетка была заброшена.
Макетка была с трудом обнаружена, за прошедшие годы на ней осталось несколько ИЕ10 и ИЕ5 счетчиков, ТМ2 триггер
и ИР9 сдвиговый регистр. Отталкиваясь от этих элементов и того, что можно было найти в своих запасах и было решено макетировать.
Процессор i8080, в компонентах proteus я не обнаружил, зато был z80 и я решил использовать его... кто ж знал,
что это только УГО, а не модель процессора(я то только как пару недель изучал proteus), на что я достаточно
быстро и напоролся... Ну, а пока я об этом еще не знал, набросал схемку части синхро генератора,
посмотрел на графики, красота. Добавил z80 с обвязкой, запускаю, и ... спустился я с небес на грешную землю,
представ перед суровой реальностью.
Но мир же не без добрых людей, и вот она, рабочая модель Z80 с набором команд от К580ВМ80:
viewtopic.php?f=81&t=10110&start=360
Следующий шаг - память, я хотел использовать динамическую память, а не статику, и у меня завалялось несколько
планок 72х пиновых симов, от куда можно было позаимствовать мс памяти.
В proteus, как выяснилось, модели DRAM нет, только статика SRAM, но это легко решилось при помощи пары защелок по RAS и CAS.
Используя модель z80, и собрав цепь формирования сигнала SYNC, который есть в ВМ80 и отсутствует в z80, а используется
в 'Специалисте' и является одним из важнейших сигналов в логике работы всего компа я собрал всю схему.
К ПЗУ подключил файл прошивки монитора 'Специалиста', и на графиках шин адреса и данных проконтролировал
всю работу компа. Вроде бы все хорошо, но чего-то не хватает - дисплея. Как и Lavr из соседней темы, я захотел
увидеть результат моделирования на видео выходе и возник вопрос как это сделать? Читая форумы наткнулся
на один пост, который меня заинтересовал, тем более, что там были выложены исходники:
http://zx-pk.ru/showthread.php?t=19960. Проект у меня работать как надо не захотел, но
кое-что из него можно было почерпнуть, используя идеологию работы LCD матриц, где есть пиксельклок, строчные и
кадровые синхроимпульсы и RGB данные я, изучив инструкции по созданию моделей:
viewtopic.php?p=100323#p100323 , доработал модель 'дисплея', сделав отдельные входы
для частоты сдвига пикселей, строчных и кадровых синхроимпульсов и одного входа для яркости(изначально то компьютер ч/б)
Подключил эту модель к своему проекту, и -ура! я увидел проглашение монитора 'ПРОГРАММА ?'.
Attachment:
spec_ie10_5.png
spec_ie10_5.png [ 119.98 KiB | Viewed 3071 times ]

Вообщем модель в proteus была готова и работоспособна, и наступил этап проверить ее в 'железе'.
Пришлось немного подготовиться, тк не все детали были в наличии, пришлось кое-что докупить, в том числе
и 10 метров МГТФа. Для ПЗУ была выпаяна из старой материнки flash, сделана платка переходник под DIP
корпус, сделан простенький программатор на LPT порт и написана для этого программатора консольная
программка. Наконец, все было готово, подключил конструкцию на вход тв тюнера, включаю, и вижу приглашение
монитора 'ПРОГРАММА ?'. ВСЕ, на этом можно было бы и закруглиться, но... как-то все уж быстро закончилось,
ни каких изменений, разве что артефакт- на белом поле были периодические вертикальные серые полосы, но
конденсатор на 150пф с ножки пиксель клока ИР9 регистра на землю решил и этот вопрос.
Возник вопрос, что бы еще такое сделать? Изучая информацию по 'Специалисту' несколько раз наталкивался
на варианты подключения в нему SD карты. Вариант на atmege мне совершенно не приглянулся, уж очень
не хотелось использовать контроллер в несколько раз мощнее ВМ80 лишь для загрузки этого ВМ80, а вот вариант
из 'Специалист МХ2', мне понравился, только, конечно же, без плисины, это как-никак ближе к 'духу' того
времени(за то, что в самой SD карте, наверняка, стоит более мощный, чем ВМ80, контроллер я умолчу :) ).
При этом несколько раз встречал фразы типа - 'существует реализация только на плис, а на рассыпухе этой
схемы нет, только медленный вариант с msx...'. Не беда, это как раз задачка по плечу proteus_у.
Прочитал, что SD интерфейс в 'Специалист МХ2' работает при старте, значит надо собрать обвязку МХ2,
а уж затем добавлять SD. Сделал модель МХ2, запускаю, а она не работает. Разбирался, разбирался, не пойму в
чем дело, вроде бы все правильно, а при чтении из ОЗУ читается мусор...решил, что в модели z80
неправильные тайминги при чтении шины данных, не сильно раздумывая подкинул просто статическое ОЗУ на
шину данных и адреса до АП6 шинника, и процессор стал правильно читать память, МХ2 запустился, увидел
приглашение 'МОНИТОР-4'. Доработал 'железную' макетку до МХ2, включил, увидел знакомое приглашение,
проводком по ВВ55 'по нажимал' кнопки(клавиатуры, пока, нет), запустил встроенные в оболочку программы,
все ок. А где же загрузка с SD карты? Стал разбираться с прошивками, в одной из них - specsvga.bin
нашел упоминание '*BIOS Loader v.5', но как ни пытался найти, как вызывается этот загрузчик, ничего
не нашел(если кто знает, подскажите). С аппаратной частью, тоже не все гладко, в разных местах указывается
разные адреса выборки SD интерфейса: http://www.spetsialist-mx.ru/index32.html на схеме с плис, ножка 41
подключается к цепи /U2, а на схемном вводе самой плисины это ножка PIN_41 обзывается U3...
Но поддерживается программно SD или нет, аппаратную реализацию сделать мне никто не мешает, по крайней
мере можно сделать простую программу, которая будет читать и писать в порт, а на входе/выходе моего SPI
контроллера на 'рассыпухе' можно будет увидеть, что творится. Сделал, проверил, все отрабатывает как
задуманно.
Attachment:
spi_SD.png
spi_SD.png [ 96.94 KiB | Viewed 3071 times ]

Начал опять шерстить форумы по загрузке с SD карты, наткнулся на темку:
http://zx-pk.ru/showthread.php?t=14005&page=30, там Spetz_fifan.rar, а в нем файл BIOS.BIN
с тем самым загрузчиком '*BIOS Loader v.5'! Подключил к ПЗУ этот файл, а к модели SD карты в proteus
образ файловой системы и моя модель 'Специалист МХ2' загрузилась с карты. Прошлось, правда, 'подправить'
этот загрузчик в части отключения ROM при передаче управления на загруженный монитор.
Attachment:
spec_ie10_16_mx2_BM80.png
spec_ie10_16_mx2_BM80.png [ 132.35 KiB | Viewed 3071 times ]

Повторил в 'железе',
все работает как часы. Опять, вроде бы все, что б еще сделать? VGA выход? надо попробовать...


07 Apr 2016 03:45
Profile
Maniac

Joined: 12 Feb 2016 14:39
Posts: 295
Reply with quote
В МХ2 оперативная память выполнена на статике SRAM, у меня же DRAM. Разграничение доступа к памяти видео вывода
и процессора, при том, что процессорные циклы в два раза длиннее чем видео(RAS-CAS 5Мгц, а тактовая ВМ80 2.5Мгц),
та еще задача... Поднял тактовую всей модели до 20Мгц, нашел у себя такой кварц(40, как в МХ2 еще поискать надо),
а тем не менее, этого достаточно и, по схеме от МХ2, начал править синхрогенератор до разрешения 800х600.
Развертку сделал, подправил в своей модели дисплея разрешение до 800х600. Сделал формирователь Ф1 и Ф2
для ВМ80 как в МХ2 на ИЕ5+ЛА3, с учетом переключения на тактовую 2Мгц, стал тестировать. Запросы от ЦПУ
приходят не вовремя, идет драка с видео за доступ к памяти, подправил, 2.5Мгц работает, а вот 2 нет,
когда 'вырезка' синхро импульса попадает в 3й период машинного такта ВМ80, в котором идет чтение/запись
из/в память, происходит глюк, и программа слетает, ладно, оставлю пока только 2.5. Видео выход, тоже,
себя не вполне хорошо ведет, на экране наблюдаются тонкие, темные вертикальные полосы, шириной в 1 пиксель
на разрешении 800, и в пол пикселя, как это выдает 'Специалист', разбираюсь - виновата ИР9, импульс записи
в защелку приходит не в том такте пиксельклока, чем это было на обычном ТВ выходе(то, с чем я боролся
конденсатором, на макетке в самом начале), а происходит это все из-за возросшего влияния задержек
распространения сигналов в логических элементах на этих частотах(пиксельклок то 20Мгц, а в модели, да
и на моей макетке, используется серия 74LS, те 555, и лишь кое где 1533, а в мультиплексорах на макетке
у меня вообще 155КП2 стоят). Поигрался узлом формирования защелки в ИР9, вывод исправился, все ок.
Дорабатываю макетку до VGA, включаю. Монитор развертку увидел, а на экране мельтишит мусор, если
удерживать СБРОС, экран замирает. После нескольких сбросов промелькнула надпись загрузчика, ага!
значит идет драка за память. Начал анализировать что происходит... у меня в модели используется z80,
а в макете ВМ80, формирование сигнала SYNC - его времянка другая, добавил еще одну ТМ2, сначала в модели,
затем в макете, и мой 'Специалист МХ2 SVGA' показал приглашение на мониторе, загрузившись с SD карты!
Attachment:
spec_ie10_vga_12_BM80.png
spec_ie10_vga_12_BM80.png [ 30.93 KiB | Viewed 3070 times ]

Attachment:
spec_ie10_vga_13_BM80.png
spec_ie10_vga_13_BM80.png [ 117.08 KiB | Viewed 3070 times ]

Ну теперь то все? Ан, нет :).


07 Apr 2016 03:48
Profile
Maniac

Joined: 12 Feb 2016 14:39
Posts: 295
Reply with quote
Моя макетка запускается неустойчиво, то все ок, то на экране мельтешение,
как-будто идет повтор от впереди стоящего символа(на телевизоре такая картинка бывает, если плохая
антенна, и на экране повторы, но у меня же не антенна :)...), хотя и не виснет, надо разбираться...
Пришлось задействовать приборы...Достал свой старый осциллограф(достался во времена сборки спектрумов),
подключил вход внешней синхронизации ко входу промежуточной защелки видео данных и смотрю сигнал
Ф1, когда вывод нормальный, импульс Ф1 находится между импульсами защелки, а когда видео
мельтешит, то они совпадают... очень странно. На модели такого эффекта я добился проинвертировав сигнал на
входе ИЕ5, формирователя Ф1, Ф2 - из этого я сделал вывод, что ИЕ5 счетчик при включении не сбрасывается,
а начинает работать с произвольного значения, и получается, что гуляет начало машинного такта ВМ80
относительно времянки видео вывода. Решил переделать формирователь Ф1 и Ф2, смоделировал и собрал на
макетке.
Attachment:
spec_ie10_vga_13_BM80_model.png
spec_ie10_vga_13_BM80_model.png [ 59.92 KiB | Viewed 3070 times ]

Attachment:
spec_ie10_vga_13_BM80_model_graf.png
spec_ie10_vga_13_BM80_model_graf.png [ 8.91 KiB | Viewed 3070 times ]

Странно, но в первый раз не сошлись результаты модели и реальной схемы,


07 Apr 2016 03:51
Profile
Maniac

Joined: 12 Feb 2016 14:39
Posts: 295
Reply with quote
опытным путем
нашел, что работает вот такой вариант схемы, которая в модели не работает...
Attachment:
spec_ie10_vga_13_BM80_real.png
spec_ie10_vga_13_BM80_real.png [ 61.34 KiB | Viewed 3070 times ]

Attachment:
spec_ie10_vga_13_BM80_real_graf.png
spec_ie10_vga_13_BM80_real_graf.png [ 13.84 KiB | Viewed 3070 times ]

К этому времени aac добился хорошей схожести модели уже нашего ВМ80:
download/file.php?id=683
осталось только разобраться с тактированием, надо подавать инверсный тактовый Ф1 на ножку Ф2...
и я свои модели начал править под ВМ80 вместо z80. Вычищая схему решил разобраться, что же не так с
чтением из памяти, что я 'костыльно' подправил, добавив статическую память...и оказалось, что
виновата модель шинника 74LS245 - 555АП6 в proteus, модель работает несколько миллисекунд правильно,
а затем у нее 'отваливается' ножка перевода в Z-состояние, вот дела! Собрал имитатор АП6 на двух 74LS573
и двух элементов 74LS32, выбросил микросхему статики, и модель отлично работает.
Attachment:
555AP6.png
555AP6.png [ 29.61 KiB | Viewed 3070 times ]

Во общем я для себя сделал вывод, что пользоваться proteus можно и нужно, и для цифровых схем с
не высокими скоростями, где влияние задержек распространения незначительно, вполне можно доверять модели,
конечно, если использовать проверенные элементы...


07 Apr 2016 03:54
Profile
Maniac

Joined: 12 Feb 2016 14:39
Posts: 295
Reply with quote
фото моей 'боевой' макетки:
Attachment:
maket_top.jpg
maket_top.jpg [ 391.04 KiB | Viewed 3068 times ]


На этом ВСЕ.

В архиве проекты моих экспериментов(proteus v8.3sp2), файлы прошивок с правками, что бы была видна
работа без нажатия на кнопки клавиатуры(запуск SD карты, выполнение DIR), исходники дисплея,
файлы для сборки монитора стандартного специалиста с SD картой из проекта специалист на FPGA,
конфигурационные файлы для эмулятора http://bashkiria-2m.narod.ru/.


Attachments:
spec_ie10_2.zip [1.1 MiB]
Downloaded 101 times
spec_ie10_1.zip [1.95 MiB]
Downloaded 102 times
07 Apr 2016 04:11
Profile
Maniac

Joined: 12 Feb 2016 14:39
Posts: 295
Reply with quote
Не давала мне спокойно спать мысль о том, что результаты моделирования не сходятся с реальной схемой.
Начал смотреть что и как. Арбитр, узел формирования доступа к памяти от ВМ80 в нужный момент времени
получился громоздкий, на двух корпусах ТМ2(3 D-триггера), и я его на последней модели переделал на
одной ТМ8,
Attachment:
spec_ie10_vga_14_BM80_CPU.png
spec_ie10_vga_14_BM80_CPU.png [ 38.06 KiB | Viewed 3044 times ]

времянку посмотрел, изменений не увидел, а в реале эту схему не проверял, так вот,
собрал эту схему на своей макетке и макетка у меня перестала работать.
Начал смотреть времянку- разбежались интервалы доступа.
Переподключил цепи формирования Ф1 и Ф2 как в модели и все заработало как часы.
Получается, что модель ВМ80 формирует свой сигнал SYNC немного короче, чем реальный ВМ80 и
я в модели на графиках не увидел разницу в длительности формируемого сигнала уже своего SYNC для
арбитра доступа в вариантах на ТМ2 и ТМ8. На реальном же ВМ80, эта схема четко отработала,
укоротив его, до нужной длительности, все временные интервалы стали на свои места, и мои,
экспериментально выбранные, неправильные, точки подключения цепей Ф1 и Ф2 вкупе с неправильной
(сдвинутой во времени) времянкой доступа позволили схеме работать(минус на минус=плюс :) )
Вот на этом действительно ВСЕ.


Attachments:
File comment: раально собранная схема на макетке, за исключением D14, которая у меня ИР9.
spec_ie10_vga_14_BM80.PDF [93.37 KiB]
Downloaded 88 times
08 Apr 2016 01:15
Profile
Doomed

Joined: 06 Oct 2006 04:17
Posts: 516
Location: г.Лянтор,Сургутского р-на,ХМАО
Reply with quote
Всем здрасьте. Это я - Fifan. Тут поздравления принимаю. :rotate:

По теме. Прекрасно!
1. Проверил конфигурации в эмуляторе - на Специалист-МХ не верно работает - идёт постоянный скролинг списка файлов.
2. По схеме. Не верно тактируется триггер формирования сигнала сброса. См. оригинальный Специалист - там подана верная частота для определённой длительности.
3. Чем отличается схема SD считывателя от используемой мною на Специалисте на FPGA? Если ничем, то поздравляю Вам удалось запустить схему на дискретных элементах?

_________________
:arrow: Сайт о ПК "Специалист" и его клонах


10 Apr 2016 04:02
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Fifan2 wrote:
Всем здрасьте. Это я - Fifan. Тут поздравления принимаю.

Рады видеть! :kruto: Зря вообще уходил... больше так не делай! :wink:

_________________
iLavr


11 Apr 2016 12:41
Profile
Doomed

Joined: 06 Oct 2006 04:17
Posts: 516
Location: г.Лянтор,Сургутского р-на,ХМАО
Reply with quote
Ещё раз привет! Вопрос к обоим. Как вам получилось вставить модель в Протеуса - пошагово - в какую папку и что ложить. У меня Протеус 7.10 и как я не старался ни диплей ни проц я не увидел.

_________________
:arrow: Сайт о ПК "Специалист" и его клонах


11 Apr 2016 20:26
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Fifan2 wrote:
Как вам получилось вставить модель в Протеуса - пошагово - в какую папку и что ложить.
У меня Протеус 7.10 и как я не старался ни диплей ни проц я не увидел.

Не ложить, а складывать :wink: (ибо ложить это нечто другое), а пошагово это делают так:
в папку: ...Labcenter Electronics\Proteus Х Professional\LIBRARY складывают файлы типа: *.IDX и *.LIB

в папку: ...Labcenter Electronics\Proteus Х Professional\MODELS складывают файлы типа: *.MDF и *.DLL

Если есть .DLL-библиотеки сопутствующие (не .DLL-модели, а вызываемые ими *.DLL), их складывают в папку:
...Labcenter Electronics\Proteus Х Professional\BIN

Иногда файлов *.IDX и *.LIB может не быть, тогда вся информация о *.DLL-модели в файлах проекта.
Файлы проекта, понятно, что находятся здесь:
...Labcenter Electronics\Proteus Х Professional\SAMPLES\...

_________________
iLavr


12 Apr 2016 04:47
Profile
Doomed

Joined: 06 Oct 2006 04:17
Posts: 516
Location: г.Лянтор,Сургутского р-на,ХМАО
Reply with quote
Спасибо проверю папки назначения.

_________________
:arrow: Сайт о ПК "Специалист" и его клонах


12 Apr 2016 07:06
Profile WWW
Doomed

Joined: 06 Oct 2006 04:17
Posts: 516
Location: г.Лянтор,Сургутского р-на,ХМАО
Reply with quote
По схеме.
1. Зачем в одной из схем буферизировать адрес при подачи его на ОЗУ SRAM?
2. Для такого количества микросхем для чего нужно буферизировать данные и адрес. Вот например, в схеме Специалиста Экспресс буфер стоит только на старших адресах.
3. Какого разрешение VGA экрана?

_________________
:arrow: Сайт о ПК "Специалист" и его клонах


12 Apr 2016 07:30
Profile WWW
Maniac

Joined: 12 Feb 2016 14:39
Posts: 295
Reply with quote
fifan wrote:
1. Проверил конфигурации в эмуляторе - на Специалист-МХ не верно работает - идёт постоянный скролинг списка файлов.

Наоборот, все ок- загрузчик отработал, с SD карты прочитался файл BIOS.BIN, на него передалось управление, а в BIOS.BIN стоит jmp на инициализацию SD, с последующим, циклическим, выполнением команды DIR... :) я же написал, что файлы прошивок 'поправлены' для запуска без клавиатуры в proteus. (Если нужна 'нормальная' работа, то в образе SD карты нужно заменить файл BIOS.BIN на не 'поправленный', тот, который указан у меня для конфига к стандартному специалистуFD).

fifan wrote:
2. По схеме. Не верно тактируется триггер формирования сигнала сброса. См. оригинальный Специалист - там подана верная частота для определённой длительности.

Это так, мне в процессе макетирования нужен был инвертор, и я его взял из ЛА3 в этой цепочке, и подал просто частотку на вход триггера, все работало стабильно, ВМ80 ресетился четко, и я оставил все как есть. Схема нарисована так, как она собрана на макетке...

fifan wrote:
3. Чем отличается схема SD считывателя от используемой мною на Специалисте на FPGA? Если ничем, то поздравляю Вам удалось запустить схему на дискретных элементах?

Ничем. Это полное повторение FPGA реализации SD считывателя на дискретах.


12 Apr 2016 12:29
Profile
Maniac

Joined: 12 Feb 2016 14:39
Posts: 295
Reply with quote
По proteus - я использую одну из последних версий 8.3sp2, в ранних версиях проекты, как я понял, сохранялись иначе.

fifan wrote:
По схеме.
1. Зачем в одной из схем буферизировать адрес при подачи его на ОЗУ SRAM?

Это отладочный момент...
fifan wrote:
2. Для такого количества микросхем для чего нужно буферизировать данные и адрес. Вот например, в схеме Специалиста Экспресс буфер стоит только на старших адресах.

я на своей макетке реализовал то и MX2 и SD, и дабы бедный ВМ80 не мучить, решил их усилить.
fifan wrote:
3. Какого разрешение VGA экрана?

800х600, синхрогенератор один в один с MX2.


12 Apr 2016 12:44
Profile
Doomed

Joined: 06 Oct 2006 04:17
Posts: 516
Location: г.Лянтор,Сургутского р-на,ХМАО
Reply with quote
Схема Специалиста-МХ2? А где МХ составляющие: RAM-диск, ВИ53, дешифратор страниц RAM-диска? Наверное схема МХ2 в режиме Стандарт, это будет правильнее.

_________________
:arrow: Сайт о ПК "Специалист" и его клонах


12 Apr 2016 20:30
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 83 posts ]  Go to page 1, 2, 3, 4, 5, 6  Next

Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.