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

Azure Sphere 支持主模式下的串行外设接口 (SPI) 。 SPI 是用于外围设备和集成电路之间的通信的串行接口。 与 I2C 相比,SPI 可与更复杂的高速外围设备一起使用。

本主题介绍如何在支持实时的应用程序中使用 SPI, (RTApp) 。 有关在高级应用程序中使用 SPI 的信息,请参阅 在高级应用程序中使用 SPI

注意

Azure Sphere OS 在启动时不会重置外围设备。 应用程序应确保外围设备在启动时或重启后处于已知良好的状态。

芯片选择

芯片选择管理 SPI 主接口与一组从属设备之间的连接;和 允许主接口单独向每个从属设备发送和接收数据。 Azure Sphere 支持芯片选择的“低主动”和“主动-高”设置,默认设置为 active-low。 在任何时候,只有一个应用程序可以使用每个 SPI 主接口。 在对接口执行读取和写入操作之前,应用程序必须打开 SPI 主接口并标识每个连接的从属设备。

实时核心上的 SPI 的 MT3620 支持

配置 MT3620 开发板时,可以使用任何 ISU 端口作为 SPI 主接口。 最多可以将两个从属设备连接到每个 ISU。 将 ISU 端口用作 SPI 主接口时,不能使用与 I2C 或 UART 接口相同的端口。

MT3620 支持高达 40 MHz 的 SPI 事务。

MT3620 不支持在单个总线事务中同时进行双向读写 (全双工) SPI 操作。

MT3620 的 SPI 规范在 MT3620 支持状态中列出。 MT3620 开发板用户指南介绍了引脚布局和接线功能。

有关 MT3620 的寄存器基址、中断数、时钟速率、采样频率和其他详细信息,请参阅 MT3620 数据表MT3620 M4 用户手册;如果问题仍然存在,你可以通过电子邮件 Azure.Sphere@avnet.com从 Avnet 请求详细信息。

应用程序清单设置

若要使用 SPI API,必须将功能添加到 SpiMaster 应用程序清单,然后向功能指定每个 SPI 主控制器。

"Capabilities": {
   "SpiMaster": [ "ISU0", "ISU1" ] }

Azure Sphere 应用程序清单 提供了有关应用程序清单的更多详细信息。

SPI 示例应用程序

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