Cómo sincronizar las salidas PWM del microcontrolador para impulsar las cargas de manera más eficiente

Por Bill Giovino

Colaboración de Editores de DigiKey de América del Norte

La mayoría de los microcontroladores tienen al menos un periférico de modulación por ancho de pulsos (PWM) que genera múltiples formas de onda en forma de ondas cuadradas. Estas salidas PWM se pueden usar para impulsar cargas síncronas, como motores paso a paso en sistemas mecánicos y MOSFET de potencia para convertidores de potencia. Para estas cargas, es importante que las formas de onda PWM se sincronicen con precisión para el funcionamiento adecuado de la carga objetivo.

Si el periférico PWM no se programa cuidadosamente, puede ocasionar retrasos ocasionales de fase entre las formas de onda, lo que ocasiona la pérdida de sincronización cuando los bordes de las formas de onda no se alinean correctamente. Estos retrasos de fase provocarán que las cargas se impulsen de manera ineficiente, lo que desperdicia energía y puede generar un exceso de calor. Para los periféricos PWM comunes, es posible habilitar o deshabilitar un PWM mientras se producen retrasos de fase con otras salidas PWM.

Esto es especialmente un problema para aplicaciones de Internet de las Cosas (IoT) de tamaño pequeño, alimentadas por batería, en las que se utiliza un solo periférico PWM de 16 o 32 salidas para controlar múltiples cargas externas. Para estas aplicaciones de IoT, los retrasos de fase pueden desperdiciar la energía de la batería. Además, debido a que los retrasos de fase no se detectan, un diagnóstico de red del punto final de IoT puede pasarlos por alto.

Este artículo analiza algunas de las aplicaciones para periféricos PWM de microcontroladores y cuándo es importante que las formas de onda PWM en estas aplicaciones permanezcan sincronizadas. Luego analiza un microcontrolador de Maxim Integrated que tiene un periférico de tren de pulsos diseñado específicamente para evitar la pérdida de sincronización de la forma de onda en estas aplicaciones y examina cómo configurar este periférico para garantizar que la carga objetivo se maneje de manera eficiente.

Periféricos de microcontrolador PWM y sus cargas objetivo

La mayoría de los microcontroladores de propósito general tienen al menos un periférico PWM que se utiliza para generar ondas cuadradas regulares y repetitivas. Hay muchas cargas que pueden beneficiarse de una unidad PWM, desde cargas simples hasta sistemas de unidades mecánicas más complejas.

Los diodos emisores de luz (ledes) son un ejemplo de una carga simple que se puede manejar de manera muy eficiente con una señal PWM, especialmente, para aplicaciones en las que un led de color debe atenuarse. En comparación con la atenuación de un led al variar la CC delantera, la atenuación PWM mantiene la calidad de la luz con más precisión sin un cambio notable en el color. Un periférico PWM puede controlar fácilmente uno o más ledes. Si los ledes se utilizan como indicadores visuales para un operador, las diferencias de fase entre dos o más ledes no se notan. Sin embargo, si los ledes se están utilizando en una aplicación más compleja, como cuando varios ledes están comunicando datos en forma de modulación de luz a receptores ópticos, entonces la sincronización de los ledes puede ser una consideración de diseño importante.

Otra carga simple para un microcontrolador PWM es un motor de CC impulsado a través de un controlador de motor IC. Si bien la velocidad del motor de CC se puede cambiar fácilmente variando el voltaje en sus dos terminales, el control PWM proporciona un control más preciso de la rotación del motor. Si se usa un sensor de velocidad para un sistema de control de circuito cerrado, la velocidad del motor se puede mantener con más precisión. Si se usan dos o más motores de CC y se deben operar juntos, puede ser necesario sincronizar las formas de onda PWM para mantener el control exacto de la velocidad entre los motores.

Conducción de motores paso a paso bipolares

La situación del diseño se vuelve más compleja al conducir motores paso a paso bipolares. Los motores paso a paso bipolares son impulsados por dos devanados de corriente reversibles (Figura 1). Cada devanado requiere dos PWM, por lo que se requieren cuatro PWM.

