Tenemos un ganador. Resultados de las pruebas en PCB test 2

Tras varias pruebas y análisis, el hardware de LibreServo ya está finalmente elegido y funcionando, ¡incluso el puente en H que me daba muchos problemas! En general todas las partes de LibreServo se quedan como estaban, porque ya funcionaban correctamente, salvo lo comentado en este artículo.

PUENTE EN H

Vayamos directamente y sin rodeos al mayor problema que tenía, el puente en H. La inclusión de las resistencias de 6 Ohms entre el driver de mosfets y las puertas de los mosfet fue determinante junto con los condensadores de 10 uF de desacoplo en los driver de mosfet que se me había olvidado poner en la primera placa de test.

El problema que realmente había con el puente en H era un conjunto de varios problemas. Por un lado al no tener condensadores de desacoplo el driver de mosfets provocaba mucho ruido en la propia señal del driver. Además, al no tener la resistencia de 6 Ohms en las líneas entre el driver y los mosfets, provocaba picos de consumo más acuciados y a su vez mayor ruido, todo eso provocaba que los mosfet se activaran y desactivaran debido al ruido que al final producía aún más ruido y entrara todo en bucle quemándose los driver de los mosfet.

Con la configuración actual funciona sin problemas con un PWM de incluso 140 KHz y varios amperios en continua en todo el rango de utilización de LibreServo, de 4,5 a 18 Voltios.

Esquema puente en H
Esquema puente en H

SENSOR DE CORRIENTE

A este apartado que parece sencillo tuve que dedicarle más tiempo del esperado. El problema que había y que se veía gracias al osciloscopio (nunca dejaré de recomendar tener uno si quieres hacer algún proyecto mínimamente serio), es que el sensor es demasiado rápido y se podía ver perfectamente el PWM a 32KHz del motor en la salida del sensor. Con un filtro RC a 1KHz se solucionaba bastante la señal, pero obligaba a que cualquier control de par que se quisiera hacer debería de ser a 1KHz como mucho (incluso menos). Como el control de par debería de ir más rápido que el bucle normal PID de posición (unas 10 veces más rápido), esto no nos servía.

La solución final fue subir la frecuencia del PWM a 140KHz, y luego aplicar un filtro RC a 10KHz. Esto provoca que el microcontrolador sólo tenga 9 bits de resolución, ya que 140.000*512=72.000.000 que es la frecuencia del microcontrolador. Para solucionar este nuevo inconveniente, se programará una técnica de entramado para subir a 12 bits la resolución del PWM. Más adelante haré un pequeño artículo al respecto.

Con todo ello, el sensor de corriente queda ya listo para funcionar en perfectas condiciones.

Señal del sensor de corriente antes y después de un filtro RC

ENCODER

Para finalizar, se optimizó el código de lectura del sensor hasta bajar de los 19uS en la lectura respecto a los 25,2uS anteriores. Estoy más que contento al respecto.

Lectura AEAT8800 SSI rápida
Lectura AEAT8800 SSI rápida
LibreServo enviando datos por RS485 a Arduino


Para acabar ¡La nueva versión de LibreServo ya está de camino a casa! 🤩

Suscripción

Recibe un email por cada nuevo artículo.

Esta pregunta es para comprobar si usted es un visitante humano y prevenir envíos de spam automatizado.

3 + 2 =
Resuelva este simple problema matemático y escriba la solución; por ejemplo: Para 1+3, escriba 4.