Подключение абсолютных энкодеров к общей шине данных
сигнал с энкодера желательно пропустить через тригера шмита, так сказать оцифровать
не понимаю зачем это нужно если:
На вход триггера Шмидта подается аналоговый сигнал, а с выхода уже снимается логический уровень.
У меня на выходе энкодеров уже цифра!
Как раз наоборот, это микроконтроллеры, для которых сигнал с энкодера желательно пропустить через тригера шмита, так сказать оцифровать .
Ошибаетесь, у эркодера выход стробируемый - триггер шмидта тут не нужен.
Еще оцифровать - это перевести аналоговый сигнал в число т.е. получить цифру - а это вообще из другой оперы.
прошивку человеку скинешь?
Легко, такая прога пишется за 10 минут, пусть с протоколом определится.
Да, можно поставить мегу в 100ногом ящике, и все 60 завести на один корпус.
Ошибаетесь, у эркодера выход стробируемый - триггер шмидта тут не нужен.
Он нужен, т.к. он поможет в борьбе с шумами (дребезгом) от механических контактов (по моему, энкодер ссылку на который дал в начале автор темы - механический, у меня подобный есть -“звониться” легко без подачи всякого напряжения питания).
Другое дело в AVR триггер Шмидта установлен по большинству входов, но имеет небольшой гистерезис, а в PIC гистерезис больше, но ножек с триггерами очень мало. Поэтому в цепях энкодера и ставят внешние триггеры Шмидта.
А при чём стробирование? При стробирование просто программно (например, повторный опрос) «давятся» шумы. Но это больше всего годится для обычной кнопки, где скорость её нажатия невелика. Где-то давно, на Телесистемах и электрониксе это обсуждали и пришли к выводу, что с механическим энкодером программный метод мало помогает, лучше совокупность аппаратного и программного решений.
Я бы, наверное, в таком случае опрашивал состояние входов (а их будет 7, у выше указанного энкодера) через К561КП2 (может использоваться для коммутации как аналоговых и цифровых сигналов, т.к. имеет «сквозной» вход/выход с сопротивлением открытого ключа при 5В = 200…300Ом) и далее её выход через внешний триггер Шмидта на любой МК или как вариант, использовать в качестве внешнего триггера внутренний компаратор с внешним выходом (в PIC) для расширения гистерезиса (п.#3 ссылки www.gamma.spb.ru/articles.php?i=31 )
…а их будет 7, у выше указанного энкодера)…
Их 8, судя по Dataheet www.platan.ru/pdf/datasheets/bourns/ACE.pdf . Просто сразу подумалось, что для 128 положений будет достаточно 7 линий.
…опрашивал состояние входов через К561КП2
Или можно у энкодера линии данных подключить на выхода МК или внешнего дешифратора, а общий вывод (вывода, если много энкодеров) на вход(а) МК или триггера Шмидта. Линии данных объединяются с одноименными других энкодеров.
Он нужен, т.к. он поможет в борьбе с шумами (дребезгом) от механических контактов
Это так. НО по входу СТРОБ энкодер передает готовые данные, нужно выставить строб и подождать 3-5 мкС, затем забирать данные.
А данных 8 а не 7 т.к. используется код Грея, он менее шумный чем двоичный.
…нужно выставить строб и подождать 3-5 мкС, затем забирать данные…
Судя по вышеуказанному DataSheet дребезг контактов (если я правильно понял термин «Contact Bounce») у энкодера АСЕ-128 может достигать 2,7мс.
Я бы начал измерять не раньше 5мс, а лучше ещё больше - на запас, с учётом износа и загрязнения контактов в процессе эксплуатации. Но за это время могут сдвинуть ручку энкодера и будет уже другое положение и новый дребезг. Так что, на мой взгляд, перед входом МК триггер Шмидта с большим гистерезисом всё-таки нужен.
5мс * 8 линий = 40мс * 8 энкодеров (у автора топика вроде столько их) = 320мс. + время на передачу в комп.
Т.е. обновление состояния любого из энкодера будет приблизительно 2-3 раза в секунду. Этого достаточно? Хорошо, что энкодер абсолютный, а то с инкрементальным могли бы быть пропуски.
Время обработки можно сократить, если на каждую линию данных поставить по триггеру Шмидта и сразу все 8 линий записывать в порт МК.