nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 19 Apr 2024 17:08



Reply to topic  [ 13 posts ] 
К580ВК38 и Proteus - нужна помощь 
Author Message
Doomed

Joined: 18 Nov 2013 02:38
Posts: 662
Location: Москва
Reply with quote
Собрал тут платку такую небольшую на ВМ80 и К580ВК38:

Attachment:
photo_2023-02-21_12-53-47.jpg
photo_2023-02-21_12-53-47.jpg [ 200.93 KiB | Viewed 4327 times ]


Хотел отлаживать в Протеусе, но столкнулся с не пониманием, как правильно сэмулировать К580ВК38, потому что мне нужны сигналы /IOWR /IORD, /MEMW, /MEMR. В качестве IO у меня 8255, в качестве памяти - ROM и RAM.
Использую x80.dll r13 и 8255.dll откуда-то с этого форума.
Сделал как-то так:

Attachment:
vk.PNG
vk.PNG [ 36 KiB | Viewed 4327 times ]


И оно даже как-то вроде бы и работает, но если поднять частоту F1 до 3 МГц, то протеус падает через некоторое время. А если и не падает, то сыплет ошибками о коллизиях на DB и D и люто, бешено тормозит.
Проект пока простой - просто четыре строчки на экран выводятся и потом счетчик бесконечно увеличивается.

Подскажите пожалуйста, как в Протеусе грамотно реализовать ВК38 или как получить сигналы с 8080 такие как /IOWR /IORD, /MEMW, /MEMR что бы при этом это не так люто тормозило и не сыпало ошибками о коллизиях?
Прикладываю проект от Proteus, прошивку и исходники.


Attachments:
8080.zip [100.87 KiB]
Downloaded 137 times

_________________
https://t.me/tronix_blog
21 Feb 2023 04:35
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Tronix wrote:
...как правильно сэмулировать К580ВК38, потому что мне нужны сигналы /IOWR /IORD, /MEMW, /MEMR.

Да вроде как вот так:

Image

Подробности мы обсуждали здесь:
http://www.nedopc.org/forum/viewtopic.php?p=97973#p97973

И библиотеки бери не какие-то, а последние версии вот здесь:
http://www.nedopc.org/forum/viewtopic.php?f=81&t=19632

_________________
iLavr


21 Feb 2023 09:38
Profile
Doomed

Joined: 18 Nov 2013 02:38
Posts: 662
Location: Москва
Reply with quote
Вроде как-то так и сделано.
Темы видел.
Библиотеки из той темы.

Но, повторюсь с проблемой - оно "вроде как то работает", но - много сообщений о коллизиях на шине данных и внутренней и внешней, из-за чего в лог постоянно сыплют ошибками, из-за чего и так не быстрая симуляция начинает тормозить лютейше, а при определенных условиях и вовсе отваливаться.

Таких проблем нет на мемори-маппед устройствах ввода вывода, как например это сделано в Специалисте или Радио-86РК, проекты которых в Proteus тут есть на форуме. Но у меня порты IO используют IN и OUT инструкции, а значит хочется как-то по человечески получить сигналы /IOWR и /IORD с модели процессора 8080. И по человечески пока не получается.

_________________
https://t.me/tronix_blog


21 Feb 2023 09:51
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Tronix wrote:
Таких проблем нет на мемори-маппед устройствах ввода вывода, как например это сделано в Специалисте или Радио-86РК, проекты которых в Proteus тут есть на форуме. Но у меня порты IO используют IN и OUT инструкции, а значит хочется как-то по человечески получить сигналы /IOWR и /IORD с модели процессора 8080. И по человечески пока не получается.

А если проверить так: этот вариант ВК38 оставь как есть, но обратись к УВВ сигналами обращения к памяти?
Всё продолжится?
Как-то локализовать проблему надо: что вызывает конфликт, схема-то по сути лишь коммутатор сигналов
DBIN и /WR.

Я, к сожалению, ни разу не делал обращение к УВВ по IN и OUT с этой моделью по чисто историческим причинам. :-?


