|
nedoPC.orgElectronics hobbyists community established in 2002 |
|
Author |
Message |
aav8
Maniac
Joined: 05 Nov 2008 19:47 Posts: 287 Location: 81.28.208.238
|
Подскажите простенькую схемку контроллера прерываний, который можно использовать в z80 и i8080. Я думаю использовать шифратор 8->3 из 155 серии (не помню название, вроде ВИ1) + шинник.
|
26 Feb 2016 22:45 |
|
|
PVV
Doomed
Joined: 12 Feb 2016 13:39 Posts: 463
|
прерывания z80 посложнее, чем вм80, может, все-же первым реализовать вм80? а NMI z80 уже следующим шагом... вот вариант реализации 'контроллера прерываний' на дискретных элементах
|
27 Jun 2016 22:28 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Схема из архива выше очень на это похожа... Но у таких простых схем есть парочка недостатков... 1. Длительность внешнего запроса прерывания должна быть такова, чтобы i8080 успел среагировать на него, иначе - он может его потерять... 2. Обслуженное прервание необходимо как-то "сбросить", т.е. чтобы не было так, если зависло прерывание с самым бОльшим приоритетом, то всё зациклится на его обслуживании.
_________________ iLavr
|
29 Jun 2016 17:03 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Попадалась мне в отечественной литературе схема, которая хоть и генерит одно прерывание RST7 по таймеру, но содержит триггер прерывания, фиксирующий прерывание и сбрасываемый по обслуживанию...
_________________ iLavr
|
29 Jun 2016 17:14 |
|
|
aav8
Maniac
Joined: 05 Nov 2008 19:47 Posts: 287 Location: 81.28.208.238
|
Схема на 47148 самая простая, к тому-же у меня вроде есть ИВ1. А по поводу пропуска и зависания прерывания: Нормальные контроллеры (ВВ51, ВВ55) отрабатывают это правильно: при готовности выставляется соответствующий сигнал, который снимется после обслуживания устройства. Это отлично срабатывает для входных данных. Для выходных данных я разрешаю прерывания если есть фактические данные. И все работает отлично (по крайней мере для ВВ51)
|
01 Jul 2016 19:50 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Пока я занимался программированием 1816ВЕ48, размышлял по пути о её простенькой системе прерываний, и пришел к неожиданному выводу, что к К580ВМ80 простенькую систему прерываний в общем-то прикрутить не так-то и просто без дополнительных аппаратных затрат... Либо ВК28(38) выдаёт один вектор прерывания RST7, либо этот же вектор можно обеспечить 8-ю резисторами на +5В, если делать без ВК28(38)... Вспомнил я и про эту вот схему: если её слегка аппаратно доработать, то нетрудно сделать 4 прерывания, сильно не усложняя... Но ведь есть же довольно простой контроллер прерываний 589ИК14 ! И когда я набрал его в поиске, то увидел, что он есть в местном магазине по смешной цене! Однако, когда я стал разбираться с аппаратным включением этого контроллера, то оказалось, что не так-то уж всё и просто с ним... более того, по отношению к системе на БИС семейства 580, мне показалось, что это очень даже не просто! Как бы для других целей этот контроллер изначально создавался... Вопрос вот какой: если кто-либо пользовался этим контроллером прерываний 589ИК14, объясните, как его цеплять в систему на основе К580ВМ80, можно ли это в принципе и есть ли пример практической схемы?
_________________ iLavr
|
14 Dec 2021 19:19 |
|
|
shoorick
Doomed
Joined: 05 Nov 2007 05:08 Posts: 487 Location: Украина
|
по-моему, в СМ-1800 на таком было сделано (я плату видел в молодости )
|
15 Dec 2021 03:01 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
В общем тень на плетень наводят источники, где 589ИК14 описывают как часть комплекта 589. Это просто УЖОССНАХ! Но в справочнике у Шахнова всё написано куда как более понятно! А вот здесь, если я не ошибаюсь, копия из Шахнова: http://dplm2008.narod.ru/str/komplects/k589/k589_k589ik14.htmlНасколько я всё понял, прочитав этот материал, 589ИК14 можно вешать прямо на шины микропроцессорной системы на комплекте 580. По-хорошему после него перед шиной данных надо поставить К580ИР83, поскольку код прерывания на выходе - инверсный... Но и по-плохому можно сделать, по-нищебродски: на шину данных - резисторы к +5В, и прямо на них - выходы 589ИК14 — на D5, D4, D3. Выходы у него - с открытым коллектором... Возникнет небольшая путаница в приоритетах, но работать по идее - должно! Тем более, если мы и каскадировать его не собираемся... Надо купить: 14 Р ныне - это не деньги...
_________________ iLavr
|
15 Dec 2021 06:00 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
| | | | Lavr wrote: Пока я занимался программированием 1816ВЕ48, размышлял по пути о её простенькой системе прерываний, и пришел к неожиданному выводу, что к К580ВМ80 простенькую систему прерываний в общем-то прикрутить не так-то и просто без дополнительных аппаратных затрат... | | | | |
Может показаться странным: чего это я занимался программированием 1816ВЕ48, а размышлял о прерываниях К580ВМ80? Дело в том, что в 1816ВЕ48 сканирование 7-сегментного индикатора выполнено по прерываниям, и это весьма-таки удобная фича! В "Специалисте" прерываний по простоте его не было... и даже когда таймер К580ВИ53 поставили, то всё-равно прерываний не приделали, а ведь даже в сравнимом по простоте ZX-Spectrum механизм прерываний задействован! И это многие вещи упрощает! Не надо мучиться с программным поллингом порой! Ну пусть мы введём единственное простейшее прерывание - RST7 - резисторами от +5В - на шину данных... Но на адресе 0038Н - в "Специалисте" ОЗУ, а в ОЗУ может быть что угодно... Идея вот какая: у "Специалиста" (да и не только у него) есть такая аппаратная фича: при начальном старте аппаратно системное ПЗУ подменяет собой всю память, чтобы подсунуть процессору код с адреса 0000Н. После чего идёт JMP на реальный адрес посадки системного ПЗУ, где это распределение памяти отключают. А что, если применить эту фичу и для прерывания RST7 ? При разрешенных прерываниях отлавливаем D-триггером из STATUS бит обработки прерывания, этим сигналом притягиваем системное ПЗУ в нулевые адреса, и по адресу 0038Н в ПЗУ будет начало обработчика прерывания. Он, как и положено, делает JMP на реальный адрес системного ПЗУ, карта памяти восстанавливается, а вот дальше из системных ячеек ОЗУ считывается реальный адрес обслуживания прерывания. Такой трюк был еще в мониторе DDT от SP-580 - можно было программно подменить процедуру вывода на экран, к примеру... но в нашем случае мы получаем программируемое прерывание! Такая вот идейка с прерываниями брезжит...
_________________ iLavr
|
15 Dec 2021 08:58 |
|
|
shoorick
Doomed
Joined: 05 Nov 2007 05:08 Posts: 487 Location: Украина
|
для нескольких прерываний ВН59 не вариант? вместо ИК14? если бы в Украине был - я бы выслал парочку, все равно сгниют... в Z80 легко - и сигнал сразу, и вход отдельный есть. +++++++++++++++++++ кстати, 8228/8238 при подаче куда-то напряжения переходят в какой-то режим, что могут формировать RST7 по какому-то сигналу. у наших про эту фичу не встречал (или не заметил), а в буржуазном мануале наткнулся, думаю, если наши сдирали один в один, может, и в наших есть такая фича (ВК38 у меня есть, а вот 8238 нет) -- а, при подаче сигнала INT 8228 отлавливает INTA, но шина остается закрыто-подтянутой и получается RST7 +++++++++++++++++++ нашел: в двух словах: если на выход INTA контроллера шины подать 12В через 1кОм, то при подаче прерывания на проц, когда он выставляет DBIN, он получает RST7 от 8238.
|
15 Dec 2021 09:05 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Системный контроллер 580ВК28(38) мы тут с тобой давно уже обсуждали, и никто не смог точно сказать делают они самостоятельно RST7 или не делают. Но если добавить 580ВН59, то её RST7 уже совсем не нужен. Так что контроллер прерываний 580ВН59 - я считаю - не вариант, поскольку в связке с 580ВК28(38) - это и будет самая обычная система прерываний для микропроцессорной системы на комплекте 580. И потом: 580ВН59 при старте надо запрограммировать, а 589ИК14 - более простая, ей после прерывания только ответить надо, но можно и не отвечать, если прерывание подано корректно. Она столь простая внутри, как то, что мы выше обсуждали сконструировать сами:
_________________ iLavr
|
15 Dec 2021 17:30 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
В общем пошел я сегодня и купил 6 штук 589ИК14 из 9-ти... три штуки оставил... Перед тем как пойти в магазин, смотрел я его прайсы, и они меня развеселили! Несколько лет назад я в этом магазине скупил все микропроцессоры К580ВМ80А по 17 рублейв количестве 30 штук просто из жадности... А вот три штуки К580ИК80А я не купил именно из-за букв ИК, мне их предлагали по 20 рублей... И я смотрю, все эти годы некупленные мной 3 штуки К580ИК80А всё дорожают и дорожают!
_________________ iLavr
|
16 Dec 2021 06:04 |
|
|
shoorick
Doomed
Joined: 05 Nov 2007 05:08 Posts: 487 Location: Украина
|
у меня ик80 работали стабильнее, чем вм80. наверное, вм80 были более высокочастотные и их клинило от помех генератора синхроимпульсов Специалиста
|
16 Dec 2021 06:07 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
А я читал, что 580ИК80 более дохлые по нагрузочной способности, поэтому меня и обидело, что мне их предлагают дороже... Пусть лежат... может быть, спустя время, их поместят в музей... P.S. Да, и ещё пишут, что 580ИК80 не могут работать от +5В, +5В, -0В, а К580ВМ80А - могут, сам проверял 2 из 30-ти...
_________________ iLavr
|
16 Dec 2021 06:19 |
|
|
shoorick
Doomed
Joined: 05 Nov 2007 05:08 Posts: 487 Location: Украина
|
ну да, более новые лучше, но в Спеце лучше работали более старые (по моему личному опыту)
|
16 Dec 2021 06:50 |
|
|
Who is online |
Users browsing this forum: No registered users and 7 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
|
|