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

重要

这是 Azure Sphere(旧版)文档。 Azure Sphere(旧版)将于 2027 年 9 月 27 日停用,用户此时必须迁移到 Azure Sphere(集成)。 使用位于 TOC 上方的版本选择器查看 Azure Sphere(集成)文档。

Azure Sphere 支持集成音频接口芯片 (I2S) 接口。

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

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

注意

  • 目前不支持在高级应用程序中使用 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" ]  }

集成音频接口芯片 (I2S) 从属接口仅供 RTApp 使用。 此功能不适用于高级别应用程序。

Azure Sphere 应用程序清单 包含有关应用程序清单的更多详细信息。

I2S 示例应用程序

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