nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 28 Mar 2024 01:57



Reply to topic  [ 17 posts ]  Go to page 1, 2  Next
Контроллер прерываний 
Author Message
Maniac

Joined: 05 Nov 2008 19:47
Posts: 287
Location: 81.28.208.238
Reply with quote
Подскажите простенькую схемку контроллера прерываний, который можно
использовать в z80 и i8080. Я думаю использовать шифратор 8->3 из 155 серии
(не помню название, вроде ВИ1) + шинник.


26 Feb 2016 22:45
Profile
Doomed

Joined: 12 Feb 2016 13:39
Posts: 463
Reply with quote
aav8 wrote:
Решил привязать прерывания.
Ест-но для начала z80 NMI.

прерывания z80 посложнее, чем вм80, может, все-же первым реализовать вм80? а NMI z80 уже следующим шагом...

aav8 wrote:
Подскажите простенькую схемку контроллера прерываний, который можно
использовать в z80 и i8080. Я думаю использовать шифратор 8->3 из 155 серии
(не помню название, вроде ВИ1) + шинник.

Attachment:
TitusInterrupts.pdf [176.88 KiB]
Downloaded 470 times
вот вариант реализации 'контроллера прерываний' на дискретных элементах


27 Jun 2016 22:28
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
aav8 wrote:
Подскажите простенькую схемку контроллера прерываний, который можно
использовать в z80 и i8080. Я думаю использовать шифратор 8->3 из 155 серии
(не помню название, вроде ВИ1) + шинник.

Схема из архива выше очень на это похожа...
Attachment:
8080_RSTN.gif
8080_RSTN.gif [ 22.73 KiB | Viewed 19036 times ]

Но у таких простых схем есть парочка недостатков...
1. Длительность внешнего запроса прерывания должна быть такова, чтобы i8080 успел среагировать на него,
иначе - он может его потерять...
2. Обслуженное прервание необходимо как-то "сбросить", т.е. чтобы не было так, если зависло прерывание
с самым бОльшим приоритетом, то всё зациклится на его обслуживании.

_________________
iLavr


29 Jun 2016 17:03
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Попадалась мне в отечественной литературе схема, которая хоть и генерит одно прерывание RST7 по таймеру,
но содержит триггер прерывания, фиксирующий прерывание и сбрасываемый по обслуживанию...
Attachment:
8080_RST7.gif
8080_RST7.gif [ 45.82 KiB | Viewed 19410 times ]

_________________
iLavr


29 Jun 2016 17:14
Profile
Maniac

Joined: 05 Nov 2008 19:47
Posts: 287
Location: 81.28.208.238
Reply with quote
Схема на 47148 самая простая, к тому-же у меня вроде есть ИВ1.
А по поводу пропуска и зависания прерывания:
Нормальные контроллеры (ВВ51, ВВ55) отрабатывают это правильно:
при готовности выставляется соответствующий сигнал, который снимется после обслуживания
устройства.
Это отлично срабатывает для входных данных.
Для выходных данных я разрешаю прерывания если есть фактические данные.
И все работает отлично (по крайней мере для ВВ51)


01 Jul 2016 19:50
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Пока я занимался программированием 1816ВЕ48, размышлял по пути о её простенькой системе
прерываний, и пришел к неожиданному выводу, что к К580ВМ80 простенькую систему прерываний
в общем-то прикрутить не так-то и просто без дополнительных аппаратных затрат...

Либо ВК28(38) выдаёт один вектор прерывания RST7, либо этот же вектор можно обеспечить
8-ю резисторами на +5В, если делать без ВК28(38)...

Вспомнил я и про эту вот схему:

Image

если её слегка аппаратно доработать, то нетрудно сделать 4 прерывания, сильно не усложняя...

Но ведь есть же довольно простой контроллер прерываний 589ИК14 ! :roll:
И когда я набрал его в поиске, то увидел, что он есть в местном магазине по смешной цене! :lol:
Attachment:
589ИК14.jpg
589ИК14.jpg [ 27.67 KiB | Viewed 6813 times ]

Однако, когда я стал разбираться с аппаратным включением этого контроллера, то оказалось,
что не так-то уж всё и просто с ним... более того, по отношению к системе на БИС семейства
580, мне показалось, что это очень даже не просто! Как бы для других целей этот контроллер
изначально создавался...
Attachment:
К589ИК14_690.jpg
К589ИК14_690.jpg [ 24.77 KiB | Viewed 6813 times ]

