1 votos

Tratando el acoplamiento del ruido PWM en los sensores Hall como picos en el circuito del controlador BLDC

He diseñado la primera revisión de una placa controladora de BLDC (basada en los chips STM32 y DRV8323). Justo después de escribir el firmware, ¡noté que el acoplamiento de PWM en las señales de hall es muy terrible!

Los motores para los que diseñé este circuito tienen una potencia de ~20 Watts. Sus sensores de hall solo funcionan a 5V o más. Utilizo el modo XOR del temporizador STM32 para capturar y generar el evento de conmutación...el STM32 es de 3.3V...pero asumo que puede tolerar una entrada de 5V, aunque no sé cuál es la histéresis para detectar una señal baja o alta cuando los pines GPIO están configurados en modo XOR:

hall to xor

Por debajo del 100% de PWM, obtengo mucho ruido. La línea amarilla es uno de los sensores de hall (el azul es el evento de conmutación). Solo tengo 2 sondas, así que no pude capturar los 3 sensores y el evento de conmutación (alimentando un GPIO alto y bajo antes y después de actualizar la salida del temporizador). Como puedes ver, el ruido sobre el sensor de hall es bastante malo:

hall sensor noise in scope

Yo culpo a 2 cosas:

1. El diseño: Como no tenía experiencia previa, y debido a que hay 2 conectores de motor, enruté los sensores de hall muy cerca de las señales de fase (los verdes son fases y los amarillos son halls). entrar descripción de la imagen aquí entrar descripción de la imagen aquí

2. Cable del Motor: Los cables del motor son simplemente 8 cables uno al lado del otro (sin torsión) durante casi 50 cm...así que incluso si hice el mejor diseño en el PCB, el cable en sí causaría el problema de acoplamiento.

He probado el controlador con 100% de PWM (lo que significa que no hay conmutación) y todo se ve mucho mejor (el ruido es muy pequeño y limitado a cuando los semipuentes cambian en la actualización del sensor de hall). Así que realmente necesito cuidar este ruido. Sé que puedo mitigar este efecto en el software (por ejemplo, insertando un tiempo de espera y otros métodos de filtrado...) pero nada supera tener una señal limpia de todos modos.

Entonces, para resumir, aquí están mis preguntas:

1) ¿Qué puedo mejorar en el diseño? ¿separación de los sensores de hall y las señales de fase en conectores diferentes?

2) Voy a desmontar el cable del motor y separar los halls de las fases y hacerlos en par trenzado...antes de comprometerme con esto, ¿crees que tiene sentido?

3) ¿Debería/puedo usar un nivelador y posiblemente un disparador de Schmitt para eliminar el ruido y convertir 5V a 3.3V antes de enviarlo al controlador STM32? Si es así, ¿qué chips sugieres?

ACTUALIZACIÓN:

Aquí está el filtro RC para los sensores de hall, colocado cerca de la entrada del MCU. entrar descripción de la imagen aquí

2voto

mkeith Puntos 2726

Aquí está básicamente lo que tengo (también tengo un ferrite bead en serie justo en el conector, pero eso es para EMI, no forma parte del filtro paso bajo):

esquemático

simular este circuito - Esquemático creado usando CircuitLab

Esto es lo que te sugiero, dado que también quieres reducir la tensión de 5V a 3.3V. La constante de tiempo RC (ignorando el 1k) es el producto de R2 y R3 en paralelo y 56pF. R2 y R3 en paralelo es 10k, por lo que es bastante cercano a la misma constante de tiempo que mi circuito. Puedes experimentar con diferentes valores de capacitancia para cambiar la constante de tiempo, pero sospecho que verás un gran beneficio de esto. El tiempo de subida es alrededor de 500 o 600 ns, lo cual debería estar bien.

esquemático

simular este circuito

Coloca el capacitor cerca del procesador. El resistor también puede estar cerca, pero eso es menos crítico que asegurarse de que la conexión a tierra del capacitor esté cerca de la conexión a tierra del procesador.

1voto

Pdp Molniya Puntos 11

Creo que podrías encontrar que no es un problema de enrutamiento, sino que los sensores Hall están captando el campo magnético real de los devanados del motor. Tengo el mismo problema y mis rutas de señal están bien separadas.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X