Freigeben über


Verwenden von I2S in Echtzeitanwendungen

Azure Sphere unterstützt die I2S-Schnittstelle (Inter-IC Sound).

I2S ist ein serieller Busschnittstellenstandard, der zum Verbinden digitaler Audiogeräte verwendet wird. Ein I2S-Bus verfügt über separate Takt- und serielle Datensignale.

In diesem Thema wird die Verwendung von I2S in Echtzeitanwendungen (RTApps) beschrieben.

Hinweis

  • I2S wird derzeit nicht für die Verwendung in allgemeinen Anwendungen unterstützt.
  • 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 I2S auf den Echtzeitkernen

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

MT3620 verfügt über zwei I2S-Schnittstellen: I2S0 und I2S1. Sie können dem zugewiesenen Echtzeitkern während der Ressourcenzuordnung nach dem Systemstart zugeordnet werden. Jede I2S-Schnittstelle wird durch ein Kernzuordnungsmodul geschützt, das den Zugriff von nicht zugewiesenen MCUs verweigert.

Das I2S-Modul unterstützt nur den untergeordneten Modus mit externen Codecs. Der Mastermodus und interne Codecs werden nicht unterstützt. Für externe Codecs wird jedoch eine master Uhr (I2S_MCLK) bereitgestellt, um die I2S-Framesynchronisierung (I2S_FS) und eine I2S-Bituhr (I2S_BCLK) zu generieren.

Interne Audiocodecs und master Modus werden nicht unterstützt. Die I2S-Schnittstelle wird für die Kommunikation mit externen Audiocodecs über den I2S-Bus als untergeordneter I2S-Bus verwendet.

Zwei Datenformate werden unterstützt: das Standard-I2S-Protokoll und das TDM-Protokoll (Time Division Multiplexing).

Zwei Blöcke mit fünf Pins werden zwischen GPIO und I2S (I2S0:GPIO56-GPIO60, I2S1:GPIO61-GPIO65) gemultiet.

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.

Anwendungsmanifesteinstellungen

Um die untergeordnete I2S-Schnittstelle verwenden zu können, muss eine RTApp sie im Abschnitt Funktionen des Anwendungsmanifests auflisten. Im folgenden Beispiel wird der Liste der Ressourcen, auf die eine Anwendung zugreifen kann, eine I2S-Schnittstelle hinzugefügt:

"Capabilities": {
 "I2sSubordinate": [ "I2S0" ]  }

Die untergeordnete I2S-Schnittstelle (Inter-IC Sound) wird nur von einer RTApp verwendet. Diese Funktion ist für allgemeine Anwendungen nicht verfügbar.

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

Die I2S-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. Im I2S_RTApp_MT3620_BareMetal Beispiel wird insbesondere veranschaulicht, wie ein I2S-Peripheriegerät in eine Echtzeitanwendung integriert wird.