Страница 5 из 5
Re: Эффективный способ подключения инкрементального энкодера
Добавлено: Ср апр 08, 2015 12:04:09
Леонид Иванович
akl писал(а):Из DS на этот энкодер. Встроенные резисторы контроллера такой ток не обеспечивают.
В DS на энкодер Bourns PEC-16 сказано: "Contact Rating - 1 mA @ 5 VDC", что означает максимальный ток контактов. Никаких внешних резисторов не нужно.
akl писал(а):при обработке лапа контроллера переводится на вывод, подтверждающий пришедший перепад.
Зачем это нужно?
Re: Эффективный способ подключения инкрементального энкодера
Добавлено: Ср апр 08, 2015 12:09:16
akl
Контроллер сам себе подтверждает пришедшее состояние. Допустим, энкодер в исходном состоянии. Обе линии разомкнуты. На лапах-входах контроллера - 11. Энкодер начали вращать. Пришел перепад 1->0 по каналу A, контроллер переводит лапу A на вывод 0, блокируя возможную реакцию от дребезга.
PEC-16.GIF
Не вижу, что эта характеристика максимальная. Там, где параметры имеют ограничения, об этом указано.
Re: Эффективный способ подключения инкрементального энкодера
Добавлено: Ср апр 08, 2015 12:20:21
balmer
akl - может проще не читать состояние контактов какоето время? Перевод ножки микроконтроллера в Output - это сурово, очень сурово.
Я уж не говорю о увеличении потребления при таких номиналах резисторов
Задумчиво. STM32L на частоте 8 МГц будет потреблять ток 2 мА, что сравнимо с утечкой через один из таких резисторов.
Re: Эффективный способ подключения инкрементального энкодера
Добавлено: Ср апр 08, 2015 12:27:05
Леонид Иванович
akl писал(а):контроллер переводит лапу A на вывод 0, блокируя возможную реакцию от дребезга.
Возможную реакцию на дребезг можно исключить алгоритмически. Для квадратурного энкодера сделать это очень просто, так как за один шаг (с тактильным эффектом) выходные сигналы энкодера меняют последовательно 4 состояния. А дребезг может приводить лишь к смене двух соседних состояний. Ваш вариант схемотехники и алгоритма обработки я воспринимаю как вредный совет.
akl писал(а):Не вижу, что эта характеристика максимальная. Там, где параметры имеют ограничения, об этом указано.
Как Вы переводите "Contact rating"? Как минимальный ток контактов? Это неправильно.
Re: Эффективный способ подключения инкрементального энкодера
Добавлено: Ср апр 08, 2015 12:28:46
Morroc
Может это чтобы прерывание не прилетало от дребезга по этой ноге ?
Вроде тема эта неплохо разжевана, я себе несколько примеров выписал и ими пользуюсь, для ардуины есть библиотека - работает все это достаточно хорошо и без перевода ног на выход.
Re: Эффективный способ подключения инкрементального энкодера
Добавлено: Ср апр 08, 2015 12:31:51
Леонид Иванович
Начнем с того, что прерывания здесь вообще не нужны. Но даже если хочется на время запретить прерывания, сделать это можно с помощью соответствующего бита в регистре управления, а не грубой силой с помощью перевода порта на вывод, что требует еще и лишнего резистора. Такое решение выглядит ну очень экстравагантным, не могу смоделировать процессы, происходившие в голове человека, придумавшего это.
Re: Эффективный способ подключения инкрементального энкодера
Добавлено: Пн июн 06, 2016 01:46:48
Gerik_PP
acckyiboxxx писал(а):
...
Итак с теорией работы D-триггера разобрались теперь разберем принцип работы конвертора , для начала изобразим работу энкодера в виде нулей и единиц
№ этапа обработки 1 2 3 4
Состояние пина А 1 1 0 0
Состояние пина С 0 1 1 0
....
Всем доброго дня! Возвращаясь к схеме из 1-го поста, на мой взгляд решение не даёт 100% защиту от дребезга. На 3-м этапе обработки, нет защиты от дребезга на пине А при переходе с "1" на "0". В итоге, при малейшем дребезге даже нового энкодера, триггер «U1.В» получит лог 1 на пин «CLK» и установится
Буду решать проблему программно, без триггеров...
Re: Эффективный способ подключения инкрементального энкодера
Добавлено: Чт июл 14, 2016 10:30:20
BOB51
Вариант моего видения предобработчика энкодера
http://radiokot.ru/forum/viewtopic.php? ... 2#p2808012
На одном лишнем ПИКе. С прожкой... (открытый исходник, ассемблер).
