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.