BLDC Motor: velocidad del algoritmo

(Read 131 times)
BLDC Motor: velocidad del algoritmo on: March 06, 2021, 10:34:42 AM
Hola,
he desarrollado mi propio esquema y PCB (PCB Way) de un ESC para motor BLDC a 12V.
Tengo un problema al activar el comparador interno del AtMega8L (5V) y es que no detecta las sucesivas señales An, Bn y Cn de aprox. 3 Vpp cada una.
Las señales An,Bn,Cn son de 200-300Hz, una frecuencia muy baja, puesto que esperaría más en un rango 800-1000Hz.

Sin embargo, si toco con los dedos la zona cercana al pin 10 del AtMega8L, el algoritmo sigue las variaciones y el motor se pone a girar.
Pero si pongo una sonda de osciloscopio para medir. justo en ese punto. la forma de onda, entonces el algoritmo se detiene...
Parece un tema de impedancias y de corriente o plano de masa, pero el layout del PCB está bastante bien: 4 capas y hasta 6 capas he probado con planos generosos de masa y power para las pistas de potencia. Las pistas de las señales An,Bn,Cn son de 0.3-0.5mm puesto que no llevan mucha corriente.

He visto tu tutorial sobre ESC y motor BLDC, y mis preguntas serían la siguientes:
¿con qué frecuencia de reloj interno trabaja tu algoritmo? 1Mhz, 4MHz, 8MHz, 16MHz, ....
¿cuál es la frecuencia de señal que obtienes en las señales filtradas An,Bn,Cn? ¿Qué valores le pones al filtro RC, pasa-baja frecuencia?
¿Y en la señal SUMA de entrada al comparador interno qué forma de onda obtienes? ¿la puedes medir con osciloscopio, y no se te detiene el algoritmo?

Adjunto mi esquemático.
Un saludo y muchas gracias.
Jose Manuel



Re: BLDC Motor: velocidad del algoritmo Reply #1 on: March 06, 2021, 12:50:22 PM
Hola. No puedo ver tu esquema o código.
Tal como puedes ver en mi esquema: https://electronoobs.com/eng_arduino_tut91_sch1.php no tengo un filtro RC para el back EMF, solo un difisor de voltaje para bajar el valor por debajo de 5V para el ATmega328. Mi placa funciona con un reloj de 16Mhz de un crystal externo. La señal suma se aplica al D6 que es entrada al comaprador interno. Esta suma debería ser una linea continua en teoría. Nunca lo será por ruido, pero si piensas, cuanedo sumas todas las fases, la suma debería ser el "cero virtual", por lo tanto una linea contínua. Podría ser que te falle por el código. Debes definir bien las entradas negativas en cada fase.

Te paso este video por si no lo has vistop ya: https://youtu.be/S7NRqWe72ws



Re: BLDC Motor: velocidad del algoritmo Reply #2 on: March 07, 2021, 12:00:57 PM
Hola. Muy bueno el video con la versión 3 de ESC. No lo había visto. ¿Está disponible en tienda?

En mi caso estoy usando un AtMega8L a 8MHz (reloj interno) y 5V. Los 5V son independientes, no los extraigo de los 12V vía regulador LDO.
Divisor de 47K y 15K para señales A,B,C. Batería de entre 11V y 12V.
Lo curioso es que el algoritmo me funciona más o menos bien para una versión de PCB de 4 capas y transistores MOSFET-N Dual (2 en 1)
Efectivamente, el cero virtual de la señal "SUMA" es una línea continua de unos 2V aprox. y con mucho ruidillo. Se puede medir con osciloscopio.
Y las señales A,B,C de entrada al ADC son de 1Vpp y 1KHz de frecuencia.

Sin embargo, he rehecho el PCB para poner 6 capas, más planos de potencia, y cambiar los MOSFET-N por el IRF3205, que aguanta mucha más corriente.
Tamaño de placa es exactamente el mismo.
El resultado es que, con el mismo algoritmo de antes, no arranca en cuanto se activa la interrupción del comparador, después de la secuencia de rotación inicial de 2ms.
Lo más curioso de todo es que si empujo/giro manualmente el motor, rápidamente en un sentido, el algoritmo ya arranca sólo y comienza a detectar cruces por cero, pero con poca chicha en el motor. Me explico:

La frecuencia de la señal A,B,C de entrada al ADC ahora es de 3Vpp y 400Hz, y no de 1KHz. Se nota en que consume menos corriente el motor
(pérdidas del 50% como mínimo)
Y lo más extraño es que sólo funciona en 12V exactos.
Si varío la tensión +/- 1V (13V ó 11V) la frecuencia va bajando hasta los 50Hz hasta que se detiene el algoritmo.
¡Varía la frecuencia con la tensión de batería de manera drástica!
Y cuando mido la señal "SUMA" de entrada al comparador, ya no es una línea continua con ruido. Ahora es igual que las señales A,B,C (en amplitud y frecuencia) o alguna de ellas.
Muy extraño, yo creo que es un tema de layout y lo único que ha cambiado es el tipo de transistor.  O quizá sea la longitud de las pistas, no sé.

¿Podrías indicarme qué anchura, y longitud de pistas utilizas para las señales A,B,C que van desde el MOSFET hasta el divisor de entrada al ADC del micro?
¿crees que una longitud de medio metro en los cables A,B,C que van del MOSFET hasta el Motor podría influir en pérdida de potencia degradación de las señales A,B,C
por alteraciones en las fases A,B,C de retroalimentación hacia el comparador? ¿Tienes alguna experiencia negativa con el uso del transistor IRF3205 o equivalentes y cables largos?

Un saludo. Muchas gracias.
Jose