Контроллер прерываний
Moderator: Shaos
-
- Maniac
- Posts: 287
- Joined: 05 Nov 2008 19:47
- Location: 81.28.208.238
Контроллер прерываний
Подскажите простенькую схемку контроллера прерываний, который можно
использовать в z80 и i8080. Я думаю использовать шифратор 8->3 из 155 серии
(не помню название, вроде ВИ1) + шинник.
использовать в z80 и i8080. Я думаю использовать шифратор 8->3 из 155 серии
(не помню название, вроде ВИ1) + шинник.
-
- Doomed
- Posts: 463
- Joined: 12 Feb 2016 13:39
Re: Proteus C++ DLL's
прерывания z80 посложнее, чем вм80, может, все-же первым реализовать вм80? а NMI z80 уже следующим шагом...aav8 wrote: Решил привязать прерывания.
Ест-но для начала z80 NMI.
вот вариант реализации 'контроллера прерываний' на дискретных элементахaav8 wrote: Подскажите простенькую схемку контроллера прерываний, который можно
использовать в z80 и i8080. Я думаю использовать шифратор 8->3 из 155 серии
(не помню название, вроде ВИ1) + шинник.
You do not have the required permissions to view the files attached to this post.
-
- Supreme God
- Posts: 16682
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: Proteus C++ DLL's
Схема из архива выше очень на это похожа... Но у таких простых схем есть парочка недостатков...aav8 wrote:Подскажите простенькую схемку контроллера прерываний, который можно
использовать в z80 и i8080. Я думаю использовать шифратор 8->3 из 155 серии
(не помню название, вроде ВИ1) + шинник.
1. Длительность внешнего запроса прерывания должна быть такова, чтобы i8080 успел среагировать на него,
иначе - он может его потерять...
2. Обслуженное прервание необходимо как-то "сбросить", т.е. чтобы не было так, если зависло прерывание
с самым бОльшим приоритетом, то всё зациклится на его обслуживании.
You do not have the required permissions to view the files attached to this post.
iLavr
-
- Supreme God
- Posts: 16682
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: Proteus C++ DLL's
Попадалась мне в отечественной литературе схема, которая хоть и генерит одно прерывание RST7 по таймеру,
но содержит триггер прерывания, фиксирующий прерывание и сбрасываемый по обслуживанию...
но содержит триггер прерывания, фиксирующий прерывание и сбрасываемый по обслуживанию...
You do not have the required permissions to view the files attached to this post.
iLavr
-
- Maniac
- Posts: 287
- Joined: 05 Nov 2008 19:47
- Location: 81.28.208.238
Re: Proteus C++ DLL's
Схема на 47148 самая простая, к тому-же у меня вроде есть ИВ1.
А по поводу пропуска и зависания прерывания:
Нормальные контроллеры (ВВ51, ВВ55) отрабатывают это правильно:
при готовности выставляется соответствующий сигнал, который снимется после обслуживания
устройства.
Это отлично срабатывает для входных данных.
Для выходных данных я разрешаю прерывания если есть фактические данные.
И все работает отлично (по крайней мере для ВВ51)
А по поводу пропуска и зависания прерывания:
Нормальные контроллеры (ВВ51, ВВ55) отрабатывают это правильно:
при готовности выставляется соответствующий сигнал, который снимется после обслуживания
устройства.
Это отлично срабатывает для входных данных.
Для выходных данных я разрешаю прерывания если есть фактические данные.
И все работает отлично (по крайней мере для ВВ51)
-
- Supreme God
- Posts: 16682
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: Контроллер прерываний
Пока я занимался программированием 1816ВЕ48, размышлял по пути о её простенькой системе
прерываний, и пришел к неожиданному выводу, что к К580ВМ80 простенькую систему прерываний
в общем-то прикрутить не так-то и просто без дополнительных аппаратных затрат...
Либо ВК28(38) выдаёт один вектор прерывания RST7, либо этот же вектор можно обеспечить
8-ю резисторами на +5В, если делать без ВК28(38)...
Вспомнил я и про эту вот схему:

если её слегка аппаратно доработать, то нетрудно сделать 4 прерывания, сильно не усложняя...
Но ведь есть же довольно простой контроллер прерываний 589ИК14 !
И когда я набрал его в поиске, то увидел, что он есть в местном магазине по смешной цене!
Однако, когда я стал разбираться с аппаратным включением этого контроллера, то оказалось,
что не так-то уж всё и просто с ним... более того, по отношению к системе на БИС семейства
580, мне показалось, что это очень даже не просто! Как бы для других целей этот контроллер
изначально создавался... Вопрос вот какой: если кто-либо пользовался этим контроллером прерываний 589ИК14, объясните,
как его цеплять в систему на основе К580ВМ80, можно ли это в принципе и есть ли пример
практической схемы?
прерываний, и пришел к неожиданному выводу, что к К580ВМ80 простенькую систему прерываний
в общем-то прикрутить не так-то и просто без дополнительных аппаратных затрат...
Либо ВК28(38) выдаёт один вектор прерывания RST7, либо этот же вектор можно обеспечить
8-ю резисторами на +5В, если делать без ВК28(38)...
Вспомнил я и про эту вот схему:
если её слегка аппаратно доработать, то нетрудно сделать 4 прерывания, сильно не усложняя...
Но ведь есть же довольно простой контроллер прерываний 589ИК14 !

И когда я набрал его в поиске, то увидел, что он есть в местном магазине по смешной цене!

что не так-то уж всё и просто с ним... более того, по отношению к системе на БИС семейства
580, мне показалось, что это очень даже не просто! Как бы для других целей этот контроллер
изначально создавался... Вопрос вот какой: если кто-либо пользовался этим контроллером прерываний 589ИК14, объясните,
как его цеплять в систему на основе К580ВМ80, можно ли это в принципе и есть ли пример
практической схемы?
You do not have the required permissions to view the files attached to this post.
iLavr
-
- Doomed
- Posts: 487
- Joined: 05 Nov 2007 05:08
- Location: Украина
Re: Контроллер прерываний
по-моему, в СМ-1800 на таком было сделано (я плату видел в молодости
)

-
- Supreme God
- Posts: 16682
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: Контроллер прерываний
В общем тень на плетень наводят источники, где 589ИК14 описывают как часть комплекта 589.
Но в справочнике у Шахнова всё написано куда как более понятно! А вот здесь, если я не ошибаюсь, копия из Шахнова:
http://dplm2008.narod.ru/str/komplects/ ... 9ik14.html
Насколько я всё понял, прочитав этот материал, 589ИК14 можно вешать прямо на шины микропроцессорной
системы на комплекте 580.
По-хорошему после него перед шиной данных надо поставить К580ИР83, поскольку код прерывания на выходе -
инверсный... Но и по-плохому можно сделать, по-нищебродски: на шину данных - резисторы к +5В, и прямо на них -
выходы 589ИК14 — на D5, D4, D3. Выходы у него - с открытым коллектором... Возникнет небольшая путаница в приоритетах, но работать по идее - должно!
Тем более, если мы и каскадировать его не собираемся...
Надо купить: 14 Р ныне - это не деньги...
Это просто УЖОССНАХ!Блок приоритетного прерывания К589ИК14 ... При совместном использовании БМУ К589ИК01 и БПП К589ИК14 в БПП вырабатывается сигнал, определяющий установку адреса микрокоманды на МА кодом ВУ, в том числе выходным кодом БПП.

Но в справочнике у Шахнова всё написано куда как более понятно! А вот здесь, если я не ошибаюсь, копия из Шахнова:
http://dplm2008.narod.ru/str/komplects/ ... 9ik14.html
Насколько я всё понял, прочитав этот материал, 589ИК14 можно вешать прямо на шины микропроцессорной
системы на комплекте 580.
По-хорошему после него перед шиной данных надо поставить К580ИР83, поскольку код прерывания на выходе -
инверсный... Но и по-плохому можно сделать, по-нищебродски: на шину данных - резисторы к +5В, и прямо на них -
выходы 589ИК14 — на D5, D4, D3. Выходы у него - с открытым коллектором... Возникнет небольшая путаница в приоритетах, но работать по идее - должно!

