Вопрос. Код грея через последовательную шину, как ?

Обсуждаем цифровые устройства...
Ответить
Родился
Сообщения: 5
Зарегистрирован: Вт май 12, 2015 11:05:01

Сообщение voipmaster »

Здравствуйте уважаемые Коты.
Собрал энкодер по схеме http://www.radiokot.ru/forum/viewtopic.php?t=59702 . Всё великолепно, но нарисовалась одна проблемка.
У микроконтроллера в схеме, куда хочется подключить энкодер, осталась свободной только одна нога, а энкодер, понятно имеет 2 выхода.

Первоначальная задумка была дополнить энкодер генератором ШИМ со скважностью, соответствующей установленным битам (1/4, 2/4 итд)
Однако более изящным решением, как мне кажется, заставить энкодер выдавать импульс определённой длинны, к примеру :
1 ms , когда выходы энкодера 1 1
0.5 ms , когда выходы энкодера 1 0
В случаях 0 1 и 00 - вообще ничего не выдавать.
Иными словами рассматривать один выход энкодера, как управляющий (tick) , второй - направление вращения, что вполне соответствует коду грея.
Такой сигнал очень просто обработать микроконтроллером черз одну ногу и прерывание. Понятно, что получим в два раза меньше значений энкодера на оборот, но это не большое зло.

К сожалению электроника для меня хобби, и совсем не то на что учился, поэтому самостоятельные попытки создать нужную схему закончились провалом.
Чувствую нутром, что это как-то должно решаться 555 таймером или парой компараторов, но собственных мозгов опыта не хватает.
Можно конечно поставить тиньку и всё разрулить програмно, но мы простых путей не ищем :)) . В гугле тоже ничего не нашёл, наверное не правильно искал.

Друзья, может в качестве благотворительной помощи доморощенным электронщикам ткнёте носом в правильную схему или ссылку.
Заранее спасибо за помощь
Реклама
Друг Кота
Аватара пользователя
Сообщения: 20093
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Сообщение Gudd-Head »

Если у вас на этой ноге есть АЦП, может использовать его? А энкодер будет давать разные значения... сопротивления/напряжения.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Реклама
Родился
Сообщения: 5
Зарегистрирован: Вт май 12, 2015 11:05:01

Сообщение voipmaster »

Спасибо за ответ.

АЦП уже занят ))) . На нём K-пара сидит.
Можно конечно сделать "псевдо" АЦП из конденсатора и резистора и замерять время заряда на любой ноге.

Было-бы интересно так сказать академическое решение, т.е "как в школе учили', для самообразования.
Мне кажется послать пачку импульсов в зависимости от состояния входов - задача в электронике достаточно тривиальная.
Наверное что-то типа пары мультивибраторов с длительностями 0.5 и 1 мс. Причём второй ждущий с 2-мя входами.
Или таймеру 555 что-то такое хитрое на какую-нибудь ногу подать, что-бы он выдал импульс в 2 раза длиннее(короче).
Как-то так.

Только вот сам ничего рабочего не смог нарыть.
Родился
Сообщения: 5
Зарегистрирован: Вт май 12, 2015 11:05:01

Сообщение voipmaster »

Отвечу сам себе. Может кому-то пригодится. Нарыл пару вариантов.

Во первых можно 555 таймером. У таймера есть модулирующий вход на 5-ой ноге. Подав на него напряжение с делителя можно управлять длинной импульса.
Проблема, что если следование импульсов с энкодера будет меньше периода таймера, таймер тупо вообще не включится.
Т.е. к энкодеру не очень подходит, а может просто было лень рассчитать как надо таймер.

Ко второму варианту подтолкнул посыл из теории электроники подчерпнутый на просторах Интернета,
который гласил, что любое нечётное количество инверсионных элементов начинают генерить серию импульсов.
Родилась такая "схема". Почему в кавычках ? Да потому что схемой это назвать сложно. В протеусе заработала
после значительных переделок. Но может кому-то пригодиться как идея.

Скажу сразу настроить её у меня то-же не получилось.

Изображение

Для решения своей задачи, признав в очередной раз уровень собственного ламерства в электронике втулил attiny13.

Всем спасибо, кто откликнулся.
Реклама
Эиком - электронные компоненты и радиодетали
Ответить

Вернуться в «Цифровая техника»