Servo interfiriendo con 433MHz RF

Estoy usando un Atmega328P funcionando a 16Mhz (similar a un Arduino UNO). para controlar un receptor RF superheterodino de 433Mhz ( WL101-541 ) y dos servos analógicos TowerPro SG90 .

Todo está funcionando excepto por la situación que describo aquí. En el caso de que un servo esté bajo carga, de modo que permanezca activo tratando de mantener la posición, no se puede recibir RF. Creo que la actividad motora está causando algún tipo de interferencia. No he podido rastrearlo o solucionarlo y estoy buscando ideas.

Algunos detalles:

  1. Un solo regulador de potencia de conmutación capaz de 3A (mucho más de lo que se está
    utilizando).
  2. La potencia y la tierra se dividen en el regulador de potencia con un camino que va hacia y desde los servos, y otro que va hacia y desde la MCU y el receptor de RF. Tengo entendido que esto minimizará cualquier bucle de tierra.
  3. Los servos actualmente residen detrás de 3 condensadores de 220uF para manejar las necesidades de corriente de arranque (hay 3 porque no tenía más grandes disponibles).
  4. He probado una variedad de otros condensadores a través de la potencia de servicio y la tierra para tratar de filtrar cualquier retroalimentación sin ningún efecto.
  5. He probado a torcer el cable del servo. Esto no tuvo ningún efecto.
  6. He intentado colocar ferrita alrededor del cable del servo (tanto directo como de 3 bucles). Esto no tuvo ningún efecto.

No estoy seguro de cómo proceder para identificar el problema o solucionarlo. Gracias.

Actualización: 23/01/18:

Continuando con el tema de que es probable que sea el poder, aquí hay algunos hallazgos adicionales.

  1. El problema no ocurre cuando se alimenta con 5V de mi fuente de alimentación lineal variable Tekpower TP3005T.
  2. El problema ocurre cuando se alimenta con un regulador de voltaje L7805CV para suministrar 5 V con capacitores de 10 uF en las líneas de entrada y salida.
  3. El problema ocurre cuando se enciende con un convertidor reductor basado en LM2596 .
  4. Necesito confirmar esto nuevamente, pero creo que el problema ocurre al usar L7805CV y LM2596, ya sea que estén alimentados con una batería o con Tekpower.
  5. El uso de dos reguladores L7805CV, uno para el receptor y otro para los servos, desde la misma fuente de alimentación parece reducir en gran medida, si no resolver, el problema.
