Compartir a través de


Uso de PWM en aplicaciones de alto nivel

Importante

Esta es la documentación de Azure Sphere (heredado). Azure Sphere (heredado) se retira el 27 de septiembre de 2027 y los usuarios deben migrar a Azure Sphere (integrado) en este momento. Use el selector de versiones situado encima de la TOC para ver la documentación de Azure Sphere (integrado).

En este tema se describe cómo acceder a los moduladores de ancho de pulso (PWM) de los dispositivos para su uso en aplicaciones de alto nivel de Azure Sphere.

Para modular el ancho de pulso, se varía el ciclo de servicio (coeficiente de tiempo de actividad e inactividad) de una señal digital por pulsos. Los moduladores de ancho de pulso se usan en diversas aplicaciones, como el control de motores digitales, la comunicación y la conversión de señales digitales a analógicas.

Para usar PWM en las aplicaciones de Azure Sphere, debe incluir los archivos de encabezado y Pwm la funcionalidad necesarios y especificar el controlador para los canales PWM a los que accederá la aplicación.

En el ejemplo PWM_HighLevelApp, se muestra cómo usar PWM en una aplicación sencilla de conversión de señal digital a analógica en un dispositivo MT3620.

Requisitos de PWM

Las aplicaciones que usan PWM deben incluir los archivos de encabezado adecuados y agregar la configuración de PWM al manifiesto de aplicación.

Todas las aplicaciones deben establecer su hardware de destino e incluir el archivo de encabezado de definición de hardware correspondiente.

Archivos de encabezado

 #include <applibs/pwm.h>
 #include "path-to-your-target-hardware.h"

Reemplace "rutaDeAccesoAlHardwareDeDestino.h" por la ruta de acceso al archivo de encabezado de su hardware.

Configuración del manifiesto de aplicación

La configuración del PWM en el manifiesto de aplicación enumera los controladores de PWM a los que la aplicación tiene acceso. Para configurar estas opciones, agregue la funcionalidad Pwm al manifiesto de aplicación y, a continuación, agregue cada controlador de PWM a la funcionalidad. El manifiesto de aplicación de Azure Sphere tiene más detalles.

En el código, use las constantes que se definen para el hardware con el fin de identificar los controladores de PWM. El compilador traducirá estos valores a valores sin formato al compilar la aplicación.

Por ejemplo, el siguiente es un extracto de un manifiesto de aplicación de una aplicación que tiene como destino una placa de desarrollo de referencia (RDB) MT3620.

 "Pwm": [ "$MT3620_RDB_LED_PWM_CONTROLLER2" ]

En el siguiente extracto se muestra cómo especificar los mismos controladores de PWM en una aplicación dirigida a Avnet MT3620 Starter Kit:

  "Pwm": [ "$AVNET_MT3620_SK_PWM_CONTROLLER2" ]

Acceso a PWM

Las aplicaciones de alto nivel de Azure Sphere pueden acceder a un PWM mediante llamadas a las API de PWM de las bibliotecas de aplicaciones.

Apertura de un controlador de PWM

Para abrir un controlador de PWM poder acceder a él, llame a PWM_Open y pase como parámetro el identificador del controlador que se va a abrir. Se devolverá un descriptor de archivo si la llamada se realiza correctamente. De lo contrario, se devolverá -1.

Establecimiento del estado de un canal de PWM

Para establecer o actualizar el estado de un canal de PWM, llame a PWM_Apply. Los parámetros siguientes se pasan a PWM_Apply:

  • Descriptor de archivo devuelto por PWM_Open.

  • Canal de PWM que se va a actualizar; este valor depende de la plataforma.

  • Período, ciclo de servicio y polaridad que se aplican al canal.

  • Si se va a habilitar o deshabilitar el canal.

Nota:

Los límites mínimo y máximo del período y el ciclo de servicio dependen del dispositivo. Por ejemplo, en el núcleo de alto nivel MT3620, los PWM se ejecutan con una frecuencia base fija de 2 MHz con registros de comparación de 16 bits activados y desactivados. Esto impone una resolución del ciclo de servicio de 500 ns y un período máximo efectivo de aproximadamente 32,77 ms. Consulte la ficha técnica de su dispositivo para obtener más información.

Compatibilidad de MT3620

Las especificaciones de PWM admitidas para la placa MT3620 se enumeran en Estado de compatibilidad de MT3620. En la guía del usuario de la placa de desarrollo MT3620, se dscribe la distribución y la función de los pines.

MT3620 tiene 12 canales de PWM, de PWM0 a PWM11. Se organizan en tres grupos de cuatro canales. Cada grupo está asociado a un controlador de PWM (PWM-CONTROLLER-0, PWM-CONTROLLER-1, PWM-CONTROLLER-2). Los canales de PWM y los pins de GPIO GPIO0 a GPIO11 se asignan a los mismos pines en la placa MT3260. Si la aplicación usa un controlador de PWM, todos los pines asociados a ese controlador se asignan para su uso como salidas de PWM. No se pueden usar para ningún otro tipo de periférico.