Обсуждаем контроллеры компании Atmel.
Пт июл 05, 2019 09:24:31
Jack_A, Ну - у вас 8 входов АЦП (коих в восьмой меге в дипе всего 6
), у меня 2.
И ваше сопряжение не отменяет к.з. между каналами и влияние соседнего энкодера.
Суть - не соединять энкодеры друг с другом никак.
R-2R будет давать 256 уровней. И состояние энкодера вычисляется одним запуском АЦП. Как раз настроить бит ADLAR в 1 - и брать старший байт результата преобразования. Теоретически, при использовании 1% резисторов должно получиться.....
Добавлено after 1 minute 20 seconds:Так , стоп. R-2R не катит.
Он требует на входе push-pull, а тут вход или в воздухе или подключен к С (земля или питание).
Говорю ж - в порядке бреда идея была
Пт июл 05, 2019 09:36:49
пошто не катит? катит, только нагрузку на выход надо (желательно низкоомную, чтобы напряжение на матрице сильно не менялось)
ещё, 256 значений - довольно тонко... если сделать 2х4бит, то будет только 16 уровней напряжения (но 2 выхода = 2 ноги на энкодер)
Пт июл 05, 2019 12:05:39
Матрица R-2R требует подтяжки своих входов либо к земле, либо к питанию. В воздухе оставлять вход нельзя, насколько я помню. А у этого энкодера выход либо подключен к С, либо в воздухе.... Ну и еще раз - R-2R - это так, мысли вслух. Оптимальной вижу диодную развязку. При двухсторонней плате развести 16 диодов получится сравнительно легко.
Добавлено after 6 minutes 57 seconds:
Еще бред.
Тиня 2313. 17 доступных GPIO.
16 - на энкодеры, 1 - Tx - отдает мастеру 2 байта при изменении состояния энкодеров.
Пт июл 05, 2019 13:26:23
Всем спасибо за ответы, почерпнул много нового для себя) Вариант с диодами меня больше устраивает, так как часть схемы уже собрана, и мультиплексор включить уже сложновато.
Пт июл 05, 2019 14:06:55
...
Пт июл 05, 2019 15:32:14
сдвиговые регистры?..
Нет, 155 — это два дешифратора 2 в 4 (или один 3 в 8, если входы правильно подключить).
Пт июл 05, 2019 16:31:41
чето я не понял, как тут дешифраторы помогут...?
Пт июл 05, 2019 19:35:36
Никак. Я опять забыл, что выводы замыкаются между собой. PISO регистры бы подошли типа 165/166/647.
Пт июл 05, 2019 20:42:48
я понял как бы дешифраторы помогли...
выходы энкодеров сыитать входами, на каждый энкодер свой дешифратор, входы дешифраторов объединить, с общего вывода каждого энкодера последовательно снимать сигнал.
Сб июл 06, 2019 08:43:02
Никаких дешифраторов не надо. Схема из поста 1. Подтяжки на D0, D1 (входы). B0..B7 - выходы. Пробегаем нулем по B0..B7, если на D0, D1 нуль, выставлям соответствующий бит в регистре, привязаноом к данному энкодеру. Прогу показать ?
Ну это при условии, что внутри энкодера чисто-тупо замыкание контактов, безо всяких диодов или чего похуже.
- Код:
LDI R16,0xFE ; маска
LDI R17,0xFF ; энк.1
LDI R18,0xFF ; энк.2
L: OUT PORTB,R16
IN R19,PIND
BST R19,0
BRTS L0
AND R17,R16
L0: BST R19,1
BRTS L1
AND R18,R16
L1: ADD R16,R16
ORI R16,1
CMP R16,0xFF
BRNE L
Код не проверялся. В зависимости от BRTS - BRTС получим код инверсный или прямой.
Сб июл 06, 2019 09:11:36
Jack_A, а вот теперь представьте, энкодер А в положении 255 - все контакты 1..8 замкнуты на С (ну и, соответственно, между собой).
А энкодер В в положении, ну пусть 16 (контакт 5 замкнут на С). Энкодеры по схеме автора включены параллельно.
Т.е. выходы энкодера В тоже все вместе замкнуты между собой через энкодер А и через контакт 5 энкодера В замкнуты на его общий контакт С...
Что вы получите на D0,D1 ?
А получите вы по обоим энкодерам состояние 255. Ибо энкодеры включены параллельно, без развязки, и тут получается почти монтажное ИЛИ....
Почти - в данном случае можно отловить по энкодеру В только состояние 0. Когда ничего не замкнуто.
Без 16 диодов ваш вариант ничем не отличается от варианта автора читать весь порт сразу.
Последний раз редактировалось
GoldenAndy Сб июл 06, 2019 14:26:54, всего редактировалось 1 раз.
Сб июл 06, 2019 09:28:28
Да... Тогда, похоже, без диодов - никак. Но зато без дешифратора
Сб июл 06, 2019 09:38:07
кстати если с дешифраторами и без диодов, то у дешифраторов выходы д.б. с открытым коллектором, а на вывод "С" сделать подтяжку (так не будет к.з. по ногам дешифратора через замкнутые контакты энкодера)
но это тоже уже в качестве офтопика...
Сб июл 06, 2019 09:48:34
А такой вариант:
Порты С обоих энкодеров садим на порты контроллера, Z-состояние,
на порт С 1 энкодера подаем "0", порт С 2 энкодера в Z-состояние, считываем данные с 1 энкодера,
на порт С 2 энкодера подаем "0", порт С 1 энкодера в Z-состояние, считываем данные с 2 энкодера.
А вариант с регистрами HC373(ИР23)?
А этот вариант PCF8574 позволил бы по I2C шине работать.
Сб июл 06, 2019 11:12:06
кстати если с дешифраторами и без диодов, то у дешифраторов выходы д.б. с открытым коллектором...
Да, такое заработает, вот только такой дешифратор тяжело найти. К155ИД15 — древняя TLL серия, жрёт много, а CMOS-аналога 74ls156 я что-то нагуглить не могу.
Сб июл 06, 2019 14:29:27
мне то то подсказывает, что вариант 16 диодов + схема автора - самый дешевый и оптимальный вариант.
Сб июл 06, 2019 16:03:58
Если бы диоды ещё сборкой шли, то было бы самое то. А так дуже много мелких деталей паять.
Вс июл 07, 2019 09:39:20
B@R5uk, ну можно поискать сборку в SOT23 - там два катода один анод (или наоборот), но разводить это дело будет более неудобно, нежели 16 диодов в SOT89 или трухольных... В случае трухольных разводить даже легче еще ....
Пн июл 08, 2019 14:14:14
Кстати, а как у этих, восьмиконтактных с надежностью контакта? А то у простых инкрементных бывают
вот такие чудеса. А здесь? Ладно, в процессе переключения пусть трясется, как хочет, но по щелчку оно устаканится?
Добавлено after 5 minutes 52 seconds:И вообще, я бы, вместо возни с диодами и прочей ерундой, добавил бы ног МК. Т.е. взял МК пожирнее.
Вт июл 09, 2019 03:52:55
afz писал(а):по щелчку оно устаканится?
Кручу EAW0J-B24-AE0128L. Нет у него тактильного эффекта.
По контактированию. Пока 0,5...1мА через контакт не пропустишь, на выходе возможна лажа.
- Вложения
-
- энкодер_ток.GIF
- (14.71 KiB) Скачиваний: 292
Powered by phpBB © phpBB Group.
phpBB Mobile / SEO by Artodia.