Diagrama del motor paso a paso bipolar girado por dos devanados de corrienteFigura 1: Dos devanados de corriente (representados por bobinas rojas y verdes) que se utilizan para transportar corriente en cada dirección giran el motor paso a paso bipolar. Al controlar la fase y la duración del flujo de corriente en los devanados, la velocidad y la posición del motor se pueden controlar fácilmente. (Fuente de la imagen: DigiKey).

Como se ve en la Figura 1, los dos devanados de corriente representados por las bobinas roja y verde se deben conducir en la secuencia adecuada para que el motor funcione. La secuencia como se ve en la Figura 2 conduce el motor paso a paso bipolar un paso completo en cada cambio de forma de onda.

Diagrama de conducción de dos bobinas en un motor paso a paso bipolarFigura 2: Cada una de las dos bobinas en un motor paso a paso bipolar debe accionarse de acuerdo con el diagrama anterior para que el motor se mueva un paso completo en cada cambio de forma de onda. La corriente en cada bobina se conduce primero en una dirección; luego la bobina está inactiva; entonces la corriente se conduce en la dirección opuesta. (Fuente de la imagen: DigiKey).

Cada paso del motor comienza en cada transición de forma de onda. Como se ve en la Figura 2, la polaridad del voltaje a través de los devanados, y por lo tanto el flujo de corriente a través de cada devanado, cambia en cada paso. Los retrasos de fase en cualquiera de las señales PWM pueden provocar el tartamudeo del motor, lo que provoca una pérdida de par de torsión, especialmente, a bajas velocidades.

Un microcontrolador con un periférico PWM que solo usa cuatro salidas puede controlar el motor paso a paso fácilmente con una cantidad moderada de cuidado necesario para mantener la sincronización. Sin embargo, la situación es más compleja si se utiliza el mismo periférico PWM para controlar más de una carga. Por ejemplo, un PWM de 16 salidas puede tener cuatro salidas PWM asignadas a un motor paso a paso, con las otras salidas PWM asignadas a otras cargas, como motores de CC o ledes. Después de configurar las salidas PWM para la frecuencia y el ciclo de trabajo utilizando los registros apropiados, se establece un bit en un registro de habilitación/deshabilitación para cada PWM. En un microcontrolador Arm®, el firmware puede establecer los bits apropiados mediante el uso de bandas de bits. Sin embargo, las bandas de bits realizan una lectura/modificación/escritura (RMW) en el registro de destino. Si otras salidas PWM están programadas para comenzar o finalizar durante la operación RMW, el resultado puede ser impredecible y, en algunas situaciones, puede habilitar o deshabilitar un PWM contrario al control del firmware.

Maxim Integrated ha resuelto este problema con el microcontrolador MAX32650 Arm Cortex®-M4F que funciona a 120 megahercios (MHz). Tiene una amplia gama de periféricos que incluyen tres interfaces SPI estándar, un Quad SPI, tres UART, dos puertos I2C, una interfaz USB 2.0 de alta velocidad con capa física (PHY), seis temporizadores de 32 bits y una unidad de encriptación AES- 256 (Figura 3).

Diagrama del MAX32650 de Maxim Integrated (haga clic para agrandar)Figura 3: El Maxim Integrated MAX32650 se basa en un Arm Cortex-M4F de 120 MHz y tiene una gama completa de periféricos y opciones de memoria dirigidas a aplicaciones de informática de borde de IoT de alto rendimiento. (Fuente de la imagen: Maxim Integrated).

Con 3 megabytes (Mbytes) de flash y 1 Mbyte de SRAM, el MAX32650 apunta a puntos finales sofisticados de Internet de las cosas (IoT) que requieren computación periférica. El MAX32650 también tiene un periférico de tren de pulsos de 16 salidas que puede generar señales PWM sofisticadas. Puede generar ondas cuadradas con una frecuencia configurable y un ciclo de trabajo del 50 %, así como un tren de pulsos basado en un patrón de bits programable que puede tener hasta 32 bits de longitud.

Prevención de retrasos de fase

