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

重要

这是 Azure Sphere(旧版)文档。 Azure Sphere(旧版)将于 2027 年 9 月 27 日停用,用户此时必须迁移到 Azure Sphere(集成)。 使用位于 TOC 上方的版本选择器查看 Azure Sphere(集成)文档。

在主模式下,Azure Sphere 支持串行外围接口 (SPI)。 SPI 是用于在外围设备与集成线路之间进行通信的串行接口。 相比于 I2C,SPI 可用于更复杂的、速度更快的外围设备。

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

注意

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

芯片选择

“芯片选择”管理 SPI 主接口与一组从属设备之间的连接;允许主接口单独向每个从属设备发送数据以及接收其数据。 Azure Sphere 支持“芯片选择”的低主动和高主动设置,默认设置为低主动。 在任一时刻,每个 SPI 主接口只能由一个应用程序使用。 应用程序必须打开 SPI 主接口并识别每个连接的从属设备,然后才能在该接口上执行读取和写入操作。

MT3620 对实时核心上的 SPI 的支持

配置 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 外围设备。