|
|
  |
Внешний контроллер прерываний |
|
|
|
Mar 6 2007, 18:54
|
Знающий
   
Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484

|
Цитата(prottoss @ Mar 5 2007, 17:11)  Hi All!
Есть ли в природе внешние контроллеры прерываний типа 8259, только, может, более современные. Есть необходимость использовать таковой с ATmega128, т.к. практически все внешние линии INTx прерываний задействованны под другие функции Попробуйте посмотреть на ATmega1280/1281, они дополнительно имеют 8/24 линии 'Pin Change Interrupt', может это то что вам нужно. Анатолий. Сорри, вы про них уже знаете.
Сообщение отредактировал aesok - Mar 6 2007, 18:57
|
|
|
|
|
Mar 6 2007, 19:19
|
Местный
  
Группа: Новичок
Сообщений: 239
Регистрация: 5-10-06
Пользователь №: 21 004

|
Цитата(prottoss @ Mar 5 2007, 17:11)  Hi All!
Есть ли в природе внешние контроллеры прерываний типа можно попробовать расширители i2c pfcXXXX philips - у них при изменении на любой из 16 ног дергается специальня нога. Еще есть контроллер 22 линий у моторолы - теперь freescell.com
|
|
|
|
|
Mar 6 2007, 20:42
|
Гуру
     
Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521

|
Цитата(Dog Pawlowa @ Mar 6 2007, 14:15)  Про захват шины загнули, конечно... Сигнал INTA работает как признак, означающий, что контроллеру нужно передать вектор. И микроконтроллер своей логикой сразу после сохранения старого значения счетчика команд помещает этот вектор в счетчик команд. При использовании неподдерживающего этот режим микроконтроллера все нужно реализовывать программно - прочитать вектор, и ручками перейти по этому адресу. Время, затраченное на вызов прерывания, будет намного больше независимо от того, на чем контроллер делать - на ПЛИС, использовать старый из мусорки или что-то еще. Собственно спорить я не собираюсь, но так в порядке ответа Чемберлену. А.Г.Алексенко и др. "Проектирование радио-электронной аппаратуры на микропроцессоре". стр.44. "...с возможностью маскирования и динамического изменения дисциплины обслуживания. Для перехода к подпрограммам обслуживания прерываний контроллер формирует и подаёт на ШД процессора код команды CALL. Каскадированием БИС ...." Цитата Прерываний как раз 8 штук. Я, когда задавал вопрос, в даташите подробно не копаля в 8259, но принцип его работы знал. Плохо, конечно, что он заточен под 8080 и 8086. Про 8259 я упомянул, потому как внешне он красиво смотрится: 1.Наличие 8 линий прерываний 2.Наличие 8-и разрядной шины данных + набор стандартных сигналов (RD/WR/CS) 3.Настройка через внутренние регистры. Работа ч/з внутренние регистры Вам ничего не даст. То есть удобства не добавит. Это же не внутренняя переферия. Всё равно придётся опрашивать-анализировать-переходить на подвектор. Подвесить 8259A конечно можно, но ещё одна засада. Макс. F=5МГц.  Ну и в серийное изделие я бы не закладывал. Он будет дороже чем ATMEGA128.
|
|
|
|
|
Mar 7 2007, 02:10
|

Ambidexter
    
Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282

|
Цитата(SasaVitebsk @ Mar 6 2007, 18:49)  Критикуйте.  Что будет, если на RS-триггер подать ноль на R-вход и S-вход одновременно? Имею в виду, какое будет состояние на выходе? Кроме того, что будет, если IRQn будет достаточно продолжительным по времени, по сравнению с временем обработки всех прерываний?
--------------------
Делай сразу хорошо, плохо само получится
|
|
|
|
|
Mar 7 2007, 08:22
|
Местный
  
Группа: Свой
Сообщений: 437
Регистрация: 23-04-05
Из: Таганрог
Пользователь №: 4 425