Вопрос вот какой: если кто-либо пользовался этим контроллером прерываний 589ИК14, объясните,
как его цеплять в систему на основе К580ВМ80, можно ли это в принципе и есть ли пример
практической схемы?

_________________
iLavr


14 Dec 2021 19:19
Profile
Doomed
User avatar

Joined: 05 Nov 2007 05:08
Posts: 487
Location: Украина
Reply with quote
по-моему, в СМ-1800 на таком было сделано (я плату видел в молодости :) )


15 Dec 2021 03:01
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
В общем тень на плетень наводят источники, где 589ИК14 описывают как часть комплекта 589.
Quote:
Блок приоритетного прерывания К589ИК14 ... При совместном использовании БМУ К589ИК01 и БПП К589ИК14 в БПП вырабатывается сигнал, определяющий установку адреса микрокоманды на МА кодом ВУ, в том числе выходным кодом БПП.
Это просто УЖОССНАХ! :o

Но в справочнике у Шахнова всё написано куда как более понятно! А вот здесь, если я не ошибаюсь, копия из Шахнова:
http://dplm2008.narod.ru/str/komplects/k589/k589_k589ik14.html

Насколько я всё понял, прочитав этот материал, 589ИК14 можно вешать прямо на шины микропроцессорной
системы на комплекте 580.
По-хорошему после него перед шиной данных надо поставить К580ИР83, поскольку код прерывания на выходе -
инверсный...
Attachment:
k589_k589ik14_clip_image002.jpg
k589_k589ik14_clip_image002.jpg [ 36.94 KiB | Viewed 6763 times ]

Но и по-плохому можно сделать, по-нищебродски: на шину данных - резисторы к +5В, и прямо на них -
выходы 589ИК14 — на D5, D4, D3.
Attachment:
k589_k589ik14_clip_image006.jpg
k589_k589ik14_clip_image006.jpg [ 37.98 KiB | Viewed 6763 times ]
Выходы у него - с открытым коллектором... Возникнет небольшая путаница в приоритетах, но работать по идее - должно! :wink:
Тем более, если мы и каскадировать его не собираемся...

Надо купить: 14 Р ныне - это не деньги...

_________________
iLavr


15 Dec 2021 06:00
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Lavr wrote:
Пока я занимался программированием 1816ВЕ48, размышлял по пути о её простенькой системе
прерываний, и пришел к неожиданному выводу, что к К580ВМ80 простенькую систему прерываний
в общем-то прикрутить не так-то и просто без дополнительных аппаратных затрат...

Может показаться странным: чего это я занимался программированием 1816ВЕ48, а размышлял о прерываниях К580ВМ80?
Дело в том, что в 1816ВЕ48 сканирование 7-сегментного индикатора выполнено по прерываниям, и это весьма-таки удобная фича!

В "Специалисте" прерываний по простоте его не было... и даже когда таймер К580ВИ53 поставили, то всё-равно прерываний
не приделали, а ведь даже в сравнимом по простоте ZX-Spectrum механизм прерываний задействован!
И это многие вещи упрощает! Не надо мучиться с программным поллингом порой!

Ну пусть мы введём единственное простейшее прерывание - RST7 - резисторами от +5В - на шину данных...
Но на адресе 0038Н - в "Специалисте" ОЗУ, а в ОЗУ может быть что угодно...

Идея вот какая: у "Специалиста" (да и не только у него) есть такая аппаратная фича: при начальном старте
аппаратно системное ПЗУ подменяет собой всю память, чтобы подсунуть процессору код с адреса 0000Н.
После чего идёт JMP на реальный адрес посадки системного ПЗУ, где это распределение памяти отключают.

А что, если применить эту фичу и для прерывания RST7 ? :roll:
При разрешенных прерываниях отлавливаем D-триггером из STATUS бит обработки прерывания, этим сигналом
притягиваем системное ПЗУ в нулевые адреса, и по адресу 0038Н в ПЗУ будет начало обработчика прерывания.
Он, как и положено, делает JMP на реальный адрес системного ПЗУ, карта памяти восстанавливается,
а вот дальше из системных ячеек ОЗУ считывается реальный адрес обслуживания прерывания.
Такой трюк был еще в мониторе DDT от SP-580 - можно было программно подменить процедуру вывода на экран,
к примеру... но в нашем случае мы получаем программируемое прерывание!

