Eliminación de ruido digital en señales de codificador de cuadratura

Estoy usando un codificador de cuadratura con 3 líneas para rastrear la posición giratoria de un eje conectado a un motor BLDC (a través de una caja de cambios planetaria).

Cuando giro el eje, las líneas A, B y Z siempre tienen un ruido digital errático (observado con un analizador lógico), que siempre estropea las lecturas de posición. La imagen de la señal digital es la siguiente ingrese la descripción de la imagen aquíEl orden de las señales es A, B y el último es Z (índice)

El ruido siempre se ve en las 3 líneas juntas y, en comparación con los pulsos reales del codificador, tiene una duración muy corta.

¿Cuál podría ser la fuente de este ruido? ¿Cómo puedo eliminar el ruido de las señales? Preferiblemente a través de una solución mínima de hardware.

Mis datos de posición son procesados ​​por un controlador cuyo código no puedo cambiar, por lo tanto, la opción de compensar el ruido en el software no existe para mí.

Una vista más cercana al ruido.ingrese la descripción de la imagen aquí

EDITAR: estoy usando un codificador CUI AMT11-3S, que es un codificador capacitivo Enlace y hoja de datos

¿Ayudaría agregar blindaje a los cables de datos?
Tal vez mala conexión a tierra.
Realmente debería echar un vistazo a la forma de onda de estas señales; Los analizadores lógicos son buenos para ver los datos cuando la señal está bien, no para depurar problemas de integridad de la señal.

Respuestas (6)

Mirar las señales de un analizador lógico (especialmente cuando el ruido es un factor) puede resultar confuso. Es posible que el ruido que vea no esté al mismo nivel que sus señales de cuadratura, pero debido a que el analizador ve una señal por encima del umbral lógico o no, parece que tiene la misma amplitud que la señal deseada.

En primer lugar, sugiero que verifique que tenga al menos 10-20 uF en el voltaje de suministro al detector de cuadratura. Pueden ser sensibles a las fluctuaciones de voltaje si los usa cerca de su límite inferior de voltaje de suministro. La mayoría están diseñados para suministros de 5-12 o 12-24 V, pero algunos se especifican solo como 5 V (y generalmente un diseño bastante diferente). Si está utilizando 5 o 12 V, tiene razón en su límite inferior para cada variante.

Asegúrese de que las señales A, B, Z tengan un receptor disparador Schmitt como el 74LS14, y consulte la hoja de datos de su detector de cuadratura para ver si espera una resistencia pullup en el extremo receptor del cable (la mayoría la tiene).... por el contrario, si tiene una resistencia pull-up, asegúrese de que no sea un valor demasiado bajo.

Como ejemplo, aquí está la hoja de datos de un codificador rotatorio Omron: http://www.mouser.com/ds/2/307/e6b2-c_ds_csm491-25665.pdf

Tenga en cuenta que la estructura de E/S varía considerablemente para las variantes; pulldown, pullup y controladores de línea.

Un esquema de su sensor de cuadratura ayudaría a solucionar problemas. Permítanme suponer que es un LED infrarrojo (quizás dos) combinado con un fototransistor que genera el Canal A y otro fototransistor que genera el Canal B. Un osciloscopio puede brindar más información que un analizador lógico.
Casi todas las fallas de ruido ocurren cuando el sensor tiene un nivel lógico bajo. Esto da una pista de que la luz LED puede ser insuficiente o demasiado brillante; solo un esquema podría decir cuál. También podría ser causado por una desalineación óptica. También podría deberse a un valor mal elegido para las resistencias pull-up o pull-down en su detector óptico. Sin embargo, veo una falla que va de mayor a menor, por lo que este puede no ser el único problema. El ruido de falla también puede ser causado por:
-Una fuente de alimentación conmutada cercana
-Su motor BLDC cambiando de polo a polo

Parecería que los fallos afectan simultáneamente a los tres canales (si están todos bajos, no cuando están altos). Eso sugiere una fuente de ruido externa. Dicho ruido generalmente se ataca en la fuente. Creo que su línea de índice debería permanecer en su mayoría baja y, por lo general, pulsaría alta una vez por revolución. Use esa línea para juzgar el éxito de sus esfuerzos de reducción de ruido.
La hoja de datos para CUI AMT11-3S advierte que "GND" debe conectarse a la carcasa del motor con un cable corto. Eso puede violar el principio de puesta a tierra de "estrella", creando un bucle de tierra que genera ruido. Este módulo tiene solo un pin de tierra, que debe servir para algunos propósitos:

    -Proporciona una ruta de retorno para la fuente de alimentación de +5v.
    -Proporciona referencia de tierra para líneas seriales TX, RX.
    -Proporciona referencia de tierra lógica para niveles lógicos de salida CMOS.
    -Probablemente proporciona blindaje electrostático de carcasa de metal

