Partage via


Utiliser des PWM dans les applications de haut niveau

Important

Il s’agit de la documentation Azure Sphere (héritée). Azure Sphere (hérité) prend sa retraite le 27 septembre 2027 et les utilisateurs doivent migrer vers Azure Sphere (intégré) pour l’instant. Utilisez le sélecteur de version situé au-dessus du TOC pour afficher la documentation Azure Sphere (intégrée).

Cette rubrique explique comment accéder à des modulateurs de largeur d’impulsions (PWM) d’appareils pour les utiliser dans des applications générales Azure Sphere.

La modulation de largeur d’impulsions s’effectue en faisant varier le cycle de l’utilisation (ratio entre le temps de marche et le temps d’arrêt) d’un signal numérique pulsé. Les modulateurs de largeur d’impulsions sont utilisés dans un large éventail d’applications, comme le contrôle de moteur numérique, la communication et la conversion numérique-analogique.

Pour utiliser des pwms dans vos applications Azure Sphere, vous devez inclure les fichiers d’en-tête et Pwm la fonctionnalité requis, et spécifier le contrôleur pour les canaux PWM auxquels votre application accède.

L’exemple PWM_HighLevelApp montre comment utiliser un PWM dans une application de conversion numérique-analogique simple sur un appareil MT3620.

Exigences des PWM

Les applications qui utilisent des PWM doivent inclure le fichier d’en-tête approprié et ajouter des paramètres PWM au manifeste de l’application.

Toutes les applications doivent définir leur matériel cible et inclure le fichier d’en-tête de définition matérielle correspondant.

Fichiers d'en-tête

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

Remplacez « path-to-your-target-hardware.h » par le chemin du fichier d’en-tête de votre matériel.

Paramètres de manifeste de l’application

Le paramètre PWM du manifeste de l’application liste les contrôleurs PWM auxquels l’application accède. Pour configurer ces paramètres, ajoutez la fonctionnalité Pwm au manifeste de l’application, puis ajoutez chaque contrôleur PWM à la fonctionnalité. Le manifeste d’application Azure Sphere contient plus de détails.

Dans votre code, utilisez les constantes définies pour votre matériel afin d’identifier les contrôleurs PWM. Le compilateur convertit ces valeurs en valeurs brutes lorsque vous générez l’application.

Par exemple, voici un extrait d’un manifeste d’une application qui cible une carte de développement de référence (RDB) MT3620.

 "Pwm": [ "$MT3620_RDB_LED_PWM_CONTROLLER2" ]

L’extrait suivant montre comment spécifier le même contrôleur PWM dans une application qui cible le starter kit Avnet-MT3620 :

  "Pwm": [ "$AVNET_MT3620_SK_PWM_CONTROLLER2" ]

Accès à un PWM

Les applications générales Azure Sphere peuvent accéder à un PWM en appelant des API PWM des bibliothèques d’applications.

Ouvrir un contrôleur PWM

Pour ouvrir un contrôleur PWM afin d’y accéder, appelez PWM_Open et passez en tant que paramètre l’ID du contrôleur à ouvrir. Un descripteur de fichier est retourné en cas de réussite de l’appel. Sinon, -1 est retourné.

Définir l’état d’un canal PWM

Pour définir ou mettre à jour l’état d’un canal PWM, appelez PWM_Apply. Vous passez les paramètres suivants à PWM_Apply :

  • Descripteur de fichier retourné par PWM_Open

  • Canal PWM à mettre à jour (cette valeur dépend de la plateforme)

  • Période, cycle d’utilisation et polarité à appliquer au canal

  • Indication d’activer ou de désactiver le canal

Remarque

Les limites minimales et maximales de la période et du cycle d’utilisation dépendent de l’appareil. Par exemple, sur le cœur de haut niveau MT3620, les PWM s’exécutent à une fréquence de base fixe de 2 MHz avec des registres de comparaison 16 bits activés/désactivés. Cela impose une résolution du cycle d’utilisation de 500 ns et une période maximale effective d’environ 32,77 ms. Pour plus d’informations, consultez la fiche technique de votre appareil spécifique.

Prise en charge de la carte MT3620

Pour la carte MT3620, les fonctionnalités PWM prises en charge sont listées dans État de la prise en charge du MT3620. Le guide de l’utilisateur pour la carte de développement MT3620 décrit la disposition des broches ainsi que leurs fonctions.

Le MT3620 a 12 canaux PWM, allant de PWM0 à PWM11. Ces derniers 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 broches GPIO allant de GPIO0 à GPIO11 correspondent aux mêmes broches sur le MT3260. Si votre application utilise un contrôleur PWM, alors toutes les broches associées à ce contrôleur sont allouées à une utilisation en tant que sorties PWM. Elles ne peuvent pas être utilisées pour un autre type de périphérique.