Freigeben über


Verwenden von GPIOs in Echtzeitanwendungen

Azure Sphere unterstützt GPIOs (allgemeine Eingabe/Ausgabe). Eine GPIO ist eine Art programmierbarer digitaler Pin an einer integrierten Schaltung. GPIOs verfügen nicht über vordefinierte Funktionen, und ihr Verhalten kann von einer Anwendung angepasst werden. GPIOs werden häufig verwendet, um den Zustand von Hardwaregeräten zu ändern, LEDs zu steuern und den Zustand von Switches zu 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 in allgemeinen Anwendungen.

Eine RTApp kann alle GPIOs auf dem Azure Sphere-Gerät verwenden. Die folgenden Vorgänge werden für GPIO unterstützt:

  • Eingabe lesen
  • Festlegen der Ausgabe auf "Hoch" oder "Niedrig"
  • Abfragen von Softwareunterbrechungen

Hinweis

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

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

Auf dem MT3620 werden die meisten GPIOs echtzeitkernen in vier Blöcken zugeordnet, beginnend mit GPIO 0; Die ISU-Blöcke 0 bis 4 verfügen jedoch über fünf GPIOs. Daher können RTApp-GPIO-Anforderungen fehlschlagen, wenn eine allgemeine Anwendung (oder eine andere RTApp) eine GPIO im selben Block anfordert. Wenn beispielsweise eine allgemeine App GPIO 8 anfordert und eine RTApp GPIO 9 anfordert, gibt die zweite App bei der Bereitstellung einen Fehler zurück.

Jede LED des MT3620 RDB ist drei GPIOs zugeordnet: jeweils eine für rote, grüne und blaue Kanäle.

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.

GPIO-Anforderungen

Ihr Anwendungscode benötigt eine Möglichkeit, die GPIO und ihre Register zu identifizieren. Die Basisadresse des Registers finden Sie in der Hardwaredokumentation des Herstellers. Bevor Ihre RTApp eine GPIO verwenden kann, muss sie die Blöcke initialisieren, die sie verwenden wird. Die Initialisierung ist nur einmal für jeden von der App verwendeten Block erforderlich.

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

Anwendungsmanifesteinstellungen

Um eine GPIO verwenden zu können, muss eine RTApp diese im Abschnitt Funktionen des Anwendungsmanifests auflisten. Identifizieren Sie die GPIO mithilfe des "AppManifestValue", das für sie in der JSON-Datei für die Zielhardware definiert ist. Die folgende Zeile reserviert z. B. 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.