Страница 1 из 3
tiny2313 внешние прерывания
Добавлено: Пт апр 08, 2011 20:25:59
timo13
Прошу помощи. Никак не могу отладить устройство которое включает моторчик на 2 сек. по истечении некоторого интервала времени. Программа имеет четыре подпрограммы, выбор кнопкой S1. Кнопка S2 включает моторчик на 2 сек. в любой момент. Устройство работает, но работает нестабильно, в момент включения мотора прерывания начинали происходить постоянно и хаотично. Конденсатор С1 от части ситуацию улучшил, намного, но помехи все равно остались.
Re: tiny2313 внешние прерывания
Добавлено: Пт апр 08, 2011 20:33:00
ploop
1. Неправильная разводка земли или питания
2. Подтягивающие резисторы на INT0-INT1 надо уменьшить - взять ≈1К или меньше
3. Параллельно этим подтягивающим резисторам - керамику на 0,1мкФ
4. Резистор 10К в затворе полевика переместите правее резистора 300 Ом непосредственно на затвор
5. Ставьте позиционные обозначения на схемах!
Re: tiny2313 внешние прерывания
Добавлено: Пт апр 08, 2011 20:44:22
Пухич
Подобным образом подавать прерывания - порнография. Если уж нельзя сделать нормальный антидребезг на триггерах, то просто уйдите от прерываний - кто мешает сделать опрос ног (конечно же с программным антидребезгом) с последующим вызовом подпрограмм?
Последуйте совету:
ploop писал(а):1. Неправильная разводка земли или питания
Проверьте этот момент. Что представляет собой источник питания 2,6В? Есть сильное подозрение на его высокое выходное сопротивление или недостаточно быструю реакцию регулятора (если там КРЕНка). Нужен кондер посуровее прямо возле гадского моторчика, а все питание МК и его обвязки можно отвязать дросселем и прикрыть отдельным кондером.
Re: tiny2313 внешние прерывания
Добавлено: Пт апр 08, 2011 21:17:37
timo13
Источник питания два пальчиковых аккума. Опрос ног не получается, т.к. во время отработки задержки МК, по задумке, должен уйти в спящий режим, а проснуться по прерыванию таймера, или по кнопке S2
Re: tiny2313 внешние прерывания
Добавлено: Пт апр 08, 2011 21:33:29
timo13
ploop писал(а):5. Ставьте позиционные обозначения на схемах!
К своему стыду, я не знаю , что это значит.
Re: tiny2313 внешние прерывания
Добавлено: Пт апр 08, 2011 21:34:47
timo13
Пухич писал(а):Нужен кондер посуровее прямо возле гадского моторчика, а все питание МК и его обвязки можно отвязать дросселем и прикрыть отдельным кондером.
Если можно, пожалуйста, по подробнее.
Re: tiny2313 внешние прерывания
Добавлено: Пт апр 08, 2011 22:11:03
urry
Re: tiny2313 внешние прерывания
Добавлено: Пт апр 08, 2011 22:16:50
ploop
timo13 писал(а):ploop писал(а):5. Ставьте позиционные обозначения на схемах!
К своему стыду, я не знаю , что это значит.
Обозначения R1, R2, C1 и т.д.
Просто когда что-то поясняют на схеме, можно сказать "увеличь вооон тот резистор между нижним портом контроллера и землёй", а можно - "увеличь R5". Есть разница?
Re: tiny2313 внешние прерывания
Добавлено: Пт апр 08, 2011 22:22:17
ploop
urry, замечательная статья! Полезно перечитать, хотя правила вроде общеизвестные.
Re: tiny2313 внешние прерывания
Добавлено: Пт апр 08, 2011 22:59:24
Пухич
timo13 писал(а):Источник питания два пальчиковых аккума.
Возможно это объясняет странности с паразитными прерываниями при включении мотора (хотя еще неизвестно, насколько сильно гадит дребезг кнопок - может только он и гадит). Пожалуй даже странно, что сам МК не ресетится при включении мотора....
Re: tiny2313 внешние прерывания
Добавлено: Пт апр 08, 2011 23:05:00
ploop
Пожалуй даже странно, что сам МК не ресетится при включении мотора....
Он вполне может несколько раз ребутнуться, пока ротор не стронется с места, и импульсы тока станут меньше. Порой этого можно и не заметить.
Re: tiny2313 внешние прерывания
Добавлено: Сб апр 09, 2011 01:16:22
Пухич
ploop писал(а):Он вполне может несколько раз ребутнуться, пока ротор не стронется с места, и импульсы тока станут меньше. Порой этого можно и не заметить.
Само собой это заметить нельзя. Но автор про ребуты ничего не сказал, видимо есть некая уверенность в их отсутствии.
Re: tiny2313 внешние прерывания
Добавлено: Сб апр 09, 2011 10:05:43
phanis
Для диагностики можно использовать регистр MCUSR т.е почему произошел сброс.
И еще конденсатор между RESET и землей 0.1 мкф. диод от RESET на
-|>|- + питания.
То что посоветовал ploop
1. Неправильная разводка земли или питания
2. Подтягивающие резисторы на INT0-INT1 надо уменьшить - взять ≈1К или меньше
3. Параллельно этим подтягивающим резисторам - керамику на 0,1мкФ
4. Резистор 10К в затворе полевика переместите правее резистора 300 Ом непосредственно на затвор
5. Ставьте позиционные обозначения на схемах!
Кроме
2. Подтягивающие резисторы на INT0-INT1 надо уменьшить - взять ≈1К или меньше. Энергопотребление схемы увеличиться при нажатии на кнопки.
4. Резистор 10К в затворе полевика переместите правее резистора 300 Ом непосредственно на затвор. Напряжение и так достаточно низкое.
Нужна задержка после включения питания, перезагрузки. Чтобы конденсаторы успели зарядится, после разрешенить прерывания.
И что касается программной части вы правильно настроили INT0-INT1 - т.е по спаду? Можно ведь и по лог 0;
Re: tiny2313 внешние прерывания
Добавлено: Сб апр 09, 2011 10:25:01
GP1
можно и мне немножко поумничать
отдели цепи питания двигла от цепей питания мк, проще всего питание на мк подавать через диод (в прямом направлении ессно) и поставить после диода электролит 100..200 мкф, ребуты пропадут.
Re: tiny2313 внешние прерывания
Добавлено: Сб апр 09, 2011 10:59:23
timo13
МК не перезагружается. С этого-то и началась эпопея. Благодоря уважаемым участникам этого замечательного форума, в цепи питания МК появился кондер С2. Без этого кондера схема просто не работает, мотор чуть дергается и происходит ребут, и так бесконечно. Я не рисовал на схеме, но к порту "В" подключен семисегментный индикатор, который кратковременно отображает номер выбранной подпрограммы. Если бы МК перезагружался, то отображалась подпрограмма №1, это по логике проги, после инициализации МК вызывается подпрограмма №1. А у меня сейчас, после первого срабатывания мотора по прераванию таймера, начинают произвольно перебираться подпрограммы, как если бы мы нажимали S1, и мотор иногда срабатывает как по нажатию S2. Повторюсь, кондер С1на моторе ситуацию улучшил, в разы, но не исправил окончательно. То есть происходят паразитные прерывания, кнопки я не трогаю вообще.
Re: tiny2313 внешние прерывания
Добавлено: Сб апр 09, 2011 11:33:30
Пухич
Значит надо решить вопрос с качеством питания и дальше уже смотреть.
Re: tiny2313 внешние прерывания
Добавлено: Сб апр 09, 2011 11:52:49
GP1
timo13 писал(а): Повторюсь, кондер С1на моторе ситуацию улучшил, в разы, но не исправил окончательно. То есть происходят паразитные прерывания, кнопки я не трогаю вообще.
Я же говорю не о кондере на движке, а о диоде и кондере на мк.
Отдели цифровую часть от "силовой"
Re: tiny2313 внешние прерывания
Добавлено: Сб апр 09, 2011 13:08:20
timo13
GP1 писал(а):Я же говорю не о кондере на движке, а о диоде и кондере на мк.
Отдели цифровую часть от "силовой"
Можно параметры конденсатора?
Re: tiny2313 внешние прерывания
Добавлено: Сб апр 09, 2011 13:16:21
GP1
timo13 писал(а):GP1 писал(а):Я же говорю не о кондере на движке, а о диоде и кондере на мк.
Отдели цифровую часть от "силовой"
Можно параметры конденсатора?
я же писал
GP1 писал(а):можно и мне немножко поумничать
отдели цепи питания двигла от цепей питания мк, проще всего питание на мк подавать через диод (в прямом направлении ессно) и поставить после диода электролит 100..200 мкф, ребуты пропадут.
Re: tiny2313 внешние прерывания
Добавлено: Сб апр 09, 2011 13:22:02
timo13
phanis писал(а):Нужна задержка после включения питания, перезагрузки. Чтобы конденсаторы успели зарядится, после разрешенить прерывания.
И что касается программной части вы правильно настроили INT0-INT1 - т.е по спаду? Можно ведь и по лог 0;
Задержка есть, а вот с фронтами я не очень понимаю разницу, у меня настроены по переднему фронту. Поделитесь Вашими доводами. И по поводу лог 0 тоже. Вообще везде, где я нашел инфу, кнопки подключают с подачей земли на ножку МК. Я же сделал с подачей питания, поскольку прерывание должно разбудить МК из испящего режима. Я вообще правильно рассуждаю?