¿Es posible monitorear las entradas del multiplexor analógico sin cambiar la señal del selector?

Si tiene 8 sensores de entrada analógica (o 2 o 9 o 738479), ¿hay un chip / es posible con la programación del microprocesador monitorear activamente todos los canales? Digamos que tiene 8 potenciómetros giratorios conectados a cada pin de E/S en el mux, ¿tendría que cambiar las entradas de selección cada vez que quisiera usar un potenciómetro diferente? Parece que esto haría que un mux fuera mucho menos útil de lo que pensaba. Entonces, si quisiera usar el potenciómetro en el pin 1 de E/S y luego el potenciómetro en el pin 8 de E/S inmediatamente después del primero, ¿Tendría que decirle al microcontrolador / procesador que cambie a leer el pin 8 antes de poder usar el periférico conectado a él? ¿O hay alguna manera de hacer que controle todos los pines de E/S a la vez para poder usar el periférico en el pin 1, luego en el pin 7 y luego en el pin 2 sin tener que hacer nada en absoluto con respecto a cambiar el pin de io que se lee? , siempre y cuando solo use uno a la vez?

CD74HC4051MM96EP es el mux del que ya tengo toneladas, y estoy usando teensyduino (biblioteca de códigos arduino) / teensy 3.1 para enviar mensajes midi. Me gustaría leer todo tipo de sensores de entrada diferentes.

¿Qué tan rápido quieres girar los potenciómetros? Leerlos secuencialmente debería estar bien, siempre y cuando el software *duino no lo ralentice demasiado.

Respuestas (2)

La idea detrás del uso de un multiplexor es que leerías todas las entradas en una secuencia muy rápidamente y luego darías la vuelta y lo harías de nuevo. Es una compensación de ancho de banda y latencia frente a número de puertos. Le permite dividir el ancho de banda disponible y la cuenta regresiva del puerto requerido por el mismo factor. Si tiene un ADC que puede muestrear a 10 KSps y un mux de 8 puertos, entonces con 1 entrada puede muestrear a 10 KSps en esa entrada, con 2 entradas puede muestrear a 5 KSps en ambas entradas, con 4 entradas puede muestrear a 2,5 KSps en cada entrada, etc. Un efecto secundario es que las muestras se intercalan en el tiempo, ya que no puede ver todas las entradas exactamente al mismo tiempo. Con 2 entradas, habrá una compensación de 1 período de muestra entre lecturas en canales alternos donde la primera muestra de la entrada 1 ocurrirá en 'T=0',

Si solo está tratando de leer de los POT, debería estar bien, ya que las señales que salen de ellos cambiarán muy lentamente. Todo lo que necesita hacer es escribir un ciclo for que recorrerá todas las configuraciones mux y leerá el valor analógico correspondiente.

Gracias por la explicación detallada, había pensado en algo similar a esto, pero no me di cuenta de que los adc eran capaces de muestrear tan rápido o el término de búsqueda relevante para buscar en Google qué tan rápido son capaces de leer señales (que ahora sé es ksps / sps / msps)

Digamos que tiene 8 potenciómetros giratorios conectados a cada pin de E/S en el mux, ¿tendría que cambiar las entradas de selección cada vez que quisiera usar un potenciómetro diferente?

Sí, si desea cambiar qué entrada está conectada a la salida de un mux, debe cambiar las entradas a las señales seleccionadas.

¿O hay alguna manera de hacer que controle todos los pines de E/S a la vez para poder usar el periférico en el pin 1, luego en el pin 7 y luego en el pin 2 sin tener que hacer nada en absoluto con respecto a cambiar el pin de io que se lee? , siempre y cuando solo use uno a la vez?

Podría usar 8 circuitos de monitor diferentes (¿entradas ADC?) Y ningún mux en absoluto.

O podría hacer un circuito para sumar las 8 entradas y monitorear la señal de suma. Eso podría ser útil si desea evitar el sondeo para ver si hay alguna actividad en sus entradas. Pero si dos entradas están activas al mismo tiempo, no podrá distinguir cuál estaba activa.

Puede usar un contador para hacer que un bus digital de incremento continuo se aplique a los pines de selección MUX, evitando que el uC use instrucciones para cambiar esas señales. Pero probablemente desee sincronizar su actividad de "supervisión" con el contador para que no realice una medición accidentalmente mientras el mux está cambiando.

"Podría usar 8 circuitos de monitor diferentes (¿entradas ADC?) Y ningún mux en absoluto". Pero tenga en cuenta que un microprocesador con 8 entradas ADC es en realidad un ADC con un mux interno de 8 pines.
@markrages, probablemente sea cierto, pero 1. Ni siquiera sabemos con certeza si el circuito "monitor" es de hecho una entrada uC ADC. y 2. Puede requerir menos instrucciones para cambiar el mux interno que para cambiar los pines de control para el mux externo.