Портал для радиолюбителей и разработчиков электроники · с 2003 годаРеклама на сайте
Найти компонент, схему или даташит

Даташиты, справочник отечественных приборов, схемы с разбором и живой форум

AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR...

 
Опции темы

Attiny 26L глючит прерывание INT0

Непрочитано 26.02.2016, 15:05  
ARTEM277
Временная регистрация
 
Регистрация: 24.03.2015
Адрес: Россия. г.Новосибирск
Сообщений: 69
Сказал спасибо: 12
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
ARTEM277 на пути к лучшему
По умолчанию Attiny 26L глючит прерывание INT0

Всем Привет !

Бьюсь головой об стену уже неделю, и ничего не могу понять.

На вход контроллера Attiny 26L (внутренний генератор используется на 1 мГц ) подаются импульсы синхронизации частотой 100 Гц(на фото они нижние синие). В прерывании простой код , который должен менять значение пина PA0 на противоположное каждый раз как только входит в прерывание. Прерывание настроено по падающему фронту. Но этот гад (контроллер) иногда почему-то и по возрастающему фронту срабатывает.На фото это видно.Время межу синхроимпульсами 800 мкс.

Вот собственно и вопрос. Это глюки контроллера. Или еще какой бит в какомнибудь регистре настроить надо ?Код на ассемблере ведет себя также.
Вложения:
Тип файла: rar tiny26#INT0.rar (711.2 Кб, 72 просмотров)
Реклама:
ARTEM277 вне форума  
Непрочитано 26.02.2016, 15:41  
nml
Супер-модератор
 
Аватар для nml
 
Регистрация: 13.03.2004
Адрес: Minsk
Сообщений: 2,394
Сказал спасибо: 2,016
Сказали Спасибо 1,356 раз(а) в 591 сообщении(ях)
nml на пути к лучшему
По умолчанию Re: Attiny 26L глючит прерывание INT0

Сообщение от ARTEM277 Посмотреть сообщение
иногда почему-то и по возрастающему фронту срабатывает
Криминала никакого в программе не увидел. Я бы 1) проверил наличие развязывающих конденсаторов по питанию, особое внимание уделив керамике "прям между ног". 2) питание вообще, нет ли иголок... 3) при старте программы сделал бы мигание, например другим пином - сразу видно что сброс произошел.

Еще полезно после старта программы анализировать MCUSR - там есть 4 бита - причина сброса.
Так, если при старте обнаружится бит BORF - был провал по питанию, WDRF - сброс сторожевого таймера.
__________________
[ жизнь приятна и красива, если выпить литр пива ]

Последний раз редактировалось nml; 26.02.2016 в 15:45.
nml вне форума  
Сказали "Спасибо" nml
majorka65 (20.04.2016)
Непрочитано 26.02.2016, 16:00  
Someone
Гражданин KAZUS.RUN
 
Регистрация: 16.06.2005
Сообщений: 942
Сказал спасибо: 25
Сказали Спасибо 174 раз(а) в 123 сообщении(ях)
Someone на пути к лучшему
По умолчанию Re: Attiny 26L глючит прерывание INT0

Сообщение от ARTEM277 Посмотреть сообщение
подаются импульсы синхронизации частотой 100 Гц
Сообщение от ARTEM277 Посмотреть сообщение
Время межу синхроимпульсами 800 мкс.
А тебя не смущает, что 800 мкс это далеко не 100 Гц?
Someone вне форума  
Непрочитано 26.02.2016, 23:19  
Vovan_G5
Частый гость
 
Регистрация: 28.09.2015
Сообщений: 21
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Vovan_G5 на пути к лучшему
По умолчанию Re: Attiny 26L глючит прерывание INT0

1 - поставь разрешение ослика побольше, скорее всего увидишь помеху на синхроимпульсе, МК делает все правильно, просто импульс двойной. Как ее давить - дело техники, можно программно, а можно и нужно по п 2.
2 - борьба с нанопомехами. керамика 103 прямо между ножкой входа и землей обязательно.
Vovan_G5 вне форума  
Непрочитано 27.02.2016, 08:52  
ARTEM277
Временная регистрация
 
Регистрация: 24.03.2015
Адрес: Россия. г.Новосибирск
Сообщений: 69
Сказал спасибо: 12
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
ARTEM277 на пути к лучшему
По умолчанию Re: Attiny 26L глючит прерывание INT0

Сообщение от Someone Посмотреть сообщение
А тебя не смущает, что 800 мкс это далеко не 100 Гц?
После диодного моста(без конденсатора) ,и через два транзистора.800 мкс это есть время когда транзистр еще не включился. Можно в эмитер поставить диод и увеличить еще это время. Да и осцилографф пишет 100 Гц. Я ему верю
ARTEM277 вне форума  
Непрочитано 27.02.2016, 09:02  
ARTEM277
Временная регистрация
 
Регистрация: 24.03.2015
Адрес: Россия. г.Новосибирск
Сообщений: 69
Сказал спасибо: 12
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
ARTEM277 на пути к лучшему
По умолчанию Re: Attiny 26L глючит прерывание INT0