P.S. Обрати внимание вот на что: как-то так вышло, что изначально модель разработали как корпус
К580ВМ80, но с системой команд z80, и насколько я знаю, сигнал С1 для модели чисто фиктивный,
а все кишки модели привязаны к С2. Может STATUS неправильно фиксируется?

_________________
iLavr


21 Feb 2023 12:54
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Lavr wrote:
Я, к сожалению, ни разу не делал обращение к УВВ по IN и OUT с этой моделью по чисто историческим причинам. :-?

Под руками был совсем недавний проект, я в нём использовал сигнал /INTA через STATUS 580BM80.
У меня всё работало...

Быстро переделал проект под 580ВК38(28) - тоже всё работает, никаких конфликтов нет.
Attachment:
Tst580ВК38.PNG
Tst580ВК38.PNG [ 42.91 KiB | Viewed 4228 times ]

Выкладываю тебе проект с исходником и .dll процессора, которую я использую.
Attachment:
TestBK38.zip [71.43 KiB]
Downloaded 137 times

Если не будет глюков, то работает он так: включаешь - моргают индикаторы, нажимаешь -->EI,
должен загореться индикатор на выводе INTE, после чего нажимаешь INT, индикаторы будут
моргать по другому, индикатор на выводе INTE погаснет.
Кнопка RETI возвращает всё в начальную позицию. Это был тест RST7 от резисторов на шине.


P.S. Но может так случиться, что у тебя глючит 74LS245 (см.здесь)

_________________
iLavr


21 Feb 2023 15:23
Profile
Doomed

Joined: 18 Nov 2013 02:38
Posts: 662
Location: Москва
Reply with quote
Вообщем, пока спал подумал примерно то же самое - что надо просто выкинуть LS245.
Проснулся и увидел что у меня во-первых RAM подключена была к D, а не к DB. А во-вторых выкинул LS245 и подключил все RAM,ROM и PPI к D. Стало покомфортнее. Продолжаю вести наблюдение.

_________________
https://t.me/tronix_blog


22 Feb 2023 00:30
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Tronix wrote:
Проснулся и увидел что у меня во-первых RAM подключена была к D, а не к DB.

Я про тебя только недавно, примерно месяц назад, вспоминал вот именно в этом плане... :lol:
Что есть у нас такой Tronix, который любит всех озадачить каким-то хитрозадуманным вопросом. :roll:
Все недели три так гадают "по фотокарточке", выдвигают разные космологические теории... :-?
А в итоге Tronix пишет:"Да я просто забыл тут припаять вывод. Всем - спасибо, все - свободны!" :ebiggrin:


P.S. Если у тебя Proteus версии 7.7 и старше, и ты уверен, что всё делаешь правильно, то сообщения
о конфликтах в лог можно просто отключить. Где отключить, вроде как в хелп написано.

_________________
iLavr


22 Feb 2023 05:42
Profile
Doomed

Joined: 18 Nov 2013 02:38
Posts: 662
Location: Москва
Reply with quote
В общем какими-то танцами с бубном удалось худо-бедно завершить написание прошивки для часиков в протеус, но с бесконечными тормозами, падениями симуляции, и не реальной скоростью с последующим пересчетом коэффециэнтов для реала.

Проц в реале у меня работает на 3 МГц (27 МГц кристал на ГФ24, максималка по интеловскому даташиту на него).
В протеусе запуск симуляции на такой частоте (3 МГц) - гарантированное падение симуляции на первых миллисекундах. Поэтому подавал на вход 8080 частоту 1.5 Мгц (в два раза ниже реальной) - в таком случае, если со схемы убрать вообще все кнопки-лампочки и прочее не нужно, отключить почти все визуальные инструменты, все резисторы перевести в "DIGITAL", использовать только примитивы типа "NOT", "NAND", а не их аналоги из блоков 74LS00, 74LS04 - то симуляция иногда все-же запускается, хотя и с дичайшими тормозами.

Проц, на C1 которого подается меандр 1.5 MHz:
Attachment:
8080.PNG
8080.PNG [ 51.54 KiB | Viewed 3873 times ]


