次の方法で共有


リアルタイム対応アプリケーションで I2S を使用する

重要

これは Azure Sphere (レガシ) のドキュメントです。 Azure Sphere (レガシ) は 2027 年 9 月 27 日に 再提供されておりユーザーは現時点で Azure Sphere (統合) に移行する必要があります。 TOC の上にある Version セレクターを使用して、Azure Sphere (統合) のドキュメントを表示します。

Azure Sphere では IC 間サウンド (I2S) インターフェイスがサポートされています。

I2S は、デジタル オーディオ デバイスを接続するために使用されるシリアル バス インターフェイス標準です。 I2S バスには、別個のクロックおよびシリアル データ信号があります。

このトピックでは、リアルタイム対応アプリケーション (RTApp) で I2S を使用する方法について説明します。

Note

  • 現在、高度なアプリケーションでの I2S の使用はサポートされていません。
  • Azure Sphere OS では起動時に周辺機器がリセットされません。 アプリケーションでは、起動時または再起動後に周辺機器が既知の良好な状態であることを確認する必要があります。

リアルタイム コアの I2S のための MT3620 サポート

このセクションでは、Azure Sphere が MT3620 で実行されている場合にのみ適用される I2S オプションについて説明します。

MT3620 は、I2S0 と I2S1 の 2 つの I2S インターフェイスを備えています。 これらは、システムの起動後のリソース割り当て時に、割り当てられたリアルタイム コアに割り当てることができます。 各 I2S インターフェイスは、割り当てられていない MCU からのアクセスを拒否するコア マッピング モジュールによって保護されています。

I2S モジュールでサポートされるのは、外部コーデックを使用した下位モードのみです。 マスター モードと内部コーデックはサポートされていません。 ただし、外部コーデックが I2S フレーム同期 (I2S_FS) と I2S ビット クロック (I2S_BCLK) を生成するために、マスター クロック (I2S_MCLK) が用意されています。

内部オーディオ コーデックおよびマスター モードはサポートされていません。 I2S インターフェイスは、I2S バスを介して I2S 配下として外部オーディオ コーデックと通信するために使用されます。

標準 I2S プロトコルと時分割多重 (TDM) プロトコルの 2 つのデータ形式がサポートされています。

GPIO と I2S 間で 5 個のピンの 2 個のブロックが多重化されます (I2S0:GPIO56-GPIO60、I2S1:GPIO61-GPIO65)

MT3620 に関するレジスタ ベース アドレス、割り込み番号、クロック レート、サンプリング周波数などの詳細については、 MT3620 データシート および MT3620 M4 ユーザー マニュアルを参照してください。質問が残っている場合は、 Azure.Sphere@avnet.com電子メールで Avnet に詳細を要求できます。

アプリケーション マニフェストの設定

I2S 下位インターフェイスを使用するには、RTApp で、アプリケーション マニフェストの Capabilities セクションにそれをリストする必要があります。 たとえば、以下は、アプリケーションからアクセスできるリソースの一覧に I2S インターフェイスを追加しています。

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

IC 間サウンド (I2S) 下位インターフェイスは、RTApp でのみ使用されます。 この機能は、高度なアプリケーションでは使用できません。

Azure Sphere アプリケーション マニフェスト には、アプリケーション マニフェストの詳細が含まれています。

I2S サンプル アプリケーション

GitHub の CodethinkLabs リポジトリには、MT3620 でサポートされている周辺機器を Azure Sphere リアルタイム対応アプリケーションで使用する方法を示す多数のサンプル アプリケーションが含まれています。 具体的には、 I2S_RTApp_MT3620_BareMetal サンプルでは、リアルタイム対応アプリケーションに I2S 周辺機器を組み込む方法を示します。