Можно ли контролировать аналоговые входы мультиплексора без изменения сигнала селектора?

Если у вас есть 8 аналоговых входных датчиков (или 2, или 9, или 738479), есть ли чип / возможно ли с микропроцессорным программированием активно контролировать все каналы? Скажем, у вас есть 8 поворотных потенциометров, подключенных к каждому входу/выходу мультиплексора, придется ли вам менять входы выбора каждый раз, когда вы хотите использовать другой потенциометр? Похоже, что это сделало бы мультиплексор гораздо менее полезным, чем я думал. Итак, если бы я хотел использовать потенциометр на контакте ввода-вывода 1, а затем потенциометр на контакте ввода-вывода 8 сразу после первого, Мне нужно было бы сказать микроконтроллеру / процессору, чтобы он переключился на чтение контакта 8, прежде чем я мог бы использовать подключенное к нему периферийное устройство? Или есть способ заставить его контролировать все контакты ввода-вывода одновременно, чтобы я мог использовать периферийное устройство на контакте 1, затем на контакте 7, а затем на контакте 2 без необходимости вообще что-либо делать в отношении изменения считываемого контакта ввода-вывода? , пока я использую только один за раз?

CD74HC4051MM96EP — это мультиплексор, которого у меня уже много, и я использую teensyduino (библиотека кодов arduino) / teensy 3.1 для отправки миди-сообщений. Я хотел бы прочитать все виды различных входных датчиков.

Как быстро вы хотите поворачивать потенциометры? Чтение их последовательно должно быть в порядке, если программное обеспечение *duino не слишком сильно его замедляет.

Ответы (2)

Идея использования мультиплексора заключается в том, что вы очень быстро считываете все входные данные в последовательности, а затем повторяете цикл и повторяете это снова. Это компромисс между пропускной способностью и задержкой и количеством портов. Это позволяет разделить доступную полосу пропускания и обратный отсчет портов на один и тот же коэффициент. Если у вас есть АЦП, который может сэмплировать с частотой 10 тыс. импульсов в секунду, и 8-портовый мультиплексор, то с 1 входом вы можете сэмплировать с частотой 10 тыс. импульсов на этом входе, с 2 входами вы можете сэмплировать с частотой 5 тыс. импульсов на обоих входах, с 4 входами вы можете сэмплировать по 2,5 KSps на каждом входе и т. д. Одним из побочных эффектов является то, что выборки чередуются во времени, поскольку вы не можете просматривать все входы в одно и то же время. С 2 входами будет смещение в 1 период выборки между показаниями на альтернативных каналах, где первая выборка со входа 1 произойдет при «T = 0»,

Если вы просто пытаетесь читать с POT, все должно быть в порядке, так как исходящие от них сигналы будут меняться очень медленно. Все, что вам нужно сделать, это написать цикл for, который будет циклически перебирать все настройки мультиплексора и считывать соответствующее аналоговое значение.

Спасибо за подробное объяснение, я думал о чем-то похожем на это, но не осознавал, что adc могут так быстро выбирать или использовать соответствующий поисковый запрос, чтобы погуглить, насколько быстро они способны считывать сигналы (теперь я знаю, что это кспс/спс/мпсс)

Скажем, у вас есть 8 поворотных потенциометров, подключенных к каждому входу/выходу мультиплексора, придется ли вам менять входы выбора каждый раз, когда вы хотите использовать другой потенциометр?

Да, если вы хотите изменить, какой вход подключен к выходу мультиплексора, вы должны изменить входы на сигналы выбора.

Или есть способ заставить его контролировать все контакты ввода-вывода одновременно, чтобы я мог использовать периферийное устройство на контакте 1, затем на контакте 7, а затем на контакте 2 без необходимости вообще что-либо делать в отношении изменения считываемого контакта ввода-вывода? , пока я использую только один за раз?

Вы можете использовать 8 различных схем мониторинга (входы АЦП?) и вообще не использовать мультиплексор.

Или вы можете сделать схему для суммирования 8 входов и контролировать суммарный сигнал. Это может быть полезно, если вы хотите избежать опроса, чтобы увидеть, есть ли вообще какая-либо активность на ваших входах. Но если два входа активны одновременно, вы не сможете различить, какой из них был активен.

Вы можете использовать счетчик, чтобы постоянно увеличивать цифровую шину, которая будет применяться к контактам выбора MUX, избегая использования инструкций UC для изменения этих сигналов. Но вы, вероятно, захотите синхронизировать свою деятельность по «мониторингу» со счетчиком, чтобы случайно не выполнить измерение во время переключения мультиплексора.

«Вы можете использовать 8 различных схем мониторинга (входы АЦП?) и вообще не использовать мультиплексор». Но обратите внимание, что микропроцессор с 8 входами АЦП на самом деле является одним АЦП с внутренним мультиплексором на 8 контактов.
@markrages, это, вероятно, правда, но 1. Мы даже не знаем наверняка, что схема «монитора» на самом деле является входом АЦП uC. и 2. Для переключения внутреннего мультиплексора может потребоваться меньше инструкций, чем для переключения управляющих контактов внешнего мультиплексора.