RF cannot be received... ¿Cómo lo sabes?
@jsotola Supongo que "no se puede recibir" es un poco vago. Tengo un LED que parpadea, pero también tengo una conexión en serie. No recibo ningún mensaje reconstruido válido de la biblioteca de software. No estoy seguro de lo que la antena realmente está "viendo".
Para ser franco, tiene una fuente de alimentación inadecuada y una radio inadecuada. Si quiere algo que realmente funcione, use baterías y un chip FSK de 2,4 GHz como el nRF24, o use un conjunto tradicional de FM/PPM de banda estrecha, pero encontrar uno será mucho más complicado que ir a 2,4 GHz.
@ChrisStratton No creo que la fuente de alimentación esté relacionada con el problema, el problema persiste con una batería o un suministro de escritorio. El voltaje del receptor de RF parece tener una fluctuación mínima debido a la actividad motora.
La depuración normal para determinar si la interferencia conducida o radiada es por aislamiento. ¿Puede medir la ondulación conducida con una carga de 50 ohmios acoplada a CA? ¿Tiene especificaciones Rx Ripple? ¿Rx comparte los cables de alimentación Servo DC de la fuente de alimentación? (malo) ¿Impedancia de los servomotores? 5 ~ 25 ohmios ??, Cap gp o ESR ultrabajo?
@denver, incluso los receptores de 433 MHz mucho mejores que los que tiene son muy susceptibles a cambiar el ruido de la fuente de alimentación. Agregue un servo cargado y solo empeora. En comparación, la radio que desea usar es realmente horrible: los chips de 2.4 GHz son mejores radios, usan una mejor modulación, operan en frecuencias donde se ha producido una mayor interferencia propia generada localmente y también son menos costosos.
@TonyStewart.EEsince'75 No puedo responder a la mayoría de sus preguntas, estamos superando mi límite de experiencia. No creo que tenga una forma de medir la ondulación. Horquillas de alimentación y tierra en la fuente de alimentación, una horquilla va a los servos, una a RF. Las especificaciones sobre el Rx y el Servo son breves, no se indica ondulación ni impedancia. Actualmente uso tapas electrolíticas, pero también he probado tapas de cerámica.
@ChrisStratton Originalmente estaba usando un regulador de potencia lineal. Tenía el mismo problema. No se puede cambiar a 2,4 Ghz, se necesitan 433 MHz para compatibilidad. El rango no es un problema, solo la interferencia del motor... venga de donde venga...
Puede volverse loco con perlas de ferrita en todas las señales de baja corriente y estranguladores de RF en los suministros y es probable que marque la diferencia, pero tenga en cuenta que está eligiendo hacer las cosas de la manera más difícil.
¿No puedes probar con fuentes de energía separadas?
@denver: construyo un producto de consumo usando un IC similar. Sospecho que incluso puedo conocer a la empresa asiática que construye ese IC. No escucharía todo este parloteo sobre la necesidad de una radio nueva. El objetivo no es tirar tu diseño, ¿verdad? ¿Tienes un analizador de espectro? ¿Puedes ver la señal demodulada que sale del IC, cuando el sistema se vuelve loco? Vaya a Amazon y compre una placa de fuente de alimentación diferente (tengo algunas placas reguladoras LDO pequeñas y baratas), ¿pruébelo con algunas baterías? Como dice Tony, suena como poder. Tony es un buen EE, me ha ayudado muchas veces.
@Tony, y sí, a veces me gustaría que pudieras ayudarme más en términos sencillos para nosotros que no somos EE. ;)
Noté que en un IC de receptor barato, usando un adaptador de corriente a través de un LDO barato (¿nota una tendencia...?), podría ver algunas señales demoduladas realmente torcidas. Puede hacer que el amplificador en el receptor IC retroalimente todo tipo de basura, eso es jugar con la señal recibida. Lo siento, no es una gran respuesta de EE, pero mi voto también es poder. Cuando digo verificar la señal demodulada, ¿dónde va la señal del receptor a su microcontrolador? Verifique esa línea con un osciloscopio cuando gire el servo. ¿Qué está pasando? ¿Cómo se ve esa señal en comparación con el funcionamiento normal?
Prueba estas tablas de Amazon. Los uso para hacer prototipos de cosas. Parece estar bien: amazon.com/UCEC-Breadboard-Supply-Arduino-Solderless/dp/…
Algunos pares de transmisión/recepción de radio ofrecen dos métodos de modulación: modulación on-off y FM. Puede que estés mejor con FM. La solución de problemas de ruido en ese receptor probablemente requiera saber qué chip usa (podría ser muy difícil de encontrar).
@ Leroy105 Gracias por las sugerencias. He actualizado la pregunta con resultados de pruebas recientes. Desafortunadamente no tengo un analizador de espectro. Puedo pero en osciloscopio en la línea, pero el mío está en préstamo hasta la próxima semana. Si el problema persiste, lo conectaré en ese momento y le haré saber lo que veo. Tengo uno de esos suministros de placa de prueba, lo probaré, pero espero que se comporte de manera similar al L7805CV en el que probé.
@ TonyStewart.EEsince'75 Dos suministros solucionan el problema, no funcionarán para una solución a largo plazo para mí. ¿Alguna sugerencia sobre algún tipo de desacoplamiento que se pueda aplicar a una solución de suministro único? Gracias
De todos modos, no debería ejecutar un servo a través de un regulador lineal diario, y especialmente no el mismo que alimenta esta radio primitiva.
@glen_geek No conozco una opción para cambiar el método de modulación en los módulos que estoy usando.
Es fácil agregar un filtro RC para la radio para una caída de <0,1 V como LPF. Esta fue una prueba para ver si el ruido conducido aislado de 2 suministros resuelve el problema.
El servo debe tener su propio regulador de voltaje para que las cargas pesadas no hundan los suministros de MCU y RX. el servo regulador debe configurarse de modo que limite una corriente controlada que sea inferior al límite de corriente de su suministro principal. Si el servo se detiene y sobrecarga el regulador, colapsará su propio regulador de voltaje y no el suministro principal, MCU o voltajes RX.
Tony está en el punto aquí con ese filtro. Puedo hablar del hecho de que si conecto algunas fuentes de energía inestables, he visto cosas extrañas en un receptor como ese antes. En no-EE, cuando ese servo gira, crea todo tipo de ruido y rarezas en la línea de alimentación en todo el conjunto que pueden jugar con su receptor IC. Al final del día, su receptor IC es este oscilador, y quiere una potencia buena y limpia, de lo contrario, el oscilador no oscila a la frecuencia correcta y su receptor deja de funcionar (en el IC ...). Cuando pruebe la salida de datos IC con el servo, verá lo que estoy diciendo...
@VincePatron ¿Cómo hace para limitar la corriente de un regulador básico?
En un regulador básico, está integrado. LM7805 es un poco más de 1 amperio. En los reguladores más sofisticados, normalmente se configura con una resistencia de detección de corriente y/o una resistencia de configuración de polarización. Todos aquí están enloquecidos por el ruido de RF, pero definitivamente miraría el problema del voltaje de suministro porque mencionas que sucede cuando el servo está cargado. Coloque una sonda de alcance en su riel de voltaje y vea si rebota cuando se carga el servo. Aplique algo de fuerza en el brazo del servo y vea si el voltaje de suministro rebota. Cuanta más presión aplique, más corriente necesitará para mantener la posición del brazo del servo.
@Vince: este tampoco es un consejo loco. Buena llamada.
FYI SG90 consume hasta 0.75A con picos desagradables, incluso sin carga:- bhabbott.net.nz/Servo/HXT-900.jpg
¿Qué te hace pensar que la radio está realmente probada y es legal para usar en cualquier parte del mundo? Solo a partir de la imagen, el módulo de radio en sí mismo parece una pesadilla de EMC. Y además de eso, conectas la radio de mierda barata a la electromecánica de mierda barata... lo siento, pero esto es lo más lejos posible de la ingeniería profesional.
Conozco a un gigante de capital privado de $ 400 millones de una empresa que utiliza los circuitos integrados de esta empresa para productos de radio. Estaba mirando el pinout de la hoja de datos de Alibaba. ¡Este es el elegante receptor con salida RSSI! Tal vez el módulo pueda o no pasar EMC, pero eso es un problema de diseño. Pero eso no tiene nada que ver con el tema del ruido. Todo el mundo se preocupa por estos componentes, pero muchas grandes empresas utilizan este tipo de piezas... Creo que el problema es que muchos ingenieros de EE. UU. no se sienten cómodos debido a las barreras idiomáticas y culturales para obtener estas piezas. Entonces los persiguen, y simplemente van a Digi y pagan un 100% más.
@ Leroy105 No es solo el diseño, son las características de la radio. ¿Cuáles son las características del ancho de banda? ¿Emisiones fuera de banda? ¿Sensibilidad y características de bloqueo? ¿Rechazo de canal adyacente? Solo dicen "es bueno". Además, está usando ASK u OOK, por lo que todos los demás dispositivos de la banda lo dañarán constantemente. Conozco grandes empresas que utilizan piezas similares y, como resultado, su radio es una porquería . Ejemplo: los automóviles de muchos fabricantes no se pueden bloquear/desbloquear si hay otra radio (legal) en cualquier lugar en la banda de 434 MHz.
@Lundin Saliéndose un poco del tema. No hay nada ilegal en el uso del receptor/transmisor en los EE. UU. Este es un proyecto de pasatiempo/aprendizaje, por lo que no me preocupa aprobar ninguna prueba de EMC.