Este pin de tierra ciertamente debe volver a la tierra de su microcontrolador junto con la línea de CC de +5v. Conectar a tierra la carcasa del motor BLDC podría ayudar, pero no está claro exactamente dónde conectar la conexión a tierra (¿ATM11-3S gnd?, ¿microcontrolador gnd?, ¿chasis gnd?).
Proteger el ruido, filtrar el ruido es una alternativa mucho más pobre que eliminar el ruido en la fuente. pero como dices, a veces estás limitado por otros que dicen "no puedo cambiar mi parte". ¡Oh, la diversión de la ingeniería!

He actualizado la pregunta. El codificador es un codificador capacitivo y no un led infrarrojo...
@TarangShah Gracias, miré la hoja de datos CUI ATM11-3S y actualicé mi respuesta. Sin embargo, sus enlaces de alguna manera no lo hicieron.

Debe insertar un filtro de paso bajo en sus señales que suprimirá los transitorios cortos. Puede hacer esto usando un RC seguido de un comparador, o puede hacerlo digitalmente. Véase, por ejemplo, el antirrebote MC14490 .

La primera respuesta obvia es intentar blindar el cableado y verificar las referencias a tierra. Si eso falla...

Los codificadores utilizados en sistemas industriales casi siempre utilizan señalización diferencial. Es fundamental en los sistemas que utilizan motores de CC sin escobillas, motores de CC con escobillas o variadores de frecuencia variable; todos los cuales producen grandes cantidades de ruido eléctrico.

Puede convertir la señal de sus codificadores X, Y, Z (o sin/cos/mark, etc.) a diferencial utilizando un transmisor RS422 o RS485. Luego use un receptor 422/485 en el otro extremo. Mantenga el transmisor lo más cerca posible del codificador y tal vez protéjalo con una carcasa de metal. El cableado debe ser de par trenzado de 120 ohmios con un blindaje general. Coloque una tapa de desacoplamiento en las líneas eléctricas de cada chip. Una cerámica de 0,1 μf es una buena elección.

Este es un enfoque de bajo costo ya que los chips cuestan unos pocos dólares cada uno. El cable de 120 ohmios se usa comúnmente en la comunicación en serie industrial para RS422 o RS485 y es fácil de obtener. Puede encontrar controladores y receptores de línea RS422/485 para funcionamiento a 5 V, lo que hace que las fuentes de alimentación y el cableado adicionales sean innecesarios. Este es también el método estándar de la industria para la señalización del codificador diferencial, por lo que no es algo fuera de lo común, de hecho, es bastante común.

Hay muchas variaciones diferentes de chips de controladores de línea para enumerar, pero hay muchos que ofrecen múltiples controladores de línea en paquetes DIP o SOIC con fuentes de alimentación de 5V. Un ejemplo sería usar el transmisor cuádruple MAX3042 emparejado con un receptor cuádruple MAX3095. Consulta también el catálogo de Ti.

La solución más fácil es agregar una pequeña carga a los cables de señal. Por ejemplo, una resistencia de 4.7k que agrega aproximadamente 1 mA de corriente a un voltaje de suministro de 5V. Estas resistencias deben colocarse entre cada línea de señal y GND. Esta es la solución más barata.

Agregar condensadores cerámicos con ~10 a 100pF cada uno tiene casi el mismo efecto.

Si desea mejorar su circuito para problemas de EMI y resolver su problema, agregue un diodo TVS a cada línea de señal, por ejemplo, PESD5V0S1BA con la hoja de datos . Estos diodos evitan los picos de voltaje, que pueden destruir su controlador y agregan 45pF de capacitancia. Esta es la mejor solución.

Cualquiera que elija, debe estar cerca del controlador, que lee las líneas de señal.

Asegúrese de utilizar un cable de par trenzado para las señales A, A/, B, B/, Z, Z/. Belden 9503 por ejemplo. Lea atentamente el manual del fabricante del codificador, ya que recomiendan el mejor blindaje/conexión a tierra para la configuración particular de su codificador. Si aún tiene problemas de ruido, termine el blindaje del codificador en ambos extremos para minimizar la impedancia del cable. (La impedancia triunfa sobre las posibilidades de bucle de tierra).