Compartir vía


Usar pwms en aplicaciones compatibles con tiempo real

Azure Sphere admite modulación de ancho de pulso. La modulación de ancho de pulso se logra mediante la variación del ciclo de trabajo (relación entre tiempo de actividad y tiempo libre) de una señal digital pulsada. Los moduladores de ancho de pulso (PWMs) se utilizan en una amplia gama de aplicaciones, como el control del motor digital, la comunicación y la conversión digital a analógica.

En este tema se describe cómo usar pwms en aplicaciones compatibles con tiempo real (RTApp). Para obtener información sobre el uso de PWMs en aplicaciones de alto nivel, consulte Uso de PWM en aplicaciones de alto nivel.

Nota

Azure Sphere OS no restablece los periféricos al iniciarse. Las aplicaciones deben garantizar que los periféricos estén en un estado conocido durante el inicio o después del reinicio.

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

En esta sección se describen las opciones de PWM que solo se aplican al ejecutar Azure Sphere en mt3620.

Las características pwm que el MT3620 admite se enumeran en mt3620 estado de soporte. La guía de usuario de la placa de desarrollo MT3620 describe el diseño del pin y las funciones de anclar.

El MT3620 tiene 12 canales PWM, identificados por PWM0-PWM11. Están organizados en 3 grupos de 4 canales. Cada grupo está asociado con un controlador PWM (PWM-CONTROLLER-0, PWM-CONTROLLER-1, PWM-CONTROLLER-2). Los canales PWM y GPIO anclan GPIO0 a través de GPIO11 mapa a los mismos pines en el MT3620. Si su aplicación utiliza un controlador PWM todos los pines asociados con ese controlador se asignan para su uso como salidas PWM. Ninguno de ellos se puede usar para GPIO.

Para las direcciones base del registro, los números de interrupción, la velocidad de reloj, la frecuencia de muestreo y otros detalles sobre el MT3620, consulte la hoja de datos mt3620 y el manual de usuario mt3620 M4; si quedan preguntas, puedes solicitar detalles de Avnet por correo electrónico Azure.Sphere@avnet.com.

El hardware PWM se puede configurar para utilizar una de 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 qué reloj usar como base. Las frecuencias base definidas por el usuario no son compatibles. Sin embargo, su aplicación puede generar frecuencias de señal que se derivan de la frecuencia base seleccionada. Para obtener un ejemplo, vea la aplicación de ejemplo PWMAudio en la Galería de esferas de Azure.

Configuración de manifiesto de la aplicación

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

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

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

Aplicaciones de muestra PWM

El repositorio CodethinkLabs en GitHub contiene una serie de aplicaciones de muestra que demuestran cómo usar periféricos compatibles con MT3620 en aplicaciones compatibles con Azure Sphere en tiempo real. Específicamente, la muestra de PWM_RTApp_MT3620_BareMetal demuestra cómo incorporar un periférico PWM en una aplicación capaz en tiempo real.

El proyecto PWMAudio demuestra cómo utilizar los núcleos en tiempo real para generar audio PWM (Pulse Width Modulación). Este proyecto forma parte de la Galería Azure Sphere, una colección de scripts, utilidades y funciones sin utilizar.