Respuestas (3)

esquemático

simular este circuito : esquema creado con CircuitLab

Gracias. Haré algunas pruebas y te comento. ¿Es necesario aplicar el filtro directamente en frente del receptor, o también puede cubrir la MCU (toda la rama de energía no servo)? ¿Es este un filtro de paso bajo con una frecuencia de corte de alrededor de 1575 Hz? Usé la ecuación 1/(2*pi R C). ¿Se seleccionó este valor en base a la experiencia con algunos valores de ruido esperados de los servos?
HE utiliza 10 ohmios como punto de partida. 10 mA al receptor y 1 ohmios causan una caída de 0,1 voltios, que está dentro de las tolerancias normales para los voltajes de suministro. También puede usar 100uF en lugar de 10uF, si aún ocurren problemas con el receptor.
Usaría una perla de ferrita o un inductor en lugar de la resistencia.
Y también quiere una ferrita en la línea de señal al servo.
@analogsystemrf Si tuvo un problema de ruido como este de un servo, ¿podría usar un analizador de espectro (piense en coaxial con punta expuesta) para sondear los rastros y buscar la frecuencia del ruido, y luego construir el filtro según sea necesario en base a eso? frecuencia que ves? Nunca he tenido un problema como este en una placa de RF.
Cualquier prueba de ruido de alimentación de CC debe realizarse con un coaxial de 50 terminado con una carga de carga de 50 acoplada a CA. Puede ser un osciloscopio o un analizador de espectro. Dado que la fuente PS debe ser de < 1 ohmio en la mayoría de los casos, 50 ohmios suprimen las lecturas falsas perdidas de los cables de conexión a tierra de la sonda largos y las resonancias del cable. Por lo tanto, la sonda 10: 1 sin los clips para la punta expuesta + el anillo para los pines de prueba cortos <1 cm también es aceptable hasta 100 o 200 Mhz
Pero claramente tiene un problema funcional y la frecuencia del pulso del servo puede generar ruido de corriente justo dentro del ancho de banda de FI de 100 KHz.
Filtro trabajado. Usé una resistencia de 10 ohmios, C1 era un condensador electrolítico de 100 uF y C2 era un condensador de cerámica de 100 nF. Usar un 10uF más pequeño en C1 funcionó aproximadamente el 70% del tiempo.