Блок-заменитель ВК38 выглядел в конечном счете так:
Attachment:
vk38.PNG
vk38.PNG [ 35.79 KiB | Viewed 3873 times ]


RAM-ROM:
Attachment:
ram_rom.PNG
ram_rom.PNG [ 42.04 KiB | Viewed 3873 times ]


Все библиотеки (x80.dll и 8255.dll) из темы "самописные DLL для протеус" последние на данный момент.
Так вот вопрос: Кто-то пробовал использовать x80.dll с частотой симуляции > 1.5 MHz? У вас все работает?
Просто например если сравнивать с 8048.dll, та нормально молотит на 12 MHz без проблем.

По поводу 8255.dll тоже есть различия с реалом. Например если порт A настроен как выход, некоторые его биты установлены в 1, при записи управляющего слова, которое скажем не трогает порт A, а меняет порт C на вход, то латчи в порту A сбрасываются - теряется ранее установленные биты на порту A - это на реале. В симуляции - не теряются.

_________________
https://t.me/tronix_blog


27 Feb 2023 23:27
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Tronix wrote:
Так вот вопрос: Кто-то пробовал использовать x80.dll с частотой симуляции > 1.5 MHz? У вас все работает?.

Я чаще всего на 2 МГц и работаю, если только не надо что-то притормозить и посмотреть медленно.
Процессор и x80.dll не глючили никогда. Глючит чаще всего что-то постороннее.

P.S. Вот проект, где процессор и x80.dll - на 2.5 МГц, и всё работает, не глючит и не падает:
http://www.nedopc.org/forum/viewtopic.php?p=168068#p168068

P.P.S. И для тебя я выше проект выкладывал на 2.5 МГц. Что, глючит и падает? :roll:

_________________
iLavr


27 Feb 2023 23:43
Profile
Doomed

Joined: 18 Nov 2013 02:38
Posts: 662
Location: Москва
Reply with quote
Lavr wrote:
Я чаще всего на 2 МГц и работаю, если только не надо что-то притормозить и посмотреть медленно.
Процессор и x80.dll не глючили никогда. Глючит чаще всего что-то постороннее.


Ну хрен его знает тогда, я уже исключал 8255 из симуляции, всякие расширители i2c портов, и схема практически соответствовала вышеприведенным картинкам - то есть просто 8080 проц, схемка эмуляции ВК38 и RAM и ROM. - не повлияло на общее поведение и точно так же падала на частоте >1.5 MHz . Посторонним здесь, получается, оставалась только x80.dll.

Ну да и ладно, хоть и через костыли, тормоза и падения, но все-таки лучше, чем постоянно на программаторе перепрошивать EEPROM'ку. Так что спасибо авторам и за то, что есть.

Attachment:
photo_2023-02-23_15-07-07.jpg
photo_2023-02-23_15-07-07.jpg [ 218.15 KiB | Viewed 3860 times ]

_________________
https://t.me/tronix_blog


27 Feb 2023 23:54
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Tronix wrote:
Посторонним здесь, получается, оставалась только x80.dll.

Видимо, ты не умеешь её готовить. гыгыгы :ebiggrin:

_________________
iLavr


27 Feb 2023 23:58
Profile
Doomed

Joined: 18 Nov 2013 02:38
Posts: 662
Location: Москва
Reply with quote
Lavr wrote:
Tronix wrote:
Посторонним здесь, получается, оставалась только x80.dll.

Видимо, ты не умеешь её готовить. гыгыгы :ebiggrin:


Скорее всего так. Ну да и ладно, проехали.

_________________
https://t.me/tronix_blog


28 Feb 2023 00:01
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Tronix wrote:
Lavr wrote:
Tronix wrote:
Посторонним здесь, получается, оставалась только x80.dll.
Видимо, ты не умеешь её готовить. гыгыгы :ebiggrin:
Скорее всего так. Ну да и ладно, проехали.

Да я просто на твои картинки смотрю - криво всё... но я помню, что ты начинал с 8086 и 580ВМ80 - тебе чЮжд... :lol:

_________________
iLavr


28 Feb 2023 00:07
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 13 posts ] 

Who is online

Users browsing this forum: No registered users and 50 guests


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.