Вопрос шумы на ножке прерывания.
- Войдите на сайт для отправки комментариев
Добрый день. Помогите пожалуйста разобраться с вопросом потому как какой-нить цельной информации найти не могу.
Задача: есть avr контроллер Attiny13 на ножке которого генерируются пачки импульсов. Этот вывод я подключаю на int 0 arduino mega. Считаю количество импульсов в секунду и вывожу на экран. И вот значения импульсов гуляют в диапазоне от 21000 до 44000. (значения округлены). Сначала грешил на Аттини. Например при приделителе 1/64 и выше ардуина импульсы вообще не обозначала, и судя по всему это проблеми АТтини, т.к. при подключении на ее вывод светодиода тот тоже на повышенные значения пределителя не реагировал.
Но потом я заметил, что int 0 "фонит" при отключенном источнике импульсов и решил притянуть вывод ардуины (2) к земле, а позже сделать RC цепочку. Значения так же меняются, но цифры уже совсем другие. Очевидно влияние на значения импульсов емкости конденсатора.
Т.е. я совершенно не могу понять на что опираться в связи с этим всем. по-идее ардуина должна біла просто считать входящие импульсы, а тут она ловит какие-то посторонние шумы. как получить достоверный результат?
Считаю количество импульсов в секунду.............. И вот значения импульсов гуляют в диапазоне от 21000 до 44000................. и судя по всему это проблеми АТтини, т.к. при подключении на ее вывод светодиода тот тоже на повышенные значения пределителя не реагировал.
Вы по светодиоду на глаз собрались определять разницу при частоте в тысячи импульсов в секунду???
Но потом я заметил, что int 0 "фонит" при отключенном источнике импульсов и решил притянуть вывод ардуины (2) к земле, а позже сделать RC цепочку. Значения так же меняются, но цифры уже совсем другие. Очевидно влияние на значения импульсов емкости конденсатора.
Правильно, нужно было притянуть. Но зачем там RC-цепочка??? Каким образом притягивали к земле?
Прерывания отлавливаете по фронтам? (RISING или FALLING)
Вы по светодиоду на глаз собрались определять разницу при частоте в тысячи импульсов в секунду???
Нет. Определять будет TSOP1736. Ну... по крайней меря я на это надеюсь...
Правильно, нужно было притянуть. Но зачем там RC-цепочка??? Каким образом притягивали к земле?
Прерывания отлавливаете по фронтам? (RISING или FALLING)
Притянул к земле резистором 10к. Поскольку я пока малограммотен, пока искал инфу где-то увидел RC-цепочку, решил попробовать еще так.
Да, прерывание по фронтам. Конкретно сейчас - RISING.
Ясно. Уберите RC-цепочку и пробуйте стягивающие к земле резисторы номиналом поменьше. Постепенно снижайте номинал вплоть до 1 кОм (или даже 680 Ом), должно помочь от помех.
а как понять, что нужно остановиться?
шум давал значения до 500 срабатываний, а счет показывает от 22000 срабатываний до 44000. Т.е. разброс такой нехилый...
Может есть другой способ более точно считать количество импульсов?
Есть такая штучка как фильтр.
Поставьте частоту среза раза в 2-4 выше вашей максимальной частоты- и будет вам счастье.
РЦ цепочка кстати тоже фильтр.
http://vt-tech.eu/articles/calculators/165-simple-rc-filters.html
http://www.radioamcalc.narod.ru/
Вам нужен фильтр нижних частот...
Ну как ножка прерывания перестанет ловить помехи (без подключенной аттини), так и остановитесь.
P.S. Да, видимо про RC-цепочку я погорячился.
т.е. вместо подтягивающего резистора поставить фильтр низких частот?
Ваша Attiny13 уже даёт чёткий сигнал от "0" до "1".
Это так ? Ведь там не открытый коллектор, правда?
Поэтому никаких "подтяжек" вам не надо.
Потому что этот резистор тоже войдёт в состав фильтра.
А если честно то я не понимаю что вы там ловите.
Attiny13 даёт достаточно "мощьный" сигнал чтобы никакая помеха не смогла его изменить.
Повесьте на вход 1000 пик и проверьте надёжность соединения земель
Добрый день. Помогите пожалуйста разобраться с вопросом потому как какой-нить цельной информации найти не могу.
Задача: есть avr контроллер Attiny13 на ножке которого генерируются пачки импульсов. Этот вывод я подключаю на int 0 arduino mega.
попробовать использовать 5 таймер в СТС и его внешний вход -47
Зачем там фильтры, действительно, ..... совсем непонятно. Ошибка скорее где-то в обработке.
Ваша Attiny13 уже даёт чёткий сигнал от "0" до "1".
Это так ? Ведь там не открытый коллектор, правда?
Честно говоря, впервые пробую голый микроконтроллер. Что вы имеете в виду под коллектором? У меня в Тини13 установлен таймер в режим Normal, прерывание по переполнению и флаги изменения сигнала на ОСОА при переполнении.
А если честно то я не понимаю что вы там ловите.
Attiny13 даёт достаточно "мощьный" сигнал чтобы никакая помеха не смогла его изменить.
Повесьте на вход 1000 пик и проверьте надёжность соединения земель
мне нужна гребенка частотой 36 кГц для ИК баръера. поскольку осциллографа нет, пытаюсь понять, что там АТтини выдает. Пробовал понизить частоту импульсов пределителем (ну, что бы разобраться), но Аттини не выдает сигнала если приделитель установлен на 1/64 и выше. Это второй вопрос, который я не пойму... По-идее ардуина должна выдавать однородные количество импульсов, но при прочих равных условиях, если сделать выкл/вкл значения могут изменяться от 22000 до 44000 и я не знаю на, что мне ориентироваться...
попробовать использовать 5 таймер в СТС и его внешний вход -47
Зачем там фильтры, действительно, ..... совсем непонятно. Ошибка скорее где-то в обработке.
можете поподробней объяснить?
http://chipenable.ru/index.php/programming-avr/item/191-uchebnyy-kurs-av...
возможно твоя обработка инт0 не успевает за входными импульсами, ты же и сам не уверен сколько там реально выдается, а таймер в СТС может считать с максимально возможной для проца скоростью, формировать прерывание, и у тебя будет время на его обработку.
Добрый день. Помогите пожалуйста разобраться с вопросом потому как какой-нить цельной информации найти не могу.
Задача: есть avr контроллер Attiny13 на ножке которого генерируются пачки импульсов. Этот вывод я подключаю на int 0 arduino mega. Считаю количество импульсов в секунду и вывожу на экран. И вот значения импульсов гуляют в диапазоне от 21000 до 44000. (значения округлены). Сначала грешил на Аттини. Например при приделителе 1/64 и выше ардуина импульсы вообще не обозначала, и судя по всему это проблеми АТтини, т.к. при подключении на ее вывод светодиода тот тоже на повышенные значения пределителя не реагировал.
Но потом я заметил, что int 0 "фонит" при отключенном источнике импульсов и решил притянуть вывод ардуины (2) к земле, а позже сделать RC цепочку. Значения так же меняются, но цифры уже совсем другие. Очевидно влияние на значения импульсов емкости конденсатора.
Т.е. я совершенно не могу понять на что опираться в связи с этим всем. по-идее ардуина должна біла просто считать входящие импульсы, а тут она ловит какие-то посторонние шумы. как получить достоверный результат?
Считать ипульсы на борту тини и перелавать их количество по любому желаемому интерфейсу, например, по однопроводному, нет возможности?
Блин, опять ХШ не фурычит .. код всего этого безобразия - где? А схема подключения? :)