Такая вот идейка с прерываниями брезжит... :wink:

_________________
iLavr


15 Dec 2021 08:58
Profile
Doomed
User avatar

Joined: 05 Nov 2007 05:08
Posts: 487
Location: Украина
Reply with quote
для нескольких прерываний ВН59 не вариант? вместо ИК14? если бы в Украине был - я бы выслал парочку, все равно сгниют...

в Z80 легко - и сигнал сразу, и вход отдельный есть.

+++++++++++++++++++
кстати, 8228/8238 при подаче куда-то напряжения переходят в какой-то режим, что могут формировать RST7 по какому-то сигналу. у наших про эту фичу не встречал (или не заметил), а в буржуазном мануале наткнулся, думаю, если наши сдирали один в один, может, и в наших есть такая фича (ВК38 у меня есть, а вот 8238 нет)

-- а, при подаче сигнала INT 8228 отлавливает INTA, но шина остается закрыто-подтянутой и получается RST7
+++++++++++++++++++
нашел:
Quote:
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.

в двух словах: если на выход INTA контроллера шины подать 12В через 1кОм, то при подаче прерывания на проц, когда он выставляет DBIN, он получает RST7 от 8238.


15 Dec 2021 09:05
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
shoorick wrote:
для нескольких прерываний ВН59 не вариант? вместо ИК14?
...
кстати, 8228/8238 при подаче куда-то напряжения переходят в какой-то режим, что могут формировать RST7 по какому-то сигналу. у наших про эту фичу не встречал

Системный контроллер 580ВК28(38) мы тут с тобой давно уже обсуждали, и никто не смог точно сказать
делают они самостоятельно RST7 или не делают. Но если добавить 580ВН59, то её RST7 уже совсем не нужен.

Так что контроллер прерываний 580ВН59 - я считаю - не вариант, поскольку в связке с 580ВК28(38) - это
и будет самая обычная система прерываний для микропроцессорной системы на комплекте 580.

И потом: 580ВН59 при старте надо запрограммировать, а 589ИК14 - более простая, ей после прерывания
только ответить надо, но можно и не отвечать, если прерывание подано корректно.

Она столь простая внутри, как то, что мы выше обсуждали сконструировать сами:
Attachment:
k589_k589ik14_clip_image004.png
k589_k589ik14_clip_image004.png [ 46.56 KiB | Viewed 6723 times ]

_________________
iLavr


15 Dec 2021 17:30
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Lavr wrote:
Но ведь есть же довольно простой контроллер прерываний 589ИК14 ! :roll:
И когда я набрал его в поиске, то увидел, что он есть в местном магазине по смешной цене! :lol:
Image

В общем пошел я сегодня и купил 6 штук 589ИК14 из 9-ти... три штуки оставил... :wink:

Перед тем как пойти в магазин, смотрел я его прайсы, и они меня развеселили! :lol:
Attachment:
580.PNG
580.PNG [ 18.25 KiB | Viewed 6700 times ]

Несколько лет назад я в этом магазине скупил все микропроцессоры К580ВМ80А по 17 рублей
в количестве 30 штук просто из жадности... :ebiggrin:

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

_________________
iLavr


16 Dec 2021 06:04
Profile
Doomed
User avatar

Joined: 05 Nov 2007 05:08
Posts: 487
Location: Украина
Reply with quote
у меня ик80 работали стабильнее, чем вм80. наверное, вм80 были более высокочастотные и их клинило от помех генератора синхроимпульсов Специалиста :)


16 Dec 2021 06:07
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
shoorick wrote:
у меня ик80 работали стабильнее, чем вм80.

А я читал, что 580ИК80 более дохлые по нагрузочной способности, поэтому меня и обидело,
что мне их предлагают дороже... :lol:

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


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

_________________
iLavr


16 Dec 2021 06:19
Profile
Doomed
User avatar

Joined: 05 Nov 2007 05:08
Posts: 487
Location: Украина
Reply with quote
ну да, более новые лучше, но в Спеце лучше работали более старые (по моему личному опыту)


16 Dec 2021 06:50
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 17 posts ]  Go to page 1, 2  Next

Who is online

Users browsing this forum: No registered users and 21 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.