El generador de tren de pulsos puede habilitar o deshabilitar individualmente cualquiera de las 16 salidas PWM usando el registro PTG_ENABLE de 32 bits. Escribir un 1 en cualquier posición de bit habilita ese tren de pulsos, lo que le permite funcionar como está configurado. Escribir un 0 detiene los relojes del tren de pulsos y la lógica, y congela la salida en su estado lógico actual. Este registro tiene las mismas limitaciones de RMW que los registros de habilitación/deshabilitación que se encuentran en la mayoría de los microcontroladores, por lo que no es aconsejable el uso de bandas de bits.

Para mantener la sincronización de fase entre formas de onda, el periférico del tren de pulsos en el MAX32650 admite una característica única llamada Safe Enable (Habilitación segura) usando el registro de 32 bits PTG_SAFE_EN y Safe Disable (Deshabilitación segura) usando el registro de 32 bits PTG_SAFE_DIS. Los 16 bits superiores de cada uno de estos registros no se utilizan, y se recomienda que las posiciones no utilizadas siempre se escriban con ceros.

Para habilitar de forma segura cualquiera de las salidas, el firmware escribe un 1 en las posiciones de bit correspondientes en PTG_SAFE_EN. Esto también establece inmediatamente las posiciones de bit para las salidas en PTG_ENABLE, comenzando la salida PWM. Escribir un 0 en cualquier posición de bit en PTG_SAFE_EN no tiene ningún efecto en las salidas del tren de pulsos.

Para deshabilitar de forma segura cualquiera de las salidas, el firmware escribe un 1 en las posiciones de bit correspondientes en PTG_SAFE_DIS. Esto también libera inmediatamente las posiciones de bit para las salidas en PTG_ENABLE y detiene la salida PWM. Escribir un 0 en cualquier posición de bit en PTG_SAFE_DIS no tiene ningún efecto en las salidas del tren de pulsos.

Escribir en estos registros no realiza un RMW. La función de habilitación/deshabilitación segura permite que uno o más trenes de pulsos se inicien o detengan de inmediato, al tiempo que garantiza que ningún otro tren de pulsos se verá afectado. Las bandas de bits no son compatibles con los registros PTG_SAFE_EN y PTG_SAFE_DIS.

Refiriéndose nuevamente al motor paso a paso bipolar en la Figura 1, las salidas de tren de pulsos 0 y 1 pueden usarse para A y B para el devanado de corriente verde, mientras que las salidas de tren de pulso 2 y 3 pueden usarse para C y D para el devanado de corriente rojo. Dado que las formas de onda en la Figura 2 tienen puntos muertos, es apropiado usar la función de tren de pulsos para programar un patrón que se pueda configurar para que se repita cualquier número de veces sin intervención del firmware.

Una vez configurado, el motor se puede iniciar escribiendo 0000000Fh en PTG_SAFE_EN. Esto inicia simultáneamente las salidas de tren de pulsos 0 a 3, que arrancan el motor sin afectar ninguna otra salida de tren de pulsos en funcionamiento. El motor se puede detener escribiendo 0000000Fh en PTG_SAFE_DIS. Ambas operaciones no tienen efecto en ningún otro tren de pulsos en funcionamiento.

Si alguna de las otras 12 salidas de tren de pulsos necesita habilitarse o deshabilitarse, puede controlarse de manera segura usando estos dos registros. Mientras no se escriba un 1 en las posiciones inferiores de cuatro bits en estos registros, la operación del motor paso a paso no se verá afectada. Esto contrasta con el uso de un registro de habilitación estándar con un RMW donde las salidas pueden tartajear y causar un cambio de fase que puede afectar negativamente el par. La función de habilitación/deshabilitación segura es similar a una operación atómica y, por lo tanto, garantiza que el motor paso a paso funcione de manera eficiente, no desperdicie energía y mantenga el par máximo en todo momento.

Los pines de salida del microcontrolador no tienen la capacidad suficiente para conducir un motor paso a paso y requieren un controlador de motor o puente H. El Allegro MicroSystems A3909GLYTR-T es un controlador de doble puente H que puede operar motores que requieren de 4 a 18 voltios y necesitan hasta 1 amperio (A) por devanado de corriente (Figura 4).

