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

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

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

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

akl писал(а):Из DS на этот энкодер. Встроенные резисторы контроллера такой ток не обеспечивают.


В DS на энкодер Bourns PEC-16 сказано: "Contact Rating - 1 mA @ 5 VDC", что означает максимальный ток контактов. Никаких внешних резисторов не нужно.

akl писал(а):при обработке лапа контроллера переводится на вывод, подтверждающий пришедший перепад.


Зачем это нужно?
akl
Друг Кота
Сообщения: 4444
Зарегистрирован: Пт мар 07, 2008 06:54:43
Откуда: Ижевск

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

Сообщение akl »

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

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

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

Сообщение balmer »

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

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

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

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

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

akl писал(а):контроллер переводит лапу A на вывод 0, блокируя возможную реакцию от дребезга.


Возможную реакцию на дребезг можно исключить алгоритмически. Для квадратурного энкодера сделать это очень просто, так как за один шаг (с тактильным эффектом) выходные сигналы энкодера меняют последовательно 4 состояния. А дребезг может приводить лишь к смене двух соседних состояний. Ваш вариант схемотехники и алгоритма обработки я воспринимаю как вредный совет.

akl писал(а):Не вижу, что эта характеристика максимальная. Там, где параметры имеют ограничения, об этом указано.


Как Вы переводите "Contact rating"? Как минимальный ток контактов? Это неправильно.
Последний раз редактировалось Леонид Иванович Ср апр 08, 2015 12:29:01, всего редактировалось 1 раз.
Morroc
Друг Кота
Сообщения: 19495
Зарегистрирован: Чт фев 20, 2014 18:57:55

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

Сообщение Morroc »

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

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

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

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

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

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

Сообщение Gerik_PP »

acckyiboxxx писал(а):...
Итак с теорией работы D-триггера разобрались теперь разберем принцип работы конвертора , для начала изобразим работу энкодера в виде нулей и единиц
№ этапа обработки 1 2 3 4
Состояние пина А 1 1 0 0
Состояние пина С 0 1 1 0
....

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

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

Сообщение BOB51 »

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

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