TODOPIC
FORO TÉCNICO => Foro Técnico => Mensaje iniciado por: genisuvi en 09 de Noviembre de 2020, 07:31:11
-
Buenas a todos, quería consultar un tema sobre una solución que he encontrado más experimentalmente que teóricos para filtrar unos ruidos que me aparecían en los canales no activados del mux.
Intro
El montaje es muy sencillo: multiplexar una señal PWM procedente de un arduino en 8 canales con el CD74HC4051: https://es.farnell.com/texas-instruments/cd74hc4051pwr/74hc-smd-74hc4051-tssop16-6v/dp/3009598?st=cd74hc4051 (https://es.farnell.com/texas-instruments/cd74hc4051pwr/74hc-smd-74hc4051-tssop16-6v/dp/3009598?st=cd74hc4051)
1-Estas señales van cada una a una entrada de datos de una placa con neopíxels de adafruit.
2-En muchos foros se recomienda el uso de una resistencia de 470 para limitar la corriente, así que he añadido una resistencia en serie a las salidas, entre cada una de las salidas y el pin de entrada de datos de estas placas de leds.
3-Además he añadido una R pull down de 10K entre cada pin de entrada (ya que parecen ser entradas flotantes) y GND (así que queda una extremo de esa R conectada a la R en serie antes comentada).
Hasta aquí, con una placa de leds en un canal y otra en otro canal, visualmente es correcto. Controlo y gestiono sin problemas encendido y apagado del led en cuestión sin problemas.
Comprobaciones con osciloscopio
Pero decidí conectar el osciloscopio en el circuito para ver las señales, por si alguno de los canales tuviera algún ruido, picos o glitches de nivel suficiente como para que el dato de entradas inactivo se "interpretase" como estados altos y por lo tanto activara leds por error. En ese momento veo una especie de reflexión de la señal pwm del canal activo en cada canal del mux inactivo. Mido el nivel de tensión de dicho pulso y veo que está próximo a los requisitos como mínimo para ser interpretado como estado lógico indefinido (ya que nivel bajo = 0.3xVDD) por el pin de entrada de la placa led.
Así pues pensé en tirar de condensador para eliminar esos pulsos fantasma en dichos canales (con ánimo de que se viese 0V de forma constante por el osc). Puse un condensador entre VCC y GND (ya estaba usando uno de 100ns por instrucciones del fabricante del MUX). Probé diferentes órdenes de magnitud, desde pico faradios al uF pero ya vi que no influía en nada.
Entonces pensé en aplicar algún concepto de filtrado pasivo, un paso bajo, en las salidas del mux. Ya que las resistencias ya las tenía, sólo tendría que añadir el condensador a GND. Si el pulso era de 200ns, para filtrar algo así podría ir al orden de picofaradios con esa resistencia de 470.
Conexiones y resultados:
1-Primero lo conecté en el extremo de la resistencia en serie de 470 y tanto el canal activo como el inactivo distorsionaron la señal (lástima que no recuerdo exactamente qué vi, pero dejó incluso de funcionar).
2-Por probar otra cosa, conecté ese mismo condensador entre el pin de salida del mux y GND, con lo cual ya me había "desmontado" el montaje de filtro paso bajo. Pero para mi sorpresa, así sí filtró totalmente la señal.
(http://[attachment id=1 msg=416855][/attachment])
3-Comprobé en la salida activa y en la salida inactiva --> salida activa: un ligero desfase y el/los pulso/s prácticamente limpio/s. Salida inactiva: no existía pulso. Probé diferentes valores de condensador y entre 100pF y los 220pF parecen filtrar como es requerido.
4-Luego añadí un condensador en cada salida para comprobar si al ir añadiendo condensadores conectados a masa afectaba. Y nada problemático, todo bien.
Montaje final comprobado con osc:
(http://[attachment id=2 msg=416855][/attachment])
NOTA1: conector X1 de la imagen es conector con pines a señal dato de entradas de las placas con leds (DINx).
Las dudas
1.- Mi consulta es que no sé porqué se ha solucionado así. Si ya no tenía el montaje de filtro pasivo qué es lo que está haciendo este condensador en dicha configuración?
2.- Es correcto trabajar así? O es una mala práctica hacer este tipo de circuito? Algo perjudicial en tener entre las salidas del mux y gnd un condensador (x8)?
NOTA2: consultando el manual del mux, sé que existe una R on = 70 ohms cuando el canal está activo. Por ahí podría decir que esto ya es un filtro paso bajo. Pero para el caso del canal inactivo no he apreciado información. Entiendo que en OFF tendríamos muy alta impedancia. Pero esto deducción mía.
Si alguien me puede ayudar a verlo del todo estaré inmensamente agradecida. Igualmente gracias por vuestro tiempo.
-
Después de leer tu mensaje no se entiende muy bien, pero creo que me hago una idea de los que preguntas, tu problema se llama crosstalk, la forma de solucionarlo es aumentando la distancia entre las pistas en el PCB (reduciendo su acoplamiento capacitivo e inductivo), si tienes un PCB de 4 capas con un plano de tierra debajo de la señal el crosstalk se reducirá bastante, en este caso puedes poner una distancia entre pistas de 3W (siendo W el ancho de cada pìsta).
Tu señal de cuadrada PWM tiene un tiempo de subida y bajada, cuanto menor sea el tiempo de subida o de bajada de la señal cuadrada mayor será el crosstalk que tienes en tu caso. Si pones el condensador después de la resistencia de 470 ohmios, el filtro pasobajo que creas te deforma la señal cuadrada lo suficiente para que sea inservible para el receptor. Si pones el condensador directamente a la salida del IC, haces un filtro pasobajo junto a la resistencia de salida del IC, ese filtro pasobajo hace lo mismo que el anterio, incrementar el tiempo de subida y de bajada de la señal y por tanto reducirel crosstalk (pero en este caso al ser la R menor la deforma menos). En este caso los valores de ese filtro no hacen la señal inservible.
Con ese condensador haces que la señal que genera el ruido en las pistas adyacentes, sea menos "agresiva" al incrementar su tiempo de subida/bajada.
No he consultado el datasheet del IC, pero tener un condensador en su salida solo creará pequeños picos de corriente cuando la salida cambie de estado, picos de corriente que si están dentro de sus especificaciones no causarán problemas.
Pero vamos la primera solución a tu problema suele ser rutear correctamente el PCB para minimizar el crosstalk, lo siguiente podría ser añadir el filtro RC como estás haciendo que incremente los tiempos de subida y bajada de la onda cuadrada, y por tanto minimize el crosstalk que tienes. También puedes probar a poner solo la resistencia de 470 ohmios lo más cerca posible del IC que genera la salida, o incrementar el valor de esta, a ver si así lo reduces.
Cuando el tiempo de subida o de bajada es próximo a la velocidad de propagación de la señal en la pista, suele ser también necesario añadir resistencias de terminación para evitar rebotes de la señal, ringing, ondas estacionarias, etc...como explica aquí:
http://www.glendash.com/Dash_of_EMC/Ringing_and_Crosstalk/Ringing_and_Crosstalk.htm
Esas resistencias de terminación tb ayudan con el crosstalk, en el caso que tienes diría que te está pasando exactamente esto:
Cuando uses un osciloscopio para ver estas cosas, tienes que poner la sonda en x10 y quitar el cocodrilo de tierra, colocando el muellecito metálico en la sonda para tener el terminal de tierra. Si pones la sonda en x1 la capacitancia de esta será mayor respecto a x10, y por tanto deformará más la medida, y si dejas el cable de la sonda con el cocodilo de tierra añades una inductancia extra, que te deformará la señal añadiendo una sobreoscilación mayor en la medida que la que realmente hay.
-
Después de leer tu mensaje no se entiende muy bien, pero creo que me hago una idea de los que preguntas, tu problema se llama crosstalk, la forma de solucionarlo es aumentando la distancia entre las pistas en el PCB (reduciendo su acoplamiento capacitivo e inductivo), si tienes un PCB de 4 capas con un plano de tierra debajo de la señal el crosstalk se reducirá bastante, en este caso puedes poner una distancia entre pistas de 3W (siendo W el ancho de cada pìsta).
Tu señal de cuadrada PWM tiene un tiempo de subida y bajada, cuanto menor sea el tiempo de subida o de bajada de la señal cuadrada mayor será el crosstalk que tienes en tu caso. Si pones el condensador después de la resistencia de 470 ohmios, el filtro pasobajo que creas te deforma la señal cuadrada lo suficiente para que sea inservible para el receptor. Si pones el condensador directamente a la salida del IC, haces un filtro pasobajo junto a la resistencia de salida del IC, ese filtro pasobajo hace lo mismo que el anterio, incrementar el tiempo de subida y de bajada de la señal y por tanto reducirel crosstalk (pero en este caso al ser la R menor la deforma menos). En este caso los valores de ese filtro no hacen la señal inservible.
Con ese condensador haces que la señal que genera el ruido en las pistas adyacentes, sea menos "agresiva" al incrementar su tiempo de subida/bajada.
No he consultado el datasheet del IC, pero tener un condensador en su salida solo creará pequeños picos de corriente cuando la salida cambie de estado, picos de corriente que si están dentro de sus especificaciones no causarán problemas.
Pero vamos la primera solución a tu problema suele ser rutear correctamente el PCB para minimizar el crosstalk, lo siguiente podría ser añadir el filtro RC como estás haciendo que incremente los tiempos de subida y bajada de la onda cuadrada, y por tanto minimize el crosstalk que tienes. También puedes probar a poner solo la resistencia de 470 ohmios lo más cerca posible del IC que genera la salida, o incrementar el valor de esta, a ver si así lo reduces.
Cuando el tiempo de subida o de bajada es próximo a la velocidad de propagación de la señal en la pista, suele ser también necesario añadir resistencias de terminación para evitar rebotes de la señal, ringing, ondas estacionarias, etc...como explica aquí:
http://www.glendash.com/Dash_of_EMC/Ringing_and_Crosstalk/Ringing_and_Crosstalk.htm
Esas resistencias de terminación tb ayudan con el crosstalk, en el caso que tienes diría que te está pasando exactamente esto:
Cuando uses un osciloscopio para ver estas cosas, tienes que poner la sonda en x10 y quitar el cocodrilo de tierra, colocando el muellecito metálico en la sonda para tener el terminal de tierra. Si pones la sonda en x1 la capacitancia de esta será mayor respecto a x10, y por tanto deformará más la medida, y si dejas el cable de la sonda con el cocodilo de tierra añades una inductancia extra, que te deformará la señal añadiendo una sobreoscilación mayor en la medida que la que realmente hay.
Serán dos capas. Es una especificación. Mi idea es hacer plano de masa en BOTTOM y en TOP.
A ver, no es que fuese un problema por el momento, pero tengo miedo que a la hora de la verdad algún factor suba el nivel del ruido. Probé a filtrar con un condensador para hacer un paso bajo; pero empeoró. Lo que sí limpió la señal fue poner ese condensador entre la salida del MUX y GND. Y mi pregunta estaba dirigida a que no entendía por qué filtraba mejor en esta posición que ni es paso bajo, ni paso alto, ni pasaba bandas. Sí que pensé como tú, que con la Ron ya hago un filtro paso bajo que me permite ver el pulso del PWM bastante limpio. Pero mi intriga o cabo suelto es que mientras el canal está cerrado también filtra y no tengo Ron formando el filtro paso bajo. Tengo el condensador directo en la pata del integrado. Con lo que la R del hilo no puede ser. No tengo hilo.
Sobre el ruteo, todavía no estoy en esa fase porque lo estaba probando con la proto, las Rs sí que las tenía cerquita de los pines del MUX. Pero tomo el consejo! También dice el datasheet que usar esquinas curvas en vez de ángulo 45 mejora el crosstalking.
Sobre esto del muelle me lo ha comentado gente. Pero he buscado por internet y no he encontrado mucha cosa para resolver unas dudillas sobre esto del muelle. Mi sonda no trae muelle. Me dijeron que entonces enrollase un hilo alrededor de la sonda. Pero cómo debería colocar ese muelle en mi sonda? qué partes de la sonda tienen que tocar? El muelle es para hacer tierra? Lo conecto a GND de mi circuito?
PD: tomo nota de tus consejos y me los guardo en la lista de reglas sagradas, estoy aprendiendo a la fuerza cosas nuevas sobre el diseño de PCB y muchas más que me quedan. Algún día podré devolver todo lo que generosamente otros colegas nos aportáis con vuestra experiencia. MIL GRACIAS!
-
Sobre esto del muelle me lo ha comentado gente. Pero he buscado por internet y no he encontrado mucha cosa para resolver unas dudillas sobre esto del muelle. Mi sonda no trae muelle. Me dijeron que entonces enrollase un hilo alrededor de la sonda. Pero cómo debería colocar ese muelle en mi sonda? qué partes de la sonda tienen que tocar? El muelle es para hacer tierra? Lo conecto a GND de mi circuito?
(https://img1.tongtool.com/v/geggplgoeighpdhiejkkpgjgikighmplijifzFw1.jpg)
Para medir lo que tengas que medir, pero en ves de agarrarlo con el cocodrilo, lo haces de forma mas directa