Diagrama del controlador de doble puente H de Allegro MicroSystems A3909Figura 4: El Allegro MicroSystems A3909 es un controlador de doble puente H que puede generar y hundir hasta 1 A para bobinas de motor paso a paso. (Fuente de la imagen: Allegro MicroSystems)

El A3909 cuenta con protección de apagado térmico, protección contra sobrecorriente y protección contra cortocircuitos. Cada entrada (INx) controla la salida correspondiente (OUTx). El MAX32650 PWM puede conectar las salidas de tren de pulsos 0 y 1 a las entradas IN1 e IN2 (verde) para conducir la bobina verde a través de OUT1 y OUT2, y las salidas de tren de pulso 2 y 3 a IN3 e IN4 (rojo) para conducir la bobina roja a través de OUT3 y OUT4. Esto permite que el A3909 conduzca directamente el motor paso a paso.

El A3909 también admite una función útil de alta impedancia. Si ambas entradas de un puente H son lógicas 0 durante más de un milisegundo (ms), ambas salidas se colocan en un estado de alta impedancia. Esto es útil para permitir que el motor desacelere o para cualquier paso de motor paso a paso que requiera que la salida sea de alta impedancia. Refiriéndose nuevamente a la Figura 2, cualquier parte de la forma de onda que esté inactiva se beneficiaría si se la coloca en un estado de alta impedancia. Esto mejora la eficiencia al evitar que la bobina de corriente interfiera con el funcionamiento del motor mientras la otra bobina de corriente lo atraviesa.

Si las cuatro entradas (ambos pares) se mantienen bajas durante más de 1 ms, obviamente ambos pares de salida entran en alta impedancia exactamente como se describe anteriormente. La hoja de datos llama a esto modo de suspensión porque, además, algunos circuitos internos pierden potencia.

Conclusión

Los periféricos comunes de microcontroladores a menudo incluyen funciones PWM utilizadas para impulsar cargas externas, como motores y MOSFET de potencia. Debido a que realizar operaciones de manipulación de bits en el registro de habilitación de PWM puede causar resultados impredecibles en algunos casos, los proveedores de microcontroladores están abordando esto con nuevos periféricos PWM que ofrecen una funcionalidad que puede habilitar y deshabilitar de forma segura las salidas PWM individuales sin interferir con otras salidas PWM, lo cual evita así retrasos ocasionales de fase y pérdida de sincronización.

DigiKey logo

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.

Información sobre el autor

Image of Bill Giovino

Bill Giovino

Bill Giovino es ingeniero electrónico con un BSEE de la universidad de Syracuse y es uno de los pocos profesionales capaz de pasar de ingeniería en diseño a ingeniería de aplicación en campo a marketing tecnológico de forma exitosa.

Durante más de 25 años, Bill ha disfrutado promocionar las nuevas tecnologías a audiencias técnicas y no técnicas por igual en muchas empresas, entre ellas STMicroelectronics, Intel y Maxim Integrated. Mientras trabajó en STMicroelectronics, Bill ayudó a dirigir los primeros éxitos de la empresa en la industria de microcontroladores. En Infineon, Bill estuvo a cargo de que el diseño del primer controlador de la empresa tuviera éxito en la industria automotriz de EE. UU. Como consultor de marketing para CPU Technologies, Bill ha ayudado a muchas empresas a convertir sus productos con bajo rendimiento en casos de éxito.

Bill fue uno de los primeros en adoptar el Internet de las cosas, incluso colocar la primera pila de TCP/IP en un microcontrolador. Bill es un ferviente creyente de "Vender a través de la educación" y de la gran importancia de contar con comunicaciones claras y bien escritas a la hora de promocionar productos en línea. Es moderador del grupo en Linkedin denominado Semiconductor Sales & Marketing (Marketing y ventas de semiconductores) y habla sobre el concepto B2E (empresa-empleado) de manera fluida.

Información sobre la editorial

Editores de DigiKey de América del Norte