Partager via


Utiliser I2S dans les applications prenant en charge le temps réel

Important

Il s’agit de la documentation Azure Sphere (héritée). Azure Sphere (hérité) prend sa retraite le 27 septembre 2027 et les utilisateurs doivent migrer vers Azure Sphere (intégré) pour l’instant. Utilisez le sélecteur de version situé au-dessus du TOC pour afficher la documentation Azure Sphere (intégrée).

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 ensemble. Un bus I2S a des signaux d’horloge et de données série distincts.

Cette rubrique décrit comment utiliser I2S dans les applications prenant en charge le temps réel (RTApp).

Remarque

  • I2S n’est pas actuellement 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 MT3620 d’I2S sur les cœurs en temps réel

Cette section décrit les options I2S applicables 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é durant 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 cœurs qui refuse l’accès à partir de MCU non affectés.

Le module I2S prend en charge uniquement le mode subordonné avec des codecs externes. Le mode maître et les codecs internes ne sont pas pris en charge. Toutefois, une horloge maître (I2S_MCLK) est fournie pour les codecs externes afin de générer la synchronisation de trame I2S (I2S_FS) et une horloge bit I2S (I2S_BCLK).

Les codecs audio internes et le mode maître ne sont pas pris en charge. L’interface I2S permet de communiquer avec des codecs audio externes par le biais du 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 inscrire des adresses de base, des numéros d’interruption, une fréquence d’horloge, une fréquence d’échantillonnage et d’autres détails sur le MT3620, consultez la feuille de données MT3620 M4 et le Manuel utilisateur MT3620 M4 ; si des questions restent, vous pouvez demander des détails auprès d’Avnet par e-mail Azure.Sphere@avnet.com.

Paramètres de manifeste de l’application

Pour utiliser l’interface subordonnée I2S, une application RTApp doit la lister dans la section Capabilities du manifeste de l’application. Par exemple, l’exemple suivant ajoute une interface I2S à la liste des ressources accessibles à une application :

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

L’interface subordonnée I2S (Inter-IC Sound) est uniquement utilisée par une application RTApp. Cette fonctionnalité n’est pas disponible pour les applications générales.

Le manifeste d’application Azure Sphere contient plus de détails sur le manifeste de l’application.

Exemples d’applications I2S

Le dépôt CodethinkLabs sur GitHub contient un certain nombre d’exemples d’applications qui montrent comment utiliser les périphériques pris en charge par le MT3620 dans les applications prenant en charge le 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.