Utiliser I2S dans les applications compatibles en temps réel
Azure Sphere prend en charge l’interface I2S (Inter-IC Sound).
I2S est une norme d’interface de bus série utilisée pour connecter des appareils audio numériques. Un bus I2S a des signaux de données d’horloge et série distincts.
Cette rubrique explique comment utiliser I2S dans des applications compatibles en temps réel (RTApps).
Note
- I2S n’est actuellement pas pris en charge pour une utilisation dans les applications de haut niveau.
- Le système d’exploitation Azure Sphere ne réinitialise pas les périphériques au démarrage. Vos applications doivent s’assurer que les périphériques sont dans un état correct connu au démarrage ou après le redémarrage.
Prise en charge de MT3620 pour I2S sur les cœurs en temps réel
Cette section décrit les options I2S qui s’appliquent uniquement lors de l’exécution d’Azure Sphere sur le MT3620.
MT3620 propose deux interfaces I2S : I2S0 et I2S1. Elles peuvent être allouées au cœur en temps réel affecté lors de l’allocation des ressources après le démarrage du système. Chaque interface I2S est protégée par un module de mappage de base qui refuse l’accès à partir de MCU non attribués.
Le module I2S prend uniquement en charge le mode subordonné avec des codecs externes. Le mode maître et les codecs internes ne sont pas pris en charge. Toutefois, une horloge master (I2S_MCLK) est fournie pour les codecs externes afin de générer la synchronisation de trames I2S (I2S_FS) et une horloge binaire I2S (I2S_BCLK).
Les codecs audio internes et le mode master ne sont pas pris en charge. L’interface I2S est utilisée pour communiquer avec des codecs audio externes via le bus I2S en tant que subordonné I2S.
Deux formats de données sont pris en charge : le protocole I2S standard et le protocole TDM (Time Division Multiplexing).
Deux blocs de cinq broches sont multiplexés entre GPIO et I2S (I2S0:GPIO56-GPIO60, I2S1:GPIO61-GPIO65).
Pour connaître les adresses de base d’inscription, les numéros d’interruption, la fréquence d’horloge, la fréquence d’échantillonnage et d’autres détails sur le MT3620, consultez la feuille de données MT3620 et le manuel de l’utilisateur MT3620 M4. Si des questions subsistent, vous pouvez demander des détails à Avnet en envoyant un e-mail à Azure.Sphere@avnet.com.
Paramètres du manifeste d’application
Pour utiliser l’interface subordonnée I2S, une application en temps réel doit la répertorier dans la section Fonctionnalités du manifeste de l’application. Par exemple, les éléments suivants ajoutent une interface I2S à la liste des ressources accessibles par une application :
"Capabilities": {
"I2sSubordinate": [ "I2S0" ] }
L’interface subordonnée I2S (Inter-IC Sound) est utilisée uniquement par une application en temps réel. Cette fonctionnalité n’est pas disponible pour les applications de haut niveau.
Le manifeste d’application Azure Sphere contient plus de détails sur le manifeste de l’application.
Exemples d’applications I2S
Le référentiel CodethinkLabs sur GitHub contient un certain nombre d’exemples d’applications qui montrent comment utiliser des périphériques pris en charge par MT3620 dans des applications compatibles en temps réel Azure Sphere. Plus précisément, l’exemple I2S_RTApp_MT3620_BareMetal montre comment incorporer un périphérique I2S dans une application compatible en temps réel.