在支持实时的应用程序中使用 I2S

Azure Sphere 支持 IC 间声音 (I2S) 接口。

I2S 是一种串行总线接口标准,用于将数字音频设备连接在一起。 I2S 总线具有单独的时钟和串行数据信号。

本主题介绍如何在支持实时的应用程序中使用 I2S (RTApps) 。

注意

  • 目前不支持在高级应用程序中使用 I2S。
  • Azure Sphere OS 在启动时不会重置外围设备。 应用程序应确保外围设备在启动时或重启后处于已知良好的状态。

MT3620 支持实时核心上的 I2S

本部分介绍仅在 MT3620 上运行 Azure Sphere 时应用的 I2S 选项。

MT3620 具有两个 I2S 接口:I2S0 和 I2S1。 在系统启动后的资源分配期间,可以将它们分配给分配的实时核心。 每个 I2S 接口都受核心映射模块的保护,该模块拒绝从未分配的 MCU 进行访问。

I2S 模块仅支持外部编解码器的从属模式。 不支持主模式和内部编解码器。 但是,为外部编解码器提供了主时钟 (I2S_MCLK) ,用于生成 I2S 帧同步 (I2S_FS) 和 I2S 位时钟 (I2S_BCLK) 。

不支持内部音频编解码器和主模式。 I2S 接口用于作为 I2S 从属通过 I2S 总线与外部音频编解码器通信。

支持两种数据格式:标准 I2S 协议和时分多路复用 (TDM) 协议。

GPIO 和 I2S ( I2S0:GPIO56-GPIO60、I2S1:GPIO61-GPIO65) 之间的两个五个引脚块。

有关 MT3620 的寄存器基址、中断数、时钟速率、采样频率和其他详细信息,请参阅 MT3620 数据表MT3620 M4 用户手册;如果问题仍然存在,你可以通过电子邮件 Azure.Sphere@avnet.com从 Avnet 请求详细信息。

应用程序清单设置

若要使用 I2S 从属接口,RTApp 必须在应用程序清单的“功能”部分中列出它。 例如,以下代码将 I2S 接口添加到可供应用程序访问的资源列表中:

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

IC 间声音 (I2S) 从属接口仅由 RTApp 使用。 此功能不适用于高级应用程序。

Azure Sphere 应用程序清单 提供了有关应用程序清单的更多详细信息。

I2S 示例应用程序

GitHub 上的 CodethinkLabs 存储库包含许多示例应用程序,这些示例应用程序演示如何在支持 Azure Sphere 实时的应用程序中使用 MT3620 支持的外围设备。 具体而言, I2S_RTApp_MT3620_BareMetal 示例演示如何在支持实时的应用程序中合并 I2S 外围设备。