在支持实时的应用程序中使用 I2C
Azure Sphere 支持主模式下 Inter-Integrated 线路 (I2C) 。 I2C 是一种串行总线,用于将低速外围设备连接到微控制器。 I2C 使用多主设备/多从属模型,其中主设备控制一组从属设备。 I2C 通常用于只需与微控制器进行简单轻型通信的外围设备,例如设置控件、电源开关和传感器。
本主题介绍如何在支持实时的应用程序中使用 I2C (RTApps) 。 有关在高级应用程序中使用 I2C 的信息,请参阅 在高级应用程序中使用 I2C。
注意
Azure Sphere OS 在启动时不会重置外围设备。 应用程序应确保外围设备在启动时或重启后处于已知良好的状态。
MT3620 对实时核心上的 I2C 的支持
MT3620 芯片的 I2C 规范在 MT3620 支持状态中列出。 MT3620 开发板用户指南介绍了引脚布局和接线功能。
配置 MT3620 开发板时,可以使用任何 ISU 块作为 I2C 主接口。 将 ISU 块用作 I2C 主接口时,不能使用与 SPI 或 UART 接口相同的块。
MT3620 不支持十位从属设备地址;仅支持 7 位地址。 MT3620 支持 100 KHz、400 KHz 和 1 MHz 总线速度,但不支持 3.4 Mhz。 MT3620 不支持零字节 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 RTApps 中使用 MT3620 支持的外围设备。 具体而言, I2C_RTApp_MT3620_BareMetal 示例演示了如何在支持实时的应用程序中使用 I2C 外围设备。