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