在支持实时的应用程序中使用 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 外围设备。