Freigeben über


Verwenden von GPIOs in Echtzeitanwendungen

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.

Azure Sphere unterstützt GPIOs (General-Purpose Input/Output). Eine GPIO ist eine Art programmierbarer digitaler Pin für einen integrierten Schaltkreis. GPIOs haben keine vordefinierte Funktion, und ihr Verhalten kann durch eine Anwendung angepasst werden. Mit GPIOs können Sie beispielsweise den Status von Hardwaregeräten ändern, LEDs steuern und den Status von Schaltern lesen.

In diesem Thema wird beschrieben, wie GPIOs in einer Echtzeitanwendung (RTApp) verwendet werden. Informationen zur Verwendung von GPIOs in allgemeinen Anwendungen finden Sie unter Verwenden von GPIOs für Azure Sphere.

Eine RTApp kann alle GPIOs des Azure Sphere-Geräts verwenden. Für GPIOs werden folgende Vorgänge unterstützt:

  • Lesen von Eingaben
  • Festlegen der Ausgabe auf hoch oder niedrig
  • Abrufen von Softwareinterrupts

Hinweis

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

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

Auf dem MT3620-Board werden die meisten GPIOs Echtzeitkernen in Viererblöcken (beginnend bei GPIO 0) zugeordnet. Die ISU-Blöcke 0 bis 4 verfügen jedoch über fünf GPIOs. Daher sind RTApp-GPIO-Anforderungen möglicherweise nicht erfolgreich, wenn eine allgemeine Anwendung (oder eine andere RTApp) eine GPIO im gleichen Block anfordert. Ein Beispiel: Wenn eine allgemeine App GPIO 8 und eine RTApp GPIO 9 anfordert, gibt die zweite App bei der Bereitstellung einen Fehler zurück.

Jede LED auf dem MT3620-Board mit Referenzdesign wird drei GPIOs zugeordnet (jeweils einer für den roten, grünen und blauen Kanal).

Informationen zum Registrieren von Basisadressen, Unterbrechungsnummern, Taktfrequenz, Samplinghäufigkeit und weiteren Details zum MT3620 finden Sie im MT3620 Datenblatt und im MT3620 M4 User Manual. Wenn Fragen bestehen, können Sie Details von Avnet per E-Mail Azure.Sphere@avnet.comanfordern.

GPIO-Anforderungen

Ihr Anwendungscode muss die GPIO und die zugehörigen Register ermitteln können. Die Basisadresse des Registers finden Sie in der Hardwaredokumentation des Herstellers. Bevor Ihre RTApp eine GPIO verwenden kann, muss sie die zu verwendenden Blöcke initialisieren. Die Initialisierung muss einmalig für jeden von der App verwendeten Block ausgeführt werden.

Ausführliche Informationen zum MT3620 finden Sie unter MT3620-Unterstützung für GPIOs auf den Echtzeitkernen.

Einstellungen für das Anwendungsmanifest

Um eine GPIO verwenden zu können, muss eine RTApp diese im Abschnitt Capabilities des Anwendungsmanifests auflisten. Identifizieren Sie die GPIO, indem Sie den „AppManifestValue“ verwenden, der für sie in der JSON-Datei für die Hardware definiert ist. Die folgende Zeile reserviert beispielsweise die GPIOs 8 und 12:

"Capabilities": {
 "Gpio": [ 8, 12 ]
}

Die GPIO-Beispielanwendung

Das GPIO-Beispiel veranschaulicht die Verwendung von GPIOs in einer RTApp. Die README-Dateien enthalten Details und Anweisungen.