Сообщение от Vovan_G5 Посмотреть сообщение
1 - поставь разрешение ослика побольше, скорее всего увидишь помеху на синхроимпульсе, МК делает все правильно, просто импульс двойной. Как ее давить - дело техники, можно программно, а можно и нужно по п 2.
2 - борьба с нанопомехами. керамика 103 прямо между ножкой входа и землей обязательно.
Все это было проделанно. Не помогает. Попробую конечно же еще больше разрешение осцилографа поставить.... но я думаю ни чего не увижу. Но почему то этот МК нормально начинает работать когда ему ставиш не по спаду а по нижнему уровню прерывание т.е MCUCR=0. И он торчит в преывании по честному до момента пока не появится высокий уровень. И импульс четкий. Но это как бы не правильно.
И опять же ... я долго наблюдал ... в том числе и на большом разрешение . И не разу не увидел что например переключения пина идет где-то между импульсами или чуть раньше нарастающего фронта.Всегда переключается по спаду и иногда по нарастанию....
ARTEM277 вне форума  
Непрочитано 27.02.2016, 09:08  
ARTEM277
Временная регистрация
 
Регистрация: 24.03.2015
Адрес: Россия. г.Новосибирск
Сообщений: 69
Сказал спасибо: 12
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
ARTEM277 на пути к лучшему
По умолчанию Re: Attiny 26L глючит прерывание INT0

Сообщение от nml Посмотреть сообщение
1) проверил наличие развязывающих конденсаторов по питанию, особое внимание уделив керамике "прям между ног". 2) питание вообще, нет ли иголок... 3) при старте программы сделал бы мигание, например другим пином - сразу видно что сброс произошел.
Еще полезно после старта программы анализировать MCUSR - там есть 4 бита - причина сброса.
Так, если при старте обнаружится бит BORF - был провал по питанию, WDRF - сброс сторожевог
Иголок по питанию точно нет.Пульсации 20 mV. И я не совсем понял термин "наличие развязывающих конденсаторов по питанию " поясните пожалуйста ? Просто для меня слово развязывающий говорить о том ,что надо например отсечь постоянную состовляющую с помощью конденсатора ..

Пином помыргать попробую.... и регистр тоже проверю .
ARTEM277 вне форума  
Непрочитано 27.02.2016, 09:12  
ARTEM277
Временная регистрация
 
Регистрация: 24.03.2015
Адрес: Россия. г.Новосибирск
Сообщений: 69
Сказал спасибо: 12
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
ARTEM277 на пути к лучшему
По умолчанию Re: Attiny 26L глючит прерывание INT0

Да кстати частоту подымал до 4 Мгц . Ничего недало. смысл тот же.

В понедельник попробую загнать эту же прогу в ATMEGA 16,8535, и ATtiny2313 и в PIC16F628... если на производстве проблем не будет.

Результаты выложу.
ARTEM277 вне форума  
Непрочитано 27.02.2016, 09:22  
ARTEM277
Временная регистрация
 
Регистрация: 24.03.2015
Адрес: Россия. г.Новосибирск
Сообщений: 69
Сказал спасибо: 12
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
ARTEM277 на пути к лучшему
По умолчанию Re: Attiny 26L глючит прерывание INT0

Как выяснилось есть еще одна прога на асме. Писал не я. Дак вот почему то в ней человек отказался от INT0 и написал просто на основе опроса PB6. Ну типа как только пин равен 0 то переключить PA0 и ждать пока не станет высокий уровень и потом опять пин PB6 = 0 ....ну и тд. Дак работает ведь. И четко причем....чудеса блин.
ARTEM277 вне форума  
Непрочитано 27.02.2016, 16:39  
woroba
Гражданин KAZUS.RUN
 
Регистрация: 13.06.2005
Адрес: РК г.Павлодар
Сообщений: 862
Сказал спасибо: 98
Сказали Спасибо 216 раз(а) в 139 сообщении(ях)
woroba на пути к лучшему
По умолчанию Re: Attiny 26L глючит прерывание INT0

Программное подавления дребезга.
Ну хотя бы так

Код:
ISR(INT0_vect)
{
  if(!(PINB&(1‹‹6))
  {
  _delay_us(60);

      if(!(PINB&(1‹‹6))
      {
   
       if(PORTA&(1‹‹0)){PORTA&=~(1‹‹0);}
           else {PORTA|=(1‹‹0);}
      }
   }
}
__________________
Не ошибается лишь тот, кто ни чего не делает!

Последний раз редактировалось woroba; 27.02.2016 в 16:53.
woroba вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Прерывание по совпадению таймера 1 gruffi AVR 38 21.10.2016 22:58
Не срабатывает прерывание watchdog у Attiny AVR v170 Proteus 4 03.02.2014 14:10
Мега88 внешнее прерывание по низкому уровню E_C_C Proteus 0 06.09.2012 11:47


Часовой пояс GMT +4, время: 12:10.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.