реклама на сайте
подробности

 
 
> Контроллер прерывания Microblze, Срабатывание по фронту и спаду
shumerok
сообщение Dec 8 2017, 12:22
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 54
Регистрация: 13-11-09
Пользователь №: 53 601



Добрый день. Работаю с прерываниями в microblaze на отладочнике Spartan3e. Прерывания формирую от дип-переключателя на плате. Подтверждение прерывания вывожу через uart на ноут. Проблема в следующем: прерывания происходят и по фронту и по спаду. Я так понимаю, что контроллеру без разницы. Он реагирует только на изменение состояния?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
iosifk
сообщение Dec 8 2017, 13:37
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(shumerok @ Dec 8 2017, 15:22) *
Добрый день. Работаю с прерываниями в microblaze на отладочнике Spartan3e. Прерывания формирую от дип-переключателя на плате. Подтверждение прерывания вывожу через uart на ноут. Проблема в следующем: прерывания происходят и по фронту и по спаду. Я так понимаю, что контроллеру без разницы. Он реагирует только на изменение состояния?

Либо сделайте цифровой фильтр после переключателя, либо ловите прерывания от приемника uart. Клацнете на хосте - получите точно одно прерывание... Просто потом все равно приемник на прерывание повесите, так почему бы не сейчас? Ну и сделайте счетчик этих запросов и хоть 3 разряда выведите на светодиоды. для начала поклацаете на хосте, увидите, что счетчик шевелится.


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
shumerok
сообщение Dec 8 2017, 13:45
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 54
Регистрация: 13-11-09
Пользователь №: 53 601



Цитата(iosifk @ Dec 8 2017, 17:37) *
Либо сделайте цифровой фильтр после переключателя, либо ловите прерывания от приемника uart. Клацнете на хосте - получите точно одно прерывание... Просто потом все равно приемник на прерывание повесите, так почему бы не сейчас? Ну и сделайте счетчик этих запросов и хоть 3 разряда выведите на светодиоды. для начала поклацаете на хосте, увидите, что счетчик шевелится.

Видно так и придется делать. Просто я думал, что контроллер можно настроить на срабатывание по фронту либо по спаду.
Go to the top of the page
 
+Quote Post
iosifk
сообщение Dec 8 2017, 13:51
Сообщение #4


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(shumerok @ Dec 8 2017, 16:45) *
Видно так и придется делать. Просто я думал, что контроллер можно настроить на срабатывание по фронту либо по спаду.

А причем здесь это?
У переключателя дребезг - милисекунды.
У контроллера прерываний срабатывание за несколько тактов в десятки наносекунд... За этот период в милисекунды он найдет себе на кусочке импульса и "фронт" и "уровень" и вообще что угодно...


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
shumerok
сообщение Dec 8 2017, 14:00
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 54
Регистрация: 13-11-09
Пользователь №: 53 601



Цитата(iosifk @ Dec 8 2017, 17:51) *
А причем здесь это?
У переключателя дребезг - милисекунды.
У контроллера прерываний срабатывание за несколько тактов в десятки наносекунд... За этот период в милисекунды он найдет себе на кусочке импульса и "фронт" и "уровень" и вообще что угодно...

Притом, что я работаю в дебаге и после срабатывания прерывания я выставляю его запрет. Причем тут дребезг? К моменту разрешения нового прерывания могут пройти десятки секунд.
Go to the top of the page
 
+Quote Post
iosifk
сообщение Dec 8 2017, 14:05
Сообщение #6


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(shumerok @ Dec 8 2017, 17:00) *
Притом, что я работаю в дебаге и после срабатывания прерывания я выставляю его запрет. Причем тут дребезг? К моменту разрешения нового прерывания могут пройти десятки секунд.

Дебаг останавливает процессор. Но кто сказал, что при этом в контроллере прерываний блокируются триггера, захватывающие запрос?


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
alexadmin
сообщение Dec 8 2017, 14:14
Сообщение #7


Знающий
****

Группа: Свой
Сообщений: 572
Регистрация: 17-11-05
Из: СПб, Россия
Пользователь №: 10 965



Цитата(iosifk @ Dec 8 2017, 17:05) *
Дебаг останавливает процессор. Но кто сказал, что при этом в контроллере прерываний блокируются триггера, захватывающие запрос?


Вряд ли там в контроллере копится очередь прерываний. Сработало прерывание, попали в обработчик, остановились. Переключатель там дальше "звенит", но этого никто не видит - признак прерывания так и висит. Пошли по шагам, сбросили прерывание, разрешили заново - в это время уже никакого дребезга нет. Не так?
Go to the top of the page
 
+Quote Post
iosifk
сообщение Dec 8 2017, 14:35
Сообщение #8


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(alexadmin @ Dec 8 2017, 17:14) *
Вряд ли там в контроллере копится очередь прерываний. Сработало прерывание, попали в обработчик, остановились. Переключатель там дальше "звенит", но этого никто не видит - признак прерывания так и висит. Пошли по шагам, сбросили прерывание, разрешили заново - в это время уже никакого дребезга нет. Не так?

Я не знаю как именно сделан контроллер прерываний в Микроблэйзе.
Просто в данной ситуации у меня другой подход. Есть сигнал с дребезгом - ставлю фильтр. Десяток триггеров от многих тысяч роли не играет. Убираю дребезг в любом случае. На все медленные водные фронты. И не имею головной боли с "непонятками".
Просто размениваю десять триггеров на десять дней работы над проектом, требуемых для разгадывания "непоняток" ...



--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 27th June 2025 - 07:13
Рейтинг@Mail.ru


Страница сгенерированна за 0.01453 секунд с 7
ELECTRONIX ©2004-2016