Тем более, если мы и каскадировать его не собираемся...
Надо купить: 14 Р ныне - это не деньги...
You do not have the required permissions to view the files attached to this post.
iLavr
-
- Supreme God
- Posts: 16682
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: Контроллер прерываний
Может показаться странным: чего это я занимался программированием 1816ВЕ48, а размышлял о прерываниях К580ВМ80?Lavr wrote:Пока я занимался программированием 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
-
- Doomed
- Posts: 487
- Joined: 05 Nov 2007 05:08
- Location: Украина
Re: Контроллер прерываний
для нескольких прерываний ВН59 не вариант? вместо ИК14? если бы в Украине был - я бы выслал парочку, все равно сгниют...
в Z80 легко - и сигнал сразу, и вход отдельный есть.
+++++++++++++++++++
кстати, 8228/8238 при подаче куда-то напряжения переходят в какой-то режим, что могут формировать RST7 по какому-то сигналу. у наших про эту фичу не встречал (или не заметил), а в буржуазном мануале наткнулся, думаю, если наши сдирали один в один, может, и в наших есть такая фича (ВК38 у меня есть, а вот 8238 нет)
-- а, при подаче сигнала INT 8228 отлавливает INTA, но шина остается закрыто-подтянутой и получается RST7
+++++++++++++++++++
нашел:
в Z80 легко - и сигнал сразу, и вход отдельный есть.
+++++++++++++++++++
кстати, 8228/8238 при подаче куда-то напряжения переходят в какой-то режим, что могут формировать RST7 по какому-то сигналу. у наших про эту фичу не встречал (или не заметил), а в буржуазном мануале наткнулся, думаю, если наши сдирали один в один, может, и в наших есть такая фича (ВК38 у меня есть, а вот 8238 нет)
-- а, при подаче сигнала INT 8228 отлавливает INTA, но шина остается закрыто-подтянутой и получается RST7
+++++++++++++++++++
нашел:
в двух словах: если на выход INTA контроллера шины подать 12В через 1кОм, то при подаче прерывания на проц, когда он выставляет DBIN, он получает RST7 от 8238.The I NT A control signal is normally -used to gate the "inter-
rupt instruction port" onto the bus. It also provides a
special feature in the 8228/38. If only one basic vector is
needed in the interrupt structure, such as in small systems,
the 8228/38 can automatically insert a R ST 7 instruction on-
to the bus at the proper time. To use this option, simply con-
nect the I NT A output of the 8228/38 (pin 23) to the +12
volt supply through a series resistor (1 K ohms). The voltage
is sensed internally by the 8228/38 and logic is "set-up" so
that when the DB I N input is active a R ST 7 instruction is
gated on to the bus when an interrupt is acknowledged. This
feature provides a single interrupt vector with no additional
components, such as an interrupt instruction port.
-
- Supreme God
- Posts: 16682
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: Контроллер прерываний
Системный контроллер 580ВК28(38) мы тут с тобой давно уже обсуждали, и никто не смог точно сказатьshoorick wrote:для нескольких прерываний ВН59 не вариант? вместо ИК14?
...
кстати, 8228/8238 при подаче куда-то напряжения переходят в какой-то режим, что могут формировать RST7 по какому-то сигналу. у наших про эту фичу не встречал
делают они самостоятельно RST7 или не делают. Но если добавить 580ВН59, то её RST7 уже совсем не нужен.
Так что контроллер прерываний 580ВН59 - я считаю - не вариант, поскольку в связке с 580ВК28(38) - это
и будет самая обычная система прерываний для микропроцессорной системы на комплекте 580.
И потом: 580ВН59 при старте надо запрограммировать, а 589ИК14 - более простая, ей после прерывания
только ответить надо, но можно и не отвечать, если прерывание подано корректно.
Она столь простая внутри, как то, что мы выше обсуждали сконструировать сами:
You do not have the required permissions to view the files attached to this post.
iLavr
-
- Supreme God
- Posts: 16682
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: Контроллер прерываний
В общем пошел я сегодня и купил 6 штук 589ИК14 из 9-ти... три штуки оставил...Lavr wrote:Но ведь есть же довольно простой контроллер прерываний 589ИК14 !![]()
И когда я набрал его в поиске, то увидел, что он есть в местном магазине по смешной цене!![]()

Перед тем как пойти в магазин, смотрел я его прайсы, и они меня развеселили!

в количестве 30 штук просто из жадности...

А вот три штуки К580ИК80А я не купил именно из-за букв ИК, мне их предлагали по 20 рублей...
И я смотрю, все эти годы некупленные мной 3 штуки К580ИК80А всё дорожают и дорожают!

You do not have the required permissions to view the files attached to this post.
iLavr
-
- Doomed
- Posts: 487
- Joined: 05 Nov 2007 05:08
- Location: Украина
Re: Контроллер прерываний
у меня ик80 работали стабильнее, чем вм80. наверное, вм80 были более высокочастотные и их клинило от помех генератора синхроимпульсов Специалиста 

-
- Supreme God
- Posts: 16682
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: Контроллер прерываний
А я читал, что 580ИК80 более дохлые по нагрузочной способности, поэтому меня и обидело,shoorick wrote:у меня ик80 работали стабильнее, чем вм80.
что мне их предлагают дороже...

Пусть лежат... может быть, спустя время, их поместят в музей...

P.S. Да, и ещё пишут, что 580ИК80 не могут работать от +5В, +5В, -0В, а К580ВМ80А - могут,
сам проверял 2 из 30-ти...

iLavr
-
- Doomed
- Posts: 487
- Joined: 05 Nov 2007 05:08
- Location: Украина
Re: Контроллер прерываний
ну да, более новые лучше, но в Спеце лучше работали более старые (по моему личному опыту)