Al trabajar en el problema, encontré 3 soluciones. Cada solución por sí sola resolvió el problema, pero una combinación probablemente sea el enfoque correcto. Decidí publicarlos aquí en caso de que puedan ayudar a alguien más.

  1. Aplique un filtro de paso bajo en las líneas de alimentación/tierra al receptor como sugiere Tony en la respuesta aceptada. Usar 10uF para C1 no filtró lo suficiente, tuve que usar 100 uF. Esto da como resultado una frecuencia de caída de alrededor de 160 Hz.

  2. En mi diseño, la salida del regulador se bifurcó con un 5V/Gnd yendo a los servos y otro a la MCU y al receptor. Estaba usando un convertidor de dinero basado en LM2596. Tomar el suelo de los servos y conectarlo en el lado de entrada del regulador también resolvió el problema.

  3. Uso de TowerPro SG92R en lugar de SG90. El SG92R es una revisión del SG90. Los servos son casi idénticos, con el mismo factor de forma, sin embargo, el SG92R tiene un par mayor. El par más alto redujo la cantidad de actividad para mantener la posición bajo carga. Esto redujo la interferencia hasta el punto de que ya no era un problema.

Echa un vistazo a los analizadores de espectro USB en Ebay por $80. Uso un Rigol ($1500-ouch), pero los USB (basados ​​en software) realmente funcionan... Los he medido usando un generador de señal en comparación con mi Rigol. Llevarás tu juego de RF al siguiente nivel. ;)
@ Leroy105 No estaba al tanto de eso. Gracias por señalarlos.

Tony gritó midiendo la onda de energía que iba al receptor RX.

No quería enterrar esto en los comentarios. Pasé algún tiempo mirando las tuercas y tornillos reales de hacer esa medición de ondulación de potencia.

Esto describe cómo hacer esa medida usando un osciloscopio.

Esto muestra cómo crear el cable coaxial de 50 ohmios para esta medida

Aquí hay algunos ingenieros que describen cómo crean su cable de prueba.

La importancia de mantener la medición en 50 ohmios está un poco fuera de mi alcance. Aparte de decir, casi todo lo relacionado con la ingeniería utiliza impedancias de 50 ohmios. (75 ohmios, también se usa para ciertas cosas, pero 50 ohmios es lo que más veo para proyectos de PCB).

