Partager via


Utiliser des pwms dans des applications compatibles en temps réel

Azure Sphere prend en charge la modulation de largeur d’impulsion. La modulation de largeur d’impulsions est obtenue en faisant varier le cycle de service (rapport entre le temps et le temps d’arrêt) d’un signal numérique pulsé. Les moduleurs de largeur d’impulsion (PWM) sont utilisés dans un large éventail d’applications telles que le contrôle de moteur numérique, la communication et la conversion numérique-analogique.

Cette rubrique explique comment utiliser des pwms dans des applications compatibles en temps réel (RTApp). Pour plus d’informations sur l’utilisation des pwM dans les applications de haut niveau, consultez Utilisation de PWM dans les applications de haut niveau.

Note

Le système d’exploitation Azure Sphere ne réinitialise pas les périphériques au démarrage. Vos applications doivent s’assurer que les périphériques sont dans un état correct connu au démarrage ou après le redémarrage.

Prise en charge de MT3620 pour PWM sur les cœurs en temps réel

Cette section décrit les options PWM qui s’appliquent uniquement lors de l’exécution d’Azure Sphere sur le MT3620.

Les fonctionnalités PWM prises en charge par MT3620 sont répertoriées dans État de prise en charge mt3620. Le guide de l’utilisateur de la carte de développement MT3620 décrit la disposition des broches et les fonctions d’épingle.

Le MT3620 a 12 canaux PWM, identifiés par PWM0-PWM11. Ils sont organisés en 3 groupes de 4 canaux. Chaque groupe est associé à un contrôleur PWM (PWM-CONTROLLER-0, PWM-CONTROLLER-1, PWM-CONTROLLER-2). Les canaux PWM et les épingles GPIO GPIO0 à GPIO11 sont mappés aux mêmes broches sur le MT3620. Si votre application utilise un contrôleur PWM, toutes les broches associées à ce contrôleur sont allouées pour être utilisées comme sorties PWM. Aucun d’entre eux ne peut être utilisé pour GPIO.

Pour connaître les adresses de base d’inscription, les numéros d’interruption, la fréquence d’horloge, la fréquence d’échantillonnage et d’autres détails sur le MT3620, consultez la feuille de données MT3620 et le manuel de l’utilisateur MT3620 M4. Si des questions subsistent, vous pouvez demander des détails à Avnet en envoyant un e-mail à Azure.Sphere@avnet.com.

Le matériel PWM peut être configuré pour utiliser l’une des trois fréquences d’horloge : 32 KHz, 2 MHz (XTAL/13) ou 26 MHz (XTAL). Sur les cœurs en temps réel (RT), une application en temps réel (RTApp) peut sélectionner l’horloge à utiliser comme base. Les fréquences de base définies par l’utilisateur ne sont pas prises en charge. Toutefois, votre application peut générer des fréquences de signal dérivées de la fréquence de base sélectionnée. Pour obtenir un exemple, consultez l’exemple d’application PWMAudio dans la galerie Azure Sphere.

Paramètres du manifeste d’application

Pour utiliser un PWM dans une application en temps réel, vous ajoutez la Pwm fonctionnalité au manifeste de l’application et spécifiez les contrôleurs PWM qui seront utilisés dans l’application. Par exemple, la ligne suivante spécifie le contrôleur PWM 0 à utiliser dans une application en temps réel qui cible la carte de développement de référence (RDB) MT3620 :

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

Le manifeste d’application Azure Sphere contient plus de détails sur le manifeste de l’application.

Exemples d’applications PWM

Le référentiel CodethinkLabs sur GitHub contient un certain nombre d’exemples d’applications qui montrent comment utiliser des périphériques pris en charge par MT3620 dans des applications compatibles en temps réel Azure Sphere. Plus précisément, l’exemple PWM_RTApp_MT3620_BareMetal montre comment incorporer un périphérique PWM dans une application compatible en temps réel.

Le projet PWMAudio montre comment utiliser les cœurs en temps réel pour générer de l’audio PWM (Pulse Width Modulation). Ce projet fait partie de la galerie Azure Sphere, une collection de scripts, d’utilitaires et de fonctions non entretenus.