在支持实时的应用程序中使用 I2C
重要
这是 Azure Sphere(旧版)文档。 Azure Sphere(旧版)将于 2027 年 9 月 27 日停用,用户此时必须迁移到 Azure Sphere(集成)。 使用位于 TOC 上方的版本选择器查看 Azure Sphere(集成)文档。
在主模式下,Azure Sphere 支持集成电路总线 (I2C)。 I2C 是将低速外围设备连接到微控制器的串行总线。 I2C 使用多主/多从模型,其中,主设备控制一组从属设备。 I2C 通常用于只需与微控制器进行简单的小规模通信的外围设备(例如,设置控件、电源开关和传感器)。
本主题介绍了如何在支持实时的应用程序 (RTApp) 中使用 I2C。 有关如何在高级应用程序中使用 I2C 的信息,请参阅在高级应用程序中使用 I2C。
注意
Azure Sphere OS 在启动时不重置外围设备。 应用程序应确保在启动时或重启后外围设备处于已知良好状态。
MT3620 对实时核心上的 I2C 的支持
MT3620 芯片的 I2C 规格列在 MT3620 支持状态中。 MT3620 开发板用户指南介绍了适用于接线的引脚布局和功能。
配置 MT3620 开发板时,可将任何 ISU 块用作 I2C 主接口。 将 ISU 块用作 I2C 主接口时,无法将同一个块用作 SPI 或 UART 接口。
MT3620 不支持 10 位从属设备地址;仅支持 7 位地址。 MT3620 支持 100 KHz、400 KHz 和 1 MHz 总线速度,但不支持 3.4 Mhz。 MT3620 不支持 0 字节 I2C 读数。
有关注册基址、中断号、时钟速率、采样频率以及有关 MT3620 的其他详细信息,请参阅 MT3620 数据表 和 MT3620 M4 用户手册;如果问题仍然存在,可以通过电子邮件 Azure.Sphere@avnet.com从 Avnet 请求详细信息。
应用程序清单设置
若要使用 I2C,RTApp 必须在应用程序清单的“功能”部分将其列出。 例如,以下行在 MT3620 芯片的 ISU0 上预留一个 I2C 主接口:
"Capabilities": {
"I2cMaster": [ "ISU0" ] }
Azure Sphere 应用程序清单 包含有关应用程序清单的更多详细信息。
I2C 示例应用程序
GitHub 上的 CodethinkLabs 存储库包含一些示例应用程序,这些应用程序演示了如何在 Azure Sphere RTApp 中使用 MT3620 支持的外设。 具体而言, I2C_RTApp_MT3620_BareMetal 示例演示如何在支持实时的应用程序中使用 I2C 外围设备。