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

 
 
> STM32F100 Непроизвольное срабатывание прерывания
Plexus
сообщение Aug 29 2014, 09:10
Сообщение #1





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



Требуется помошь в поиске проблемы.

Непроизвольно срабатывает прерывание EXTI0_IRQHandler().
Нога подтянута к 3.3В резистором. И на нее подается импульс.
Прерывание должно срабатывать по спаду. И срабатывает. Но время от времени, в обработчик залетает и выполняется проверка на EXTI_GetITStatus(EXTI_Line0). Импульсы в этот момент не поступают (слежу на осцилле).
Что за магия такая?

CODE
void init_EXTI()
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA , ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2ENR_AFIOEN , ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource0);

EXTI_InitTypeDef EXTI_InitStructure;

EXTI_InitStructure.EXTI_Line = EXTI_Line0;
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;
EXTI_InitStructure.EXTI_LineCmd = ENABLE;
EXTI_Init(&EXTI_InitStructure);
}

void init_NVIC()
{
NVIC_InitTypeDef NVIC_InitStructure;
NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x0F;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x0F;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
}

int main(void)
{
RCC_Configuration();
init_timer();

init_EXTI();
init_NVIC();

NVIC_EnableIRQ(EXTI0_IRQn);
NVIC_DisableIRQ(TIM6_DAC_IRQn);


while(1);
}

void EXTI0_IRQHandler(void)
{
if (EXTI_GetITStatus(EXTI_Line0) != RESET)
{

EXTI_ClearITPendingBit(EXTI_Line0);
TIM_ClearITPendingBit(TIM6, TIM_IT_Update);
TIM_SetCounter(TIM6, 0);

if (flag)
{
flag = 0;
NVIC_EnableIRQ(TIM6_DAC_IRQn);
}
}
}


Сообщение отредактировал IgorKossak - Aug 29 2014, 20:47
Причина редактирования: [codebox] для длинного кода, [code] - для короткого!!!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
amiller
сообщение May 9 2017, 13:20
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 176
Регистрация: 20-02-14
Из: Томск
Пользователь №: 80 612



По моему STM ведёт себя абсолютно правильно. Фронт есть - прерывание должно быть.
Вообще кнопки и прерывания по входу - вещи плохо сочетаемые. В реальных условиях (при наличии помех) гарантируются случайные срабатывания.
Правильно будет - опрашивать с определенной частотой. И если из 100 опросов больше 50 единиц, значит кнопка нажата.
И посмотрите на наличие на плате конденсатора C22. Похоже его нет. Если поставить примерно 100n, то в Вашем случае должно помочь.
Go to the top of the page
 
+Quote Post
ISF
сообщение May 9 2017, 13:59
Сообщение #3





Группа: Участник
Сообщений: 6
Регистрация: 9-05-17
Пользователь №: 96 967



Цитата(amiller @ May 9 2017, 14:20) *
По моему STM ведёт себя абсолютно правильно. Фронт есть - прерывание должно быть.
Вообще кнопки и прерывания по входу - вещи плохо сочетаемые. В реальных условиях (при наличии помех) гарантируются случайные срабатывания.
Правильно будет - опрашивать с определенной частотой. И если из 100 опросов больше 50 единиц, значит кнопка нажата.
И посмотрите на наличие на плате конденсатора C22. Похоже его нет. Если поставить примерно 100n, то в Вашем случае должно помочь.