|
Цитата(aesok @ Mar 7 2007, 00:31)  Чего-то я prottossа не понимаю. Вместо 128 меги поставить 1280-ную и получить дополнительно 32 линии ввода выводы из них 16 с прерываниями по изменению состояния он не может. А поставить рядом плисину с которыми не работал или микросхему 30-летней свежести пожалуйста.... странно.
Анатолий. Согласен, Мега1280 со всех сторон новее, в два раза больше таймеров, ОЗУ, USART, внешних прерываний, 100! ножек корпуса, за дополнительные 3$ по сравнению с устаревающей мегой 128. Самая дешевая (и маленькая) плис Altera будет иметь те же 100 ножек и стоить минимум 6$, а ей еще нужны такты подавать.
|
|
|
|
|
Mar 7 2007, 10:28
|

Профессионал
    
Группа: Свой
Сообщений: 1 065
Регистрация: 8-10-05
Из: Kiev, UA
Пользователь №: 9 380

|
Цитата Самая дешевая (и маленькая) плис Altera будет иметь те же 100 ножек и стоить минимум 6$, а ей еще нужны такты подавать. Будет стоить $2 и синхронизм ей не обязателен. По теме. Варианты SasaVitebsk вполне правильны, только вот триггера стоило бы использовать JK. А вместо регистра - приоритетный шифратор. Тогда на 3 ноги можно будет пустить 8 прерываний. А в коде, сразу после захода в прерывание анализировать состояние соответсющего порта, и отправлять к соответсвующей строке в look-up table. Конечно по сравнению с внутренним механизмом будет медленнее, но это плата за работу с любой периферией.
--------------------
Вони шукають те, чого нема, Щоб довести, що його не існує.
|
|
|
|
|
Mar 7 2007, 11:40
|
Гуру
     
Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823

|
Цитата(SasaVitebsk @ Mar 6 2007, 21:42)  Цитата(Dog Pawlowa @ Mar 6 2007, 14:15)  Про захват шины загнули, конечно... Сигнал INTA работает как признак, означающий, что контроллеру нужно передать вектор. И микроконтроллер своей логикой сразу после сохранения старого значения счетчика команд помещает этот вектор в счетчик команд.
Собственно спорить я не собираюсь, но так в порядке ответа Чемберлену. А.Г.Алексенко и др. "Проектирование радио-электронной аппаратуры на микропроцессоре". стр.44. "...с возможностью маскирования и динамического изменения дисциплины обслуживания. Для перехода к подпрограммам обслуживания прерываний контроллер формирует и подаёт на ШД процессора код команды CALL. Каскадированием БИС ...." Чего не люблю, так это подмены понятий и определений и такого ссылки на якобы авторитетов, которые быть может и с микропроцессорами то не работали. Уровень книжек в те времена был удручающе низкий. Теперь удручает цитирование этих книжек. Захват шины - это было сказано? Было. Было сказано даже про какой-то запрет ОЗУ. - "На сколько я помню 8259(кр580вн59) и 8259А (кр1810вн59а) банально отключают озу программы и выставляют код команды перехода по прерыванию." Ну что за бред? Если Вы это тоже вычитали, еще понятно. Но если Вы это помните??!!! Захват шины - это ситуация, когда вместо основного мастера работает другой. Например, вместо микропроцессора - контроллер прямого доступа. Или сервисный пульт, подключенный к шине. В процессе передачи вектора от контроллера прерываний в микроконтроллер мастером продолжает являться микроконтроллер. Конечно, "Контроллер формирует и подает", но только под управлением сигнала INTA, приходящего от микропроцессора. То есть захват шины отсутствует напрочь. А уж блокировка ОЗУ... Какая еще блокировка, если в этот момент обращение к ОЗУ не производится, чего его блокировать? Так что Вы лучше определитесь - или Вы спорите, или что ... Очень не хотелось бы наблюдать тут пропаганду безграмотности. Успехов
--------------------
Уходя, оставьте свет...
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|