Compartir a través de


Uso de PWM en aplicaciones compatibles en tiempo real

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).

Azure Sphere admite la modulación del ancho de pulso (PWM). 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 (PWM) 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.

En este tema se describe cómo usar los PWM en aplicaciones con respuesta en tiempo real (RTApp). Para más información sobre el uso de PWM en aplicaciones de alto nivel, consulte Uso de PWM en aplicaciones de alto nivel.

Nota:

El sistema operativo Azure Sphere no restablece los periféricos al iniciarse. Las aplicaciones deben asegurarse de que los periféricos están en un estado conocido en el inicio o después del reinicio.

Compatibilidad de MT3620 con PWM en los núcleos en tiempo real

En esta sección se describen las opciones de PWM que solo se aplican cuando Azure Sphere se ejecuta en MT3620.

Las especificaciones de PWM que admite 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 de GPIO0 a GPIO11 se asignan a los mismos pines en la placa MT3620. 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. Ninguno de ellos se puede usar para GPIO.

Para registrar direcciones base, números de interrupción, frecuencia de reloj, frecuencia de muestreo y otros detalles sobre MT3620, consulte la hoja de datos MT3620 y el Manual de usuario de MT3620 M4; si las preguntas permanecen, puede solicitar detalles de Avnet enviando un correo electrónico Azure.Sphere@avnet.coma .

El hardware PWM se puede configurar para usar una de las tres frecuencias de reloj: 32 KHz, 2 MHz (XTAL/13) o 26 MHz (XTAL). En los núcleos en tiempo real (RT), una aplicación en tiempo real (RTApp) puede seleccionar el reloj que se usará como base. No se admiten frecuencias base definidas por el usuario. Sin embargo, la aplicación puede generar frecuencias de señal derivadas de la frecuencia base seleccionada. Para obtener un ejemplo, consulte la aplicación de ejemplo PWMAudio en la Galería de Azure Sphere.

Configuración del manifiesto de aplicación

Para usar un PWM en una RTApp, agregue la Pwm funcionalidad al manifiesto de aplicación y especifique los controladores PWM que se usarán en la aplicación. Por ejemplo, la siguiente línea especifica el controlador de PWM 0 para su uso en una aplicación con respuesta en tiempo real que tiene como destino la placa de desarrollo de referencia (RDB) de MT3620:

"Capabilities": {
   "Pwm": [ "PWM-CONTROLLER-0" ] }

El manifiesto de aplicación de Azure Sphere tiene más detalles sobre el manifiesto de aplicación.

Aplicaciones de ejemplo de PWM

El repositorio de CodethinkLabs en GitHub contiene varias aplicaciones de ejemplo que muestran cómo usar los periféricos compatibles con MT3620 en aplicaciones con respuesta en tiempo real de Azure Sphere. En concreto, el ejemplo de PWM_RTApp_MT3620_BareMetal muestra cómo incorporar un periférico PWM en una aplicación con respuesta en tiempo real.

El proyecto PWMAudio muestra cómo usar los núcleos en tiempo real para generar audio PWM (modulación de ancho de pulso). Este proyecto forma parte de la Galería de Azure Sphere, una colección de scripts, utilidades y funciones sin mantener.