Las entradas de su osciloscopio esperan una señal de impedancia de 50 ohmios. Por lo tanto, debe mantener la medición en 50 ohmios; de lo contrario, la medición no es precisa.

(Ciertas cosas de eficiencia con impedancia de 50 ohmios y señales de CA. El cálculo de la impedancia comienza a convertirse en matemáticas más pesadas...).

La clave es que puede realizar esta medición con un cable coaxial de 50 ohmios, pero debe estar "terminado" en un extremo para mantener la impedancia en 50 ohmios.

Estamos hablando de pelar un cable coaxial de 50 ohmios en un extremo y dejar expuesto el conductor central desnudo como su nueva sonda de osciloscopio.

Los artículos dicen que puede usar una resistencia de 50 ohmios en serie en esta punta expuesta, o simplemente puede usar un cable coaxial de 50 ohmios que ya tiene la terminación de 50 ohmios. (Simplemente compraría un cable coaxial de 50 ohmios, con dos conectores BNC, y cortaría uno, pelaría el coaxial y soldaría esa tapa de bloqueo de CC. Puede usar la tapa de bloqueo de CC como su nueva punta de sonda. O si tiene un osciloscopio con acoplamiento de CA, puede hacerlo. ¡La parte importante es mantener el cable a 50 ohmios!)

Querría bloquear el componente de CC de la señal de alimentación, por lo que puede poner un condensador en serie con su cable coaxial (vi un X7R, 0.6 uF recomendado para esto en la web). O puedes comprar ese elegante bloqueador de CC de $ 500. Iré con la gorra en serie.

Entonces, si no estuviera usando un IC misterioso, podría haber un valor de onda publicado. En tu caso, probablemente no. Pero aquí tienes los aspectos prácticos de la toma de medidas.

Si bien es posible que las bajas frecuencias perturben el funcionamiento del circuito, un osciloscopio es el instrumento equivocado para medir el problema más desafiante de la interferencia de radiofrecuencia conducida o radiada por las líneas eléctricas y de señal. Profesionalmente, se usaría un analizador de espectro (ya sea con una sonda de acoplamiento, una antena captadora o un bloque de CC muy sólido), pero también funcionaría un receptor de 433 MHz medianamente decente para detectar componentes en la banda relacionados con el problema observado.
Solo tuercas y tornillos nuevamente: una "sonda de acoplamiento", podría ser un cable coaxial de 50 ohmios con ese conductor central pelado y expuesto nuevamente en este caso, está utilizando el analizador de espectro. Simplemente pase el cable 1 mm por encima de las pistas y recorra el tablero usando la punta como su "sonda". Entonces, el enfoque general es ¿qué tipo de ruido veo en el analizador de espectro antes de activar el servo y el receptor está funcionando? Cuando activas el servo, ¿qué tipo de ruido nuevo ves? Eliminar el nuevo ruido = problema resuelto. Esta es una forma sucia y sucia de hacer el trabajo.
@ Leroy105 Gracias por todos los detalles adicionales. Actualizaré la publicación después de absorber todo esto y hacer algunas pruebas. Es probable que sean unos días.
@ Leroy105 El problema está resuelto, así que solo estoy jugando un poco ahora. No tengo la configuración recomendada, así que no estoy seguro de cuánto afecta eso a lo que veo. Tengo un visor DYI con 1MOhm/20pF incorporado. Puse mi alcance DYI en la línea de alimentación antes del receptor y la señal es bastante consistente independientemente de lo que estén haciendo los servos (los servos parecen causar un cambio de fase muy pequeño). Sin embargo, cuando coloco la sonda en la línea de tierra, veo una fluctuación de aproximadamente 0,2 V cuando los servos están activos.
Lo que es interesante es que si pongo la sonda en la línea de señal del receptor obtengo lo que parece un ruido (esperado), pero cuando el servo está funcionando obtengo una buena onda cuadrada (que supongo que es parte de mi interferencia). De todos modos, gracias por la ayuda. Mucho más que aprender :)
@denver: sí, no soy un experto en la interfaz con servos. No sabría exactamente qué esperar. Supongo que la onda cuadrada es ruido del servo. Solo sé que esos circuitos integrados RX son muy sensibles al ruido y a la energía limpia. Lo he visto.