Согласен что кнопка и прерывание = неудачное решение, но тут даже до нажатия кнопки дело не доходит. Достаточно просто коснуться вывода PA0 щупом тестера для замера напряжения и БАЦ!, получите прерывание. Я бы ещё понял если бы вывод болтался без подтяжки в воздухе и я его касался проводником - тут уж без вариантов будет многократное срабатывание прерывания от наводок, емкости щупов и т.п. Но почему себя так ведёт полностью обвязанный и прикрытый от всех случайностей вывод мне совершенно неясно (

Конденсатора C22 на плате нет, но я специально проверял на выводе PA1 схему с внешней подтяжкой и полной RC цепью - результат отрицательный, лучше не становиться. Вот проверенные мною варианты. Подтягивающий резистор менял от 100 Ом до 10к

Go to the top of the page
 
+Quote Post
jcxz
сообщение May 9 2017, 21:29
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(ISF @ May 9 2017, 15:59) *
Но почему себя так ведёт полностью обвязанный и прикрытый от всех случайностей вывод мне совершенно неясно (

Потому что Вы цепляете к нему огромную антенну (из щупов, их проводов и ваших рук и прочего тела), на которую наводится много ВЧ грязи. Неужто это не очевидно???
А Ваш AVR мог не регистрировать их например из-за своей тормознутости - очевидно его GPIO работает на гораздо меньших частотах и не успевает зарегистрировать короткие помеховые импульсы. Плюс к тому же - он 5-вольтовый, что так же увеличивает его нечувствительность.
Go to the top of the page
 
+Quote Post
Forger
сообщение May 9 2017, 21:34
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831



Подозреваю, что речь идет о неком хитроумном способе выбора МК для нового проекта - касаться руками работающего проца.
Возможно, это - проект для оборонки, нынче их ОТК очень требовательно ко всему.
Очевидно, что STM32 вообще не проходит этот тест, поэтому придется возвращаться на AVR. Другого пути я не вижу. Увы crying.gif


--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post
jcxz
сообщение May 9 2017, 21:44
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(Forger @ May 9 2017, 23:34) *
Очевидно, что STM32 вообще не проходит этот тест, поэтому придется возвращаться на AVR. Другого пути я не вижу. Увы crying.gif

Вангую - начальство нагибает ТСа: "Осваивай мол ARM, нужно уже серьёзные задачи решать, пора слезать с этого детсада AVR" krapula.gif . И ТС ищет - как бы так начальству доказать что ARM-ы плохи? 01.gif , чтобы не изучать их.
Вот он потыкал в лапку STM-а smile3046.gif и.... о, радость! - ложные срабатывания!! 08.gif Можно бежать к начальству yeah.gif и наглядно продемонстрировать "глюки" a14.gif , чтобы оно отстало с этими ARM-ами... maniac.gif disco.gif
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Plexus   STM32F100 Непроизвольное срабатывание прерывания   Aug 29 2014, 09:10
- - Ant_m   Цитата(Plexus @ Aug 29 2014, 13:10) Импул...   Aug 29 2014, 09:45
|- - Plexus   Цитата(Ant_m @ Aug 29 2014, 16:45) А на G...   Aug 29 2014, 10:43
- - Golikov A.   это ваще может значить черти что, куча народу нары...   Aug 29 2014, 11:51
- - Plexus   Т.е. достаточно настроить все GPIO и проблема проп...   Aug 30 2014, 05:01
- - Golikov A.   где то краем ухо я слышал про ложные срабатывания ...   Aug 30 2014, 05:55
|- - adnega   Цитата(Golikov A. @ Aug 30 2014, 09:55) г...   Aug 30 2014, 08:57
|- - Plexus   Цитата(adnega @ Aug 30 2014, 15:57) Прави...   Aug 30 2014, 09:56
|- - adnega   Цитата(Plexus @ Aug 30 2014, 13:56) Хорош...   Aug 30 2014, 10:16
|- - Plexus   Цитата(adnega @ Aug 30 2014, 17:16) Это н...   Aug 30 2014, 10:24
- - Golikov A.   самое правильное, при прерывании проверять флаг, ч...   Aug 30 2014, 14:16
|- - Plexus   Цитата(Golikov A. @ Aug 30 2014, 21:16) с...   Aug 30 2014, 18:41
- - AHTOXA   Цитата(adnega @ Aug 30 2014, 14:57) Прави...   Aug 30 2014, 14:41
- - Golikov A.   ну он же не кортекс-м... Можно в 2 словах откуда ...   Aug 30 2014, 15:06
|- - adnega   Цитата(Golikov A. @ Aug 30 2014, 19:06) н...   Aug 30 2014, 15:53
- - AHTOXA   Цитата(Golikov A. @ Aug 30 2014, 21:06) н...   Aug 30 2014, 19:11
|- - adnega   Цитата(AHTOXA @ Aug 30 2014, 23:11) Погуг...   Aug 30 2014, 19:22
||- - AHTOXA   Цитата(adnega @ Aug 31 2014, 01:22) Флаги...   Aug 30 2014, 21:30
|- - Plexus   Цитата(AHTOXA @ Aug 31 2014, 02:11) У вас...   Aug 31 2014, 06:09
|- - AHTOXA   Цитата(Plexus @ Aug 31 2014, 12:09) Так д...   Aug 31 2014, 08:04
|- - Plexus   Цитата(AHTOXA @ Aug 31 2014, 15:04) А, во...   Aug 31 2014, 15:07
|- - AHTOXA   Цитата(Plexus @ Aug 31 2014, 21:07) Та фу...   Aug 31 2014, 23:07
- - Golikov A.   о разрешенных конечно, иначе это была бы мощная ба...   Aug 30 2014, 19:42
- - Golikov A.   а полингом проверить состояние пина нельзя? Кстати...   Aug 31 2014, 06:18
|- - Plexus   Цитата(Golikov A. @ Aug 31 2014, 13:18) а...   Aug 31 2014, 06:26
- - adnega   Цитата(Plexus @ Aug 31 2014, 10:09) Если ...   Aug 31 2014, 06:31
|- - Plexus   Цитата(adnega @ Aug 31 2014, 13:31) Либо ...   Aug 31 2014, 06:43
|- - adnega   Цитата(Plexus @ Aug 31 2014, 10:43) Дребе...   Aug 31 2014, 06:58
- - adnega   А мне очень не нравится эта строчка Цитатаif (flag...   Aug 31 2014, 09:51
- - Golikov A.   ЦитатаФлаг в периферийном модуле сбрасывается мгно...   Aug 31 2014, 11:16
|- - adnega   Цитата(Golikov A. @ Aug 31 2014, 15:16) н...   Aug 31 2014, 13:01
- - Golikov A.   мне кажется у вас все таки проходит какая - то пом...   Aug 31 2014, 17:04
|- - adnega   Цитата(Golikov A. @ Aug 31 2014, 21:04) м...   Aug 31 2014, 20:11
|- - Plexus   Цитата(adnega @ Sep 1 2014, 03:11) А рези...   Sep 1 2014, 02:47
- - Golikov A.   1. Есть еще образец платы, вдруг именно на этой ка...   Sep 1 2014, 06:36
|- - KnightIgor   Цитата(Golikov A. @ Sep 1 2014, 08:36) 4....   Sep 1 2014, 07:14
|- - Plexus   Цитата(KnightIgor @ Sep 1 2014, 14:14) P....   Sep 1 2014, 08:59
- - AHTOXA   Цитата(Golikov A. @ Sep 1 2014, 12:36) 4....   Sep 1 2014, 07:55
|- - KnightIgor   Цитата(AHTOXA @ Sep 1 2014, 09:55) Нет. Т...   Sep 1 2014, 10:34
- - adnega   Таймеры в STM32 очень функциональные. Я бы сделал ...   Sep 1 2014, 08:14
- - Golikov A.   мне лень было лезть и смотреть именно эти функции....   Sep 1 2014, 08:14
|- - AHTOXA   Цитата(Golikov A. @ Sep 1 2014, 14:14) мн...   Sep 1 2014, 11:22
- - Golikov A.   Да я вроде предложил ему привести что получилось в...   Sep 1 2014, 11:41
|- - AHTOXA   Цитата(Golikov A. @ Sep 1 2014, 17:41) Да...   Sep 1 2014, 12:29
- - Plexus   Господа, да вы что в самом то деле? Для меня любая...   Sep 1 2014, 12:42
- - ViKo   А осциллограф-то хороший был? Он может словить кор...   Sep 1 2014, 12:47
- - Golikov A.   ЦитатаВы всерьёз думаете, что ошибка в библиотечны...   Sep 1 2014, 15:32
- - ISF   Столкнулся с похожей проблемой что и автор топика....   May 9 2017, 08:30
|- - scifi   Цитата(ISF @ May 9 2017, 11:30) Мне хочет...   May 9 2017, 10:01
|- - ISF   Цитата(scifi @ May 9 2017, 11:01) Вы в ку...   May 9 2017, 12:04
- - Baser   Цитата(ISF @ May 9 2017, 11:30) При любом...   May 9 2017, 12:26
|- - ISF   Цитата(Baser @ May 9 2017, 13:26) Удивите...   May 9 2017, 13:19
- - rudy_b   Вы все про высокое, а причина может быть намного п...   May 9 2017, 12:45
|- - amiller   Цитата(ISF @ May 9 2017, 17:59) Согласен ...   May 9 2017, 15:05
|- - Forger   Нынче существуют 5V армы. Они по-идее должны пройт...   May 9 2017, 21:55
- - Baser   Цитата(ISF @ May 9 2017, 16:19) К тому же...   May 9 2017, 14:55
- - ViKo   А попробовать одной рукой взяться за плату, за цеп...   May 9 2017, 16:04
|- - ISF   Цитата(ViKo @ May 9 2017, 17:04) А попроб...   May 9 2017, 19:34
- - ViKo   У вас там электромагнитная аномалия! А в друго...   May 9 2017, 20:32
|- - Forger   Цитата(ViKo @ May 9 2017, 23:32) А в друг...   May 9 2017, 21:25
- - ISF   Был задан вполне конкретный вопрос - какого чёрта ...   May 10 2017, 04:56
|- - Forger   Цитата(ISF @ May 10 2017, 07:56) Был зада...   May 10 2017, 06:28
|- - adnega   Цитата(ISF @ May 10 2017, 07:56) какого ч...   May 10 2017, 07:31
|- - jcxz   Цитата(ISF @ May 10 2017, 06:56) На любом...   May 10 2017, 08:24
- - ViKo   Если топикстартер выложит hex-код программы, любой...   May 10 2017, 09:52
|- - jcxz   Цитата(ViKo @ May 10 2017, 11:52) Если то...   May 10 2017, 10:06
|- - adnega   Цитата(ViKo @ May 10 2017, 12:52) Мне тож...   May 10 2017, 10:49
|- - Сергей Борщ   QUOTE (ViKo @ May 10 2017, 12:52) Мне тож...   May 10 2017, 11:44
|- - Forger   Цитата(Сергей Борщ @ May 10 2017, 14:44) ...   May 10 2017, 14:00
- - ViKo   Есть ST-Link/V2-Isol http://www.st.com/content/st_...   May 11 2017, 17:22


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

 


RSS Текстовая версия Сейчас: 23rd August 2025 - 09:47
Рейтинг@Mail.ru


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