Эффективный способ подключения инкрементального энкодера

Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Ответить
Друг Кота
Аватара пользователя
Сообщения: 4779
Зарегистрирован: Сб апр 02, 2011 12:40:46
Откуда: Минск

Сообщение Леонид Иванович »

akl писал(а):Из DS на этот энкодер. Встроенные резисторы контроллера такой ток не обеспечивают.
В DS на энкодер Bourns PEC-16 сказано: "Contact Rating - 1 mA @ 5 VDC", что означает максимальный ток контактов. Никаких внешних резисторов не нужно.
akl писал(а):при обработке лапа контроллера переводится на вывод, подтверждающий пришедший перепад.
Зачем это нужно?
Контактная информация:
Реклама
akl
Друг Кота
Сообщения: 4450
Зарегистрирован: Пт мар 07, 2008 06:54:43
Откуда: Ижевск

Сообщение akl »

Контроллер сам себе подтверждает пришедшее состояние. Допустим, энкодер в исходном состоянии. Обе линии разомкнуты. На лапах-входах контроллера - 11. Энкодер начали вращать. Пришел перепад 1->0 по каналу A, контроллер переводит лапу A на вывод 0, блокируя возможную реакцию от дребезга.

Изображение
PEC-16.GIF
Не вижу, что эта характеристика максимальная. Там, где параметры имеют ограничения, об этом указано.
Последний раз редактировалось akl Ср апр 08, 2015 12:25:34, всего редактировалось 1 раз.
Реклама
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1433
Зарегистрирован: Вс дек 02, 2012 03:13:48
Откуда: Калининград

Сообщение balmer »

akl - может проще не читать состояние контактов какоето время? Перевод ножки микроконтроллера в Output - это сурово, очень сурово.

Я уж не говорю о увеличении потребления при таких номиналах резисторов :kill:

Задумчиво. STM32L на частоте 8 МГц будет потреблять ток 2 мА, что сравнимо с утечкой через один из таких резисторов.
Друг Кота
Аватара пользователя
Сообщения: 4779
Зарегистрирован: Сб апр 02, 2011 12:40:46
Откуда: Минск

Сообщение Леонид Иванович »

akl писал(а):контроллер переводит лапу A на вывод 0, блокируя возможную реакцию от дребезга.
Возможную реакцию на дребезг можно исключить алгоритмически. Для квадратурного энкодера сделать это очень просто, так как за один шаг (с тактильным эффектом) выходные сигналы энкодера меняют последовательно 4 состояния. А дребезг может приводить лишь к смене двух соседних состояний. Ваш вариант схемотехники и алгоритма обработки я воспринимаю как вредный совет.
akl писал(а):Не вижу, что эта характеристика максимальная. Там, где параметры имеют ограничения, об этом указано.
Как Вы переводите "Contact rating"? Как минимальный ток контактов? Это неправильно.
Последний раз редактировалось Леонид Иванович Ср апр 08, 2015 12:29:01, всего редактировалось 1 раз.
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
Друг Кота
Сообщения: 19495
Зарегистрирован: Чт фев 20, 2014 18:57:55

Сообщение Morroc »

Может это чтобы прерывание не прилетало от дребезга по этой ноге ?

Вроде тема эта неплохо разжевана, я себе несколько примеров выписал и ими пользуюсь, для ардуины есть библиотека - работает все это достаточно хорошо и без перевода ног на выход.
Последний раз редактировалось Morroc Ср апр 08, 2015 12:33:49, всего редактировалось 1 раз.
"Вся военная пропаганда, все крики, ложь и ненависть исходят от людей, которые на эту войну не пойдут !" / Джордж Оруэлл /
"Война - это,когда за интересы других,гибнут совершенно безвинные люди." / Уинстон Черчилль /
Реклама
Друг Кота
Аватара пользователя
Сообщения: 4779
Зарегистрирован: Сб апр 02, 2011 12:40:46
Откуда: Минск

Сообщение Леонид Иванович »

Начнем с того, что прерывания здесь вообще не нужны. Но даже если хочется на время запретить прерывания, сделать это можно с помощью соответствующего бита в регистре управления, а не грубой силой с помощью перевода порта на вывод, что требует еще и лишнего резистора. Такое решение выглядит ну очень экстравагантным, не могу смоделировать процессы, происходившие в голове человека, придумавшего это.
Контактная информация:
Реклама
Открыл глаза
Аватара пользователя
Сообщения: 59
Зарегистрирован: Вт ноя 07, 2006 14:14:16
Откуда: пос. Правдинский

Сообщение Gerik_PP »

acckyiboxxx писал(а): ...
Итак с теорией работы D-триггера разобрались теперь разберем принцип работы конвертора , для начала изобразим работу энкодера в виде нулей и единиц
№ этапа обработки 1 2 3 4
Состояние пина А 1 1 0 0
Состояние пина С 0 1 1 0
....
Всем доброго дня! Возвращаясь к схеме из 1-го поста, на мой взгляд решение не даёт 100% защиту от дребезга. На 3-м этапе обработки, нет защиты от дребезга на пине А при переходе с "1" на "0". В итоге, при малейшем дребезге даже нового энкодера, триггер «U1.В» получит лог 1 на пин «CLK» и установится :(
Буду решать проблему программно, без триггеров...
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 15613
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Вариант моего видения предобработчика энкодера
http://radiokot.ru/forum/viewtopic.php? ... 2#p2808012
На одном лишнем ПИКе. С прожкой... (открытый исходник, ассемблер).
:roll:
Ответить

Вернуться в «Периферия»