Acelere el desarrollo de aplicaciones de motor BLDC para automoción e IoT con el controlador de motor A4964KJPTR-T
Colaboración de Editores de DigiKey de América del Norte
2021-10-26
Los motores de corriente continua sin escobillas (BLDC) se utilizan cada vez más en muchas y variadas aplicaciones, desde controles para abrir portones operados con el Internet de las Cosas (IoT) y ventanas de automóviles, hasta controladores de propulsión de satélites. El problema al que se enfrentan los diseñadores con los motores BLDC es que los algoritmos de control necesarios para accionarlos son complejos y a menudo especializados. Esto hace que sea difícil para el ingeniero medio poner uno en marcha en un tiempo razonable.
Los desarrolladores suelen tener que elegir entre una solución basada en software que se ejecuta en un microcontrolador, lo que proporciona una solución de software flexible, pero también supone una carga de cálculo para el microcontrolador, o utilizar un circuito integrado (CI) dedicado. Este último encapsula toda la función de control del motor BLDC y descarga el control del BLDC del host.
Este artículo analiza las diferencias entre una solución de software basada en un microcontrolador y una solución de chip de hardware dedicado. A continuación, se analiza en profundidad cómo utilizar el Allegro MicroSystems A4964KJPTR-T, un controlador de motor diseñado para simplificar el control de motores BLDC específicamente para aplicaciones de automoción. El artículo mostrará cómo interactuar con el A4964KJPTR-T junto con algunas buenas prácticas para evitar comportamientos inesperados.
Una (muy) breve introducción a los motores BLDC
Los motores BLDC proporcionan un par eficaz en una amplia gama de velocidades, son silenciosos y no sufren la fricción mecánica de los motores de escobillas. Los motores BLDC se controlan por corriente, no por tensión, lo que permite utilizarlos en una gran variedad de aplicaciones, para las que se presentan en una gran variedad de formas, tamaños y costos.
Por ejemplo, el QBL4208-41-04-006 de TRINAMIC Motion Control es un motor de 24 voltios y 4000 revoluciones por minuto (RPM) que proporciona pares de hasta 0,06 Newton metros (Nm) (Figura 1). El motor es ligero (0.662 libras (lb)) y ofrece al desarrollador varias opciones para controlar el motor, como por ejemplo mediante el funcionamiento sin sensores utilizando la fuerza electromotriz de retorno (BEMF), o utilizando sensores incorporados que informan de la posición.
Figura 1: El QBL4208-41-04-006 es un motor BLDC de 24 voltios y 4000 RPM que puede ofrecer algo más de 0.06 Nm de par a velocidad máxima. (Fuente de la imagen: TRINAMIC Motion Control GmbH)
Para obtener más par, los diseñadores pueden utilizar el QBL4208-41-04-025, también de TRINAMIC Motion Control (Figura 2). Se trata de un motor BLDC de 24 voltios y 4000 RPM que puede ofrecer algo más de 0.25 Nm de par.
Figura 2: El TRINAMIC Motion Control QBL4208-41-04-025 es un motor BLDC de 24 voltios y 4000 RPM que puede proporcionar algo más de 0.25 Nm de par a velocidad máxima. (Fuente de la imagen: TRINAMIC Motion Control GmbH)
Los motores BLDC se accionan a través de líneas trifásicas que generan un campo magnético que luego empuja contra los imanes permanentes para mover el estator y hacer girar el motor.
En teoría, esto parece fácil, pero en la práctica, el accionamiento de un motor BLDC es bastante complicado, lo que hace que los desarrolladores tengan que elegir entre utilizar un marco de software para accionar el motor u optar por una solución de chip dedicada.
Software frente a soluciones de chip dedicadas
Hay varios factores que los desarrolladores deben tener en cuenta a la hora de resolver cómo hacer girar su motor BLDC. Estos factores se reducen básicamente a:
- Costo de la lista de materiales frente a costos de mano de obra
- La complejidad de la placa frente a la complejidad del software
- Tiempo y costos de mantenimiento
Desde el punto de vista del hardware, puede ser muy tentador tomar la ruta del software, ya que una solución de chip dedicado añade algún costo adicional a la lista de materiales. En lugar de un chip dedicado, elimina ese costo, gasta una fracción más en un microcontrolador y ponga todos los algoritmos de control en ese microcontrolador. Parece una situación en la que todos ganan, pero los equipos no suelen tener en cuenta todas las ramificaciones de esta decisión.
Sí, disminuye el costo de la lista de materiales, pero entonces supone una carga adicional para el microcontrolador para procesar los datos de estado del BLDC y accionar continuamente el motor. Si el microcontrolador también intenta tomar muestras de otros sensores, hablar con una radio y controlar otros dispositivos, los costos de desarrollo y mantenimiento del software podrían dispararse si no se tiene cuidado.
Dicho esto, una solución basada en software en un microcontrolador puede ofrecer flexibilidad en el sentido de que un equipo puede afinar sus algoritmos de control del motor. El uso de programas informáticos tampoco significa que las cosas tengan que complicarse siempre en exceso.
Por ejemplo, lo normal sería que trasladar el algoritmo de control del motor al microcontrolador ocupara más RAM y requiriera mucha memoria flash. Sin embargo, si un equipo utiliza un microcontrolador diseñado para el control de motores, como el microcontrolador de control de motores F280049CRSHSR de Texas Instruments, los algoritmos se incorporan a una biblioteca que reside en la ROM del microcontrolador. Esto significa que el único código adicional que se añade a la aplicación son las llamadas a funciones para acceder a la biblioteca que hace todo el trabajo pesado.
Pero hacer girar un motor BLDC no solo se reduce al software, sino que también requiere un hardware. La figura 3 muestra una aplicación de ejemplo que utiliza un microcontrolador C2000, del que el F280049CRSHSR es miembro de la familia, y que ilustra todo lo necesario y opcional para accionar un motor BLDC. Además de un microcontrolador, también es necesario que haya alguna etapa de potencia trifásica que pueda accionar las tres fases del motor BLDC para hacerlo girar.
Figura 3: Los microcontroladores C2000 de Texas Instruments están diseñados para aplicaciones de control de motores. Esta imagen muestra una aplicación de ejemplo con el microcontrolador en el centro y la circuitería necesaria y opcional para accionar un motor BLDC. (Fuente de la imagen: Texas Instruments)
Utilizar un microcontrolador para accionar el motor es sin duda interesante, pero ¿qué aspecto tiene una solución de hardware dedicada? Echemos un vistazo al chip controlador de motor A4964KJPTR-T de Allegro MicroSystems.
El controlador de motor A4964KJPTR-T de Allegro MicroSystems
El chip controlador de motor A4964KJPTR-T de Allegro MicroSystems es un controlador de motor BLDC dedicado que contiene toda la inteligencia necesaria para accionar un motor (Figura 4). Diseñado específicamente para aplicaciones de automoción y para su uso con MOSFET de canal N, el chip tiene un arranque y conmutación sin sensores, por lo que requiere una cantidad mínima de hardware externo. El A4964KJPTR-T también funciona en una amplia gama de voltajes, de 5.5 a 50 voltios, que cubre casi todas las aplicaciones estándar, junto con los sistemas de automoción.
Quizá su característica más interesante sea que el A4964KJPTR-T puede conectarse a un microcontrolador o a una unidad central de control electrónico (ECU) a través de la interfaz de periféricos en serie (SPI) para configurar los distintos registros para el funcionamiento del motor. Obviamente, el microcontrolador no necesita ser tan potente como el que ejecuta los algoritmos de control del motor.
Figura 4: El controlador de motor BLDC A4964KJPTR-T puede funcionar con 5.5 a 50 voltios y proporciona un arranque y una conmutación sin sensores. La velocidad del motor se puede configurar a través de SPI o a través de una señal PWM dedicada. (Fuente de la imagen: Allegro MicroSystems)
Alternativamente, y esta es la parte interesante, la velocidad del motor del A4964KJPTR-T también puede ser manejada sin SPI simplemente proporcionando una señal de modulación de ancho de pulso (PWM). Hay una memoria no volátil donde se pueden almacenar los ajustes del motor que se cargan al encenderlo, permitiendo que solo una señal PWM controle el motor.
Desde el punto de vista de la configuración, el A4964KJPTR-T tiene 32 registros de 16 bits direccionables, más un registro de estado. El registro de estado es único en el sentido de que los primeros 5 bits se transmiten durante cada operación de lectura/escritura en el SPI, lo que permite al software comprobar un estado general para ver si hay algún fallo o problema. Todos los registros de estado pueden leerse durante las operaciones de escritura en el chip, ya que no se transmiten datos de vuelta desde el A4964KJPTR-T.
En los 32 registros direccionables, también hay dos registros especiales. El registro 30 es de solo escritura y el 31 de solo lectura. El registro de solo escritura permite al desarrollador establecer la entrada de demanda, o la tasa de ciclo de trabajo a la que el motor será impulsado con un valor entre 0 - 1023. Los datos del registro de solo lectura cambian en función de los datos solicitados que se escriben en el registro 29, el registro de selección de lectura. Este registro permite recuperar una amplia gama de información de telemetría, como por ejemplo:
- Diagnósticos
- Velocidad del motor
- Corriente media de alimentación
- Voltaje de alimentación
- Temperatura del chip
- Entrada de la demanda
- Ciclo de trabajo pico del puente aplicado
- Avance de fase aplicado
Además de estos registros especiales, los 30 restantes permiten ajustar la aplicación específica del motor y habilitar o deshabilitar los fallos, como el límite de corriente y los fallos de accionamiento de la puerta.
Los controladores de motor dedicados son interesantes porque resumen todo lo que hay que configurar para hacer funcionar el motor en unas pocas docenas de registros de configuración. Esto elimina drásticamente cualquier sobrecarga de software que de otro modo existiría en un microcontrolador y, lo que es más importante, puede reducir drásticamente los costos de desarrollo y mantenimiento del software. Accionar el BLDC no es entonces más que enviar un PWM que puede no tener sobrecarga en un microcontrolador, o habilitar el bit del motor y proporcionar una entrada de demanda basada en SPI para hacer girar el BLDC.
Consejos y trucos para utilizar el A4964KJPTR-T
El A4964KJPTR-T es bastante sencillo de interconectar, pero hay varios "consejos y trucos" que los desarrolladores deben tener en cuenta y que pueden simplificar y acelerar su desarrollo, como por ejemplo:
- El registro de estado se devuelve en la interfaz SPI durante cada escritura en el chip y no está disponible como un registro dedicado y direccionable. Esto significa que el código del controlador necesita monitorizar la línea SDO del bus SPI mientras escribe en el chip para obtener información de estado.
- La información sobre fallos se incluye en el registro de estado, pero en cada transacción SPI se dispone de una visión general del estado del chip en los primeros cinco bits cuando el microcontrolador proporciona la información de acceso a la dirección. Estos datos pueden utilizarse para determinar si se ha producido algún problema.
- Hay dos registros únicos en el mapa de memoria que son de sólo lectura y escritura. Esto es sencillo, pero tenga cuidado de no intentar leer desde el registro de solo escritura, ya que esto escribirá en el registro cualquier dato ficticio que se esté utilizando en la secuencia de lectura.
- El chip dispone de una memoria no volátil que puede utilizarse para almacenar los parámetros por defecto. Estos parámetros se cargan en la memoria RAM y se utilizan durante el arranque. Para garantizar que el chip se inicie en el estado listo de la manera más eficiente, programe valores de arranque "seguros" en el chip.
- Si el dispositivo final trabaja en un entorno ruidoso o con mucha radiación, no es mala idea diseñar el código de la aplicación para reafirmar los datos de configuración periódicamente. La configuración del chip se almacena en la memoria RAM, lo que significa que es vulnerable a los rayos cósmicos, a los cambios de bits y a todos esos divertidos y raros acontecimientos que pueden ocurrir con la electrónica.
Conclusión:
Las implementaciones de motores BLDC para aplicaciones de automoción, IoT u otras son bastante comunes, pero conducirlos puede ser complejo. Para gestionar la complejidad del software, los desarrolladores pueden utilizar un controlador de motor BLDC dedicado, como el A4964KJPTR-T, que encapsula toda la funcionalidad de control del motor.
Aunque el software sigue siendo necesario para interactuar con el chip, el microcontrolador que ejecuta el software solo tiene que establecer los ajustes de configuración, y el A4964KJPTR-T se encarga de accionar el motor. Los desarrolladores que sigan los "consejos y trucos" suministrados descubrirán que se ahorran bastante tiempo y disgustos al intentar utilizar el A4964KJPTR-T.
Descargo de responsabilidad: Las opiniones, creencias y puntos de vista expresados por los autores o participantes del foro de este sitio web no reflejan necesariamente las opiniones, las creencias y los puntos de vista de DigiKey o de las políticas oficiales de DigiKey.




