Combine señales de dos codificadores incrementales rotativos a una salida

1

Hay algún dispositivo controlado por un codificador incremental rotativo (óptico) (que proporciona una salida en cuadratura: dos canales con impulsos de forma cuadrada y desplazados entre sí). Quiero agregar otro codificador, que funcionará en "paralelo" con el primero, por lo que será posible controlar el dispositivo con cualquiera de ellos. Así que necesito combinar dos codificadores rotatorios en una salida en cuadratura. ¿Cómo voy a hacer eso?

    
pregunta avi9526

3 respuestas

3

Lo que tendrá que hacer es decodificarlos en bits de paso y dirección, combinarlos y luego regenerar las salidas en cuadratura.

La primera parte se puede hacer con un par de chanclas y un par de puertas xor. Consulte enlace . Luego usted O los bits de paso juntos y utiliza un mux para seleccionar qué bit de dirección utilizar. Finalmente, use una máquina de estados simple para generar una salida en cuadratura a partir de las señales de dirección y escalón.

    
respondido por el alex.forencich
0

La combinación de dos dispositivos de cuadratura giratoria no es posible: "unir" las salidas con un mezclador o lógica producirá un sin sentido para una señal. Si desea usar el dispositivo A en lugar del dispositivo B (o el dispositivo B en lugar del dispositivo A), use un multiplexor y tenga una señal lógica que decida qué dispositivo se seleccionará.

    
respondido por el Andy aka
0

Es posible combinar dos entradas de codificador rotatorio si nunca se moverán simultáneamente. Conceptualmente, ni siquiera es terriblemente difícil: pase una señal de codificador rotatorio a través de un par de inversores para que sus señales estén disponibles en forma verdadera y complementaria. Introduzca la otra en las entradas seleccionadas de un multiplexor 2x4 (por ejemplo, un 74HC153), y maneje sus entradas de datos con varias combinaciones de señales verdaderas y de complemento desde la primera:

* If second is 00, mux outputs should be A0 and A1
* If second is 01, mux outputs should be !A1 and A0
* If second is 11, mux outputs should be !A0 and !A1
* If second is 10, mux outputs should be A1 and !A0

Desafortunadamente, si uno intenta este enfoque utilizando solo un 74HC153 y un par de inversores, el rendimiento puede ser bajo porque un cambio de un solo bit en la segunda entrada del codificador puede hacer que ambas salidas del multiplexor se bloqueen brevemente antes de establecer el valor correcto. Este problema se puede resolver agregando un flop de 6 entradas que se cronometra más rápido de lo que van a cambiar los codificadores. Dos de las entradas del flop deben bloquear cada codificador, y dos deben bloquear la salida del multiplexor.

    
respondido por el supercat

Lea otras preguntas en las etiquetas