Verwenden von I2S 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 die I2S-Schnittstelle (Inter-IC Sound).
Bei I2S handelt es sich um Schnittstellenstandard für den seriellen Bus, der zum Verbinden digitaler Audiogeräte verwendet wird. Ein I2S-Bus verfügt über separate Signale für Uhr und serielle Daten.
In diesem Thema wird beschrieben, wie I2S in Echtzeitanwendungen (RTApps) verwendet wird.
Hinweis
- I2S wird derzeit nicht für die Verwendung in allgemeinen Anwendungen unterstützt.
- Das Azure Sphere-Betriebssystem setzt Peripheriegeräte beim Starten nicht zurück. Ihre Anwendungen sollten sicherstellen, dass Peripheriegeräte beim Start oder nach dem Neustart in einem bekannten Zustand sind.
MT3620-Unterstützung für I2S in den Echtzeitkernen
In diesem Abschnitt werden die I2S-Optionen beschrieben, die nur gelten, wenn Azure Sphere auf dem MT3620-Gerät ausgeführt wird.
MT3620 verfügt über zwei I2S-Schnittstellen: I2S0 und I2S1. Sie können dem zugewiesenen Echtzeitkern nach dem Systemstart während der Ressourcenzuordnung zugeordnet werden. Jede I2S-Schnittstelle wird durch ein zentrales Zuordnungsmodul geschützt, das den Zugriff von nicht zugewiesenen Mikrocontrollern ablehnt.
Das I2S-Modul unterstützt nur den untergeordneten Modus mit externen Codecs. Mastermodus und interne Codecs werden nicht unterstützt. Für externe Codecs werden eine Masteruhr (I2S_MCLK) zum Generieren der I2S-Frame-Synchronisierung (I2S_FS) und eine I2S-Bit-Uhr (I2S_BCLK) bereitgestellt.
Interne Audiocodecs und Mastermodus werden nicht unterstützt. Die I2S-Schnittstelle wird für die Kommunikation mit externen Audiocodecs über den I2S-Bus als untergeordnetes I2S-Element verwendet.
Zwei Datenformate werden unterstützt: das I2S-Standardprotokoll und das TDM-Protokoll (Time Division Multiplexing).
Zwei Blöcke mit fünf Pins betreiben Multiplexing zwischen GPIO und I2S (I2S0:GPIO56-GPIO60, I2S1:GPIO61-GPIO65).
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.
Einstellungen für das Anwendungsmanifest
Um die untergeordnete I2S-Schnittstelle verwenden zu können, muss eine RTApp diese im Abschnitt „Capabilities“ des Anwendungsmanifests auflisten. Mit dem folgenden Code wird der Liste der Ressourcen, auf die von einer Anwendung zugegriffen werden kann, beispielsweise 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 Beispielanwendungen, die die Verwendung unterstützter MT3620-Peripheriegeräte in Azure Sphere-Echtzeitanwendungen veranschaulichen. Im I2S_RTApp_MT3620_BareMetal Beispiel wird insbesondere veranschaulicht, wie ein I2S-Peripheriegerät in eine Echtzeit-fähige Anwendung integriert wird.