Freigeben über


Verwenden von PWMs in Echtzeitanwendungen

Azure Sphere unterstützt die Pulsbreitenmodulation. Die Pulsbreitenmodulation wird erreicht, indem der Tastzyklus (Verhältnis von On-Time zu Off-Time) eines gepulsten digitalen Signals variiert wird. Pulsbreitenmodulatoren (PWMs) werden in einer Vielzahl von Anwendungen wie digitale Motorsteuerung, Kommunikation und digital-analoge Konvertierung verwendet.

In diesem Thema wird die Verwendung von PWMs in Echtzeitanwendungen (RTApp) beschrieben. Informationen zur Verwendung von PWMs in allgemeinen Anwendungen finden Sie unter Verwenden von PWM in allgemeinen Anwendungen.

Hinweis

Das Azure Sphere-Betriebssystem setzt Peripheriegeräte beim Start nicht zurück. Ihre Anwendungen sollten sicherstellen, dass sich Peripheriegeräte beim Start oder nach dem Neustart in einem bekannten fehlerfreien Zustand befinden.

MT3620-Unterstützung für PWM auf den Echtzeitkernen

In diesem Abschnitt werden die PWM-Optionen beschrieben, die nur beim Ausführen von Azure Sphere auf dem MT3620 gelten.

Die PWM-Features, die mt3620 unterstützt, sind im MT3620-Supportstatus aufgeführt. Im Benutzerhandbuch des MT3620-Entwicklungsboards werden das Pinlayout und die Pinfunktionen beschrieben.

Der MT3620 verfügt über 12 PWM-Kanäle, die von PWM0-PWM11 identifiziert werden. Sie sind in 3 Gruppen von 4 Kanälen organisiert. Jede Gruppe ist einem PWM-Controller (PWM-CONTROLLER-0, PWM-CONTROLLER-1, PWM-CONTROLLER-2) zugeordnet. Die PWM-Kanäle und GPIO-Pins GPIO0 bis GPIO11 entsprechen den gleichen Pins auf dem MT3620. Wenn Ihre Anwendung einen PWM-Controller verwendet, werden alle diesem Controller zugeordneten Pins als PWM-Ausgaben zugewiesen. Keiner von ihnen kann für GPIO verwendet werden.

Informationen zur Registrierung von Basisadressen, Interruptnummern, Taktfrequenz, Samplinghäufigkeit und anderen Details zum MT3620 finden Sie im MT3620-Datenblatt und im MT3620 M4-Benutzerhandbuch. Wenn Fragen bestehen, können Sie Details von Avnet anfordern, indem Sie eine E-Mail senden Azure.Sphere@avnet.com.

Die PWM-Hardware kann so konfiguriert werden, dass sie eine von drei Taktfrequenzen verwendet: 32 KHz, 2 MHz (XTAL/13) oder 26 MHz (XTAL). Auf den Echtzeitkernen kann eine Echtzeitanwendung (RTApp) auswählen, welche Uhr als Basis verwendet werden soll. Benutzerdefinierte Basisfrequenzen werden nicht unterstützt. Ihre Anwendung kann jedoch Signalfrequenzen generieren, die von der ausgewählten Basisfrequenz abgeleitet werden. Ein Beispiel finden Sie in der PWMAudio-Beispielanwendung im Azure Sphere-Katalog.

Anwendungsmanifesteinstellungen

Um ein PWM in einer RTApp zu verwenden, fügen Sie die Pwm Funktion zum Anwendungsmanifest hinzu und geben die PWM-Controller an, die in der Anwendung verwendet werden sollen. Die folgende Zeile gibt beispielsweise den PWM-Controller 0 für die Verwendung in einer RTApp an, die auf das MT3620 Reference Development Board (RDB) ausgerichtet ist:

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

Das Azure Sphere-Anwendungsmanifest enthält weitere Details zum Anwendungsmanifest.

Die PWM-Beispielanwendungen

Das CodethinkLabs-Repository auf GitHub enthält eine Reihe von Beispielanwendungen, die veranschaulichen, wie MT3620 unterstützte Peripheriegeräte in Azure Sphere-Echtzeitanwendungen verwendet werden. Insbesondere zeigt das PWM_RTApp_MT3620_BareMetal Beispiel, wie ein PWM-Peripheriegerät in eine Echtzeitanwendung integriert wird.

Das PWMAudio-Projekt zeigt, wie die Echtzeitkerne zum Generieren von PWM-Audio (Pulse Width Modulation) verwendet werden. Dieses Projekt ist Teil des Azure Sphere-Katalogs, einer Sammlung nicht erhaltener Skripts, Hilfsprogramme und Funktionen.