Страница 1 из 3
Знакомства с помехами на AVR
Добавлено: Чт июн 13, 2013 16:43:32
Мikа
Я сразу извиняюсь, если перепутал раздел или тема уже была.
Вот небольшая история:
Начал я ковыряться с энкодером. Всё, вроде бы не плохо, понял и разобрался.
Работал с привычным трёх разрядным семисегментным индикатором.
Программа должна была выводить на разряд сотен число от 0 до 9. На два младших разряда она выводила состояние "кнопок" энкодера. То есть горит сегмент, на опрашиваем ноге порта 1, не горит 0. Ничего сложного.
Алгоритм примерно такой:
-Заносим PINC в C
-Цикл динамической индикации
-Если C!=PINC, то увеличить число в разряде сотен
-Опрос порта C, чтобы получить данные о ногах энкодера.
Но число на сотенном разряде хаотично менялось само собой. То замирало. То быстро менялось, то медленно. Я долго перечитывал программу, пытаясь найти ошибку там. Я не думал на наводки, потому что младшие разряды не дёргались. Осциллограф так же не показывал никаких изменений на ножках. Я думал, раз PINC не меняется, дело в программе.
Но тут я поводил пальцем по контроллеру и увидел, что он реагирует на это. Так же он реагировал на палец вблизи порта C.
Вывод: помехи.
Стоит Мега32, с 16 МГц кварцем.
Резюмируя всё это, я хотел спросить вот что: чтобы избавиться от этих помех, стоит сделать печатную плату, у котрой между дорожками не будет возникать ёмкость. Или ещё что-то можно придумать?
Питание на плату приходит через стабилизатор КР142ЕН5, с конденсаторами, как опложено по его даташиту. Кварц тоже имеет кондеи по 22 пФ, как сказано в учебнике.
Re: Знакомства с помехами на AVR
Добавлено: Чт июн 13, 2013 20:50:28
YS
Все цифровые входы должны быть подтянуты к известному потенциалу если есть вероятность того, что они могут остаться висеть в воздухе (т.е., быть неподключенными никуда). Например, можно соединить их резисторами с шиной питания. Можно использовать встроенную подтяжку (см. даташит).
Re: Знакомства с помехами на AVR
Добавлено: Чт июн 13, 2013 22:02:21
Мikа
Спасибо за совет! Про встроенную подтяжку я в курсе, но везде пишут, что она не айс, лучше я сделаю внешнюю через 10 кОм. Что-то я про неподключенные выводы не подумал. А вообще для начала буду проверять не весь порт, а два нужных пина. Это сразу даст понять, поможет ли здесь подтяжка...
Скажите ещё вот что. А можно ли осциллографом увидеть такие помехи? Я смотрел при дискретизации (надеюсь, не перепутал слово) 20 мс на клетку.
Осциллограф.
Re: Знакомства с помехами на AVR
Добавлено: Чт июн 13, 2013 22:13:31
SmarTrunk
Подтяжка категорически нужна. 10кОм нормально.
Re: Знакомства с помехами на AVR
Добавлено: Пт июн 14, 2013 00:11:12
Мikа
А можно ли подтягивать все не используемые ноги через один резистор?
Re: Знакомства с помехами на AVR
Добавлено: Пт июн 14, 2013 00:16:02
SmarTrunk
Что делать с НЕиспользуемыми ногами - это отдельный разговор. В общем, крайне не желательно соединять их вместе, также как и соединять с минусом или плюсом питания. Один из вариантов - все неиспользуемые выводы сделать выходами.
Re: Знакомства с помехами на AVR
Добавлено: Пт июн 14, 2013 00:32:01
Мikа
Кстати, экономичный вариант

А неиспользуемые ноги могут давать значительные помехи на используемые входы? Это я к тому, что в программе я накосячил. Полностью забыв по дребезг неподключенных ног я опрашивал весь порт и ждал, что изменение будет именно на первых двух, которые подключены. Что-то мне кажется, всё заработает сразу после того, как я почищу по маске биты неиспользуемых ног...

Re: Знакомства с помехами на AVR
Добавлено: Пт июн 14, 2013 06:46:56
BOB51
Замечание относительно "висящих в небытие" выводов действительно только для конструкций основанных на "рассыпухе".
При использовании МК данная методика неприемлема - для МК следует внимательно изучить исходный даташит на сам кристалл и на порождающее семейство.
Основные источники проблем - "кривые программы" и неверная топология монтажа.

Re: Знакомства с помехами на AVR
Добавлено: Пт июн 14, 2013 08:38:09
Мikа
Но я видел на серийных платах не подключенные выводы МК, всё-таки иногда на них забивают

У меня всё заработало. Как и подумал вчера - нужно было опрашивать не весь порт, а два нужных пина. Спасибо за советы

Re: Знакомства с помехами на AVR
Добавлено: Пт июн 14, 2013 08:40:28
ploop
Но я видел на серийных платах не подключенные выводы МК
Это нормально. При этом они настроены на
выход, и всегда имеют устойчивое состояние. Или на вход с подтяжкой, что аналогично.
Re: Знакомства с помехами на AVR
Добавлено: Пт июн 14, 2013 09:47:26
Kavka
Если на выход, то они ещё и ток не потребляют в отличии от подтяжки. Технология КМОП ведь

Re: Знакомства с помехами на AVR
Добавлено: Пт июн 14, 2013 09:56:36
ploop
Да там ток-то... в большинстве случаев не критично.

Re: Знакомства с помехами на AVR
Добавлено: Пт июн 14, 2013 11:03:38
ibiza11
ну ток подтяжки при питании 5В (внутреннюю подтяжку возьмем 50кОм), будет 100мкА. Это если вывод один. А если несколько сразу... Лучше подтяжку отключить.
Re: Знакомства с помехами на AVR
Добавлено: Пт июн 14, 2013 11:08:12
SmarTrunk
Почему через подтяжку будет ток? С учетом того, что вход КМОП имеет бесконечное входное сопротивление.
Другое дело, что внутренняя подтяжка может быть слишком высокоомна для четкой фиксации состояния входа, особенно, если к нему подключен какой-то провод.
Re: Знакомства с помехами на AVR
Добавлено: Пт июн 14, 2013 11:20:40
ibiza11
ну так про это и говорю. подтягивать нужно зачем? чтобы наведенное напряжение не перетянуло вход из одного состояния в другое. следовательно через нее будет течь наведенный ток.
Добавлено: хм... а этот ток разве будет влиять на потребление? кто тут гуру наноамперов, поясните)))
Re: Знакомства с помехами на AVR
Добавлено: Пт июн 14, 2013 11:31:27
Мikа
А как вы избавляетесь от дребезга энкодера?

Я вот шутки ради вставлял задержки, но когда у тебя тут работает динамическая индикация, не трудно догадаться, что происходит. Да и на отклике энкодера это сказывается... Ставить крошечные кондеи?

P.S. Это не жутко важный в данный момент вопрос, т.к. энкодер ко мне в руки попал случайно и программировал я под него исключительно для получения опыта в Си

Это я к тому, что гневно в поиск не посылайте, плз))
Re: Знакомства с помехами на AVR
Добавлено: Пт июн 14, 2013 11:46:12
ploop
хм... а этот ток разве будет влиять на потребление? кто тут гуру наноамперов, поясните)))
Стоп. Что внутренняя, что внешняя, грубо говоря, тупо подтягивает к шине затвор полевика. Никакого тока там не будет. Во всяком случае такого, что как-то может повлиять на характеристики изделия.
Через несмытый флюс на плате на порядки больше утечёт
Re: Знакомства с помехами на AVR
Добавлено: Пт июн 14, 2013 11:50:04
SmarTrunk
Мikа писал(а):Ставить крошечные кондеи?

Это никогда не повредит, и даже очень полезно, вот по такой схеме, как в этом даташите, например:
http://www.fulcrum.ru/LineCard/Switches ... pe_E37.pdfНо полностью это не решит проблему дребезга (хотя заметно уменьшит). Чтобы полностью, это надо программно, и не задержками, а последовательным анализом состояний. Были тут темы...
Re: Знакомства с помехами на AVR
Добавлено: Пт июн 14, 2013 11:53:06
ploop
И код был.
Кондёры плохо справляются даже с кнопками, лично убедился.
Re: Знакомства с помехами на AVR
Добавлено: Пт июн 14, 2013 12:03:45
Мikа
Про последовательные проверки состояния - это я тоже видел, надо будет поковырять
