Freigeben über


Verwenden von PWMs in allgemeinen Anwendungen

Wichtig

Dies ist die Dokumentation zu Azure Sphere (Legacy). Azure Sphere (Legacy) wird am 27. September 2027 eingestellt, und Benutzer müssen bis zu diesem Zeitpunkt zu Azure Sphere (integriert) migrieren. Verwenden Sie die Versionsauswahl oberhalb des Inhaltsverzeichniss, um die Dokumentation zu Azure Sphere (Integriert) anzuzeigen.

In diesem Thema wird beschrieben, wie Sie auf Geräte-PWMs (Pulse-Width Modulators, Pulsweitenmodulatoren) zugreifen, um sie in allgemeinen Azure Sphere-Anwendungen zu verwenden.

Pulsweitenmodulation wird erreicht, indem das Tastverhältnis (Verhältnis zwischen aktiver und passiver Zeit) eines gepulsten digitalen Signals variiert wird. Pulsweitenmodulatoren werden in einer Vielzahl von Anwendungen eingesetzt, z.B. für digitale Motorsteuerung, Kommunikation und Digital-Analog-Konvertierung.

Um PWMs in Ihren Azure Sphere-Anwendungen zu verwenden, müssen Sie die erforderlichen Headerdateien und Pwm -funktionen einschließen und den Controller für die PWM-Kanäle angeben, auf die Ihre Anwendung zugreifen wird.

Das PWM_HighLevelApp-Beispiel zeigt, wie PWM in einer einfachen Digital-Analog-Konvertierung auf einem MT3620-Gerät verwendet wird.

PWM-Anforderungen

Anwendungen, die PWMs verwenden, müssen die entsprechende Headerdatei enthalten und dem Anwendungsmanifest PWM-Einstellungen hinzufügen.

Alle Anwendungen müssen ihre Zielhardware festlegen und die entsprechende Hardwaredefinitions-Headerdatei einbinden.

Header Files

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

Ersetzen Sie „path-to-your-target-hardware.h“ durch den Pfad zur Headerdatei für Ihre Hardware.

Einstellungen für das Anwendungsmanifest

In den PWM-Einstellungen im Anwendungsmanifest werden die PWM-Controller aufgeführt, auf die die Anwendung zugreift. Fügen Sie dem Anwendungsmanifest die Funktion Pwm und der Funktion anschließend die einzelnen PWM-Controller hinzu, um diese Einstellungen zu konfigurieren. Das Azure Sphere-Anwendungsmanifest enthält weitere Details.

Verwenden Sie in Ihrem Code die Konstanten, die für Ihre Hardware definiert sind, um die PWM-Controller zu identifizieren. Der Compiler übersetzt diese Werte in Rohwerte, wenn Sie die App erstellen.

Dies ist beispielsweise ein Auszug aus einem Anwendungsmanifest für eine Anwendung, die auf ein MT3620-Referenzentwicklungsboard (Reference Development Board, RDB) ausgerichtet ist.

 "Pwm": [ "$MT3620_RDB_LED_PWM_CONTROLLER2" ]

Der folgende Auszug zeigt, wie Sie denselben PWM-Controller in einer Anwendung angeben, die das Avnet MT3620 Starter Kit als Ziel verwendet:

  "Pwm": [ "$AVNET_MT3620_SK_PWM_CONTROLLER2" ]

PWM-Zugriff

Allgemeine Azure Sphere-Anwendungen können auf einen PWM zugreifen, indem sie PWM-APIs von Applibs aufrufen.

Öffnen eines PWM-Controllers

Um einen PWM-Controller für den Zugriff zu öffnen, rufen Sie PWM_Open auf, und übergeben Sie die ID des zu öffnenden Controllers. Wenn der Aufruf erfolgreich ist, wird ein Dateideskriptor zurückgegeben. Andernfalls wird -1 zurückgegeben.

Festlegen des Status eines PWM-Kanals

Um den Status eines PWM-Kanals festzulegen oder zu aktualisieren, rufen Sie PWM_Apply auf. Sie übergeben die folgenden Parameter an PWM_Apply:

  • Den von PWM_Open zurückgegebenen Dateideskriptor.

  • Den zu aktualisierenden PWM-Kanal. Dieser Wert ist plattformabhängig.

  • Den Zeitraum, das Tastverhältnis und die Polarität, die auf den Kanal angewendet werden sollen.

  • Die Aktivierung oder Deaktivierung des Kanals.

Hinweis

Mindest- und Höchstwerte für Zeitraum und Tastverhältnis sind geräteabhängig. Beispielsweise werden pwMs auf dem MT3620 High-Level-Kern mit einer festen Basisfrequenz von 2 MHz mit 16 Bit Ein-/Aus-Vergleichsregistern ausgeführt. Dies bedeutet eine Tastverhältnisauflösung von 500 ns und einen effektiven maximalen Zeitraum von ungefähr 32,77 ms. Ausführliche Informationen finden Sie im Datenblatt ihres jeweiligen Geräts.

MT3620-Unterstützung

Die für MT3620 unterstützten PWM-Features werden unter Status der MT3620-Unterstützung aufgeführt. Das Pin-Layout und die Pin-Funktionen werden im MT3620-Entwicklungsboard-Benutzerhandbuch beschrieben.

MT3620 verfügt über 12 PWM-Kanäle, PWM0 bis PWM11. Sie sind in drei Gruppen mit jeweils vier Kanälen organisiert. Jede Gruppe ist einem PWM-Controller zugeordnet (PWM-CONTROLLER-0, PWM-CONTROLLER-1, PWM-CONTROLLER-2). Die PWM-Kanäle und GPIO-Pins GPIO0 bis GPIO11 entsprechen denselben Pins auf dem MT3260. Wenn Ihre Anwendung einen PWM-Controller verwendet, werden alle Pins, die diesem Controller zugeordnet sind, für die Verwendung als PWM-Ausgaben zugeordnet. Sie können nicht für andere Peripherietypen verwendet werden.