我正在研究一种只有一个 SPI 端口的 CPU 的设计。我有多个 (3) 个从属设备连接到此端口,其中一个是 microSD 卡。
这是一位工程师的报告,他说 SD 卡设计为作为 SPI 主设备的唯一从设备运行。
有其他人能够在同一总线上与其他 SPI 从站一起使用 microSD 吗?也许这份报告只是基于一个特定的、有问题的 miniSD 卡?
为了安全起见,有人会建议用连接到 miniSD 卡的从选择线来选通 SPI CLK 线吗?
我正在研究一种只有一个 SPI 端口的 CPU 的设计。我有多个 (3) 个从属设备连接到此端口,其中一个是 microSD 卡。
这是一位工程师的报告,他说 SD 卡设计为作为 SPI 主设备的唯一从设备运行。
有其他人能够在同一总线上与其他 SPI 从站一起使用 microSD 吗?也许这份报告只是基于一个特定的、有问题的 miniSD 卡?
为了安全起见,有人会建议用连接到 miniSD 卡的从选择线来选通 SPI CLK 线吗?
根据此页面SD 卡驱动和/或释放 DO 线与 sclk 线同步:
在 SPI 总线中,每个从设备通过单独的 CS 信号进行选择,并且可以将多个设备连接到 SPI 总线。通用 SPI 从设备通过 CS 信号异步驱动/释放其 DO 信号,共享一条 SPI 总线。然而,MMC/SDC 驱动/释放 DO 信号以与 SCLK 同步。这意味着存在与 MMC/SDC 和任何其他连接到 SPI 总线的 SPI 从机发生总线冲突的可能性。右图显示了 MMC/SDC 的驱动/释放时序(DO 信号被拉到 1/2 vcc 以查看总线状态)。因此,要使 MMC/SDC 释放 DO 信号,主设备必须在 CS 信号置低后发送一个字节。
因此,只需在将 CS 线提高到高电平后向 SPI 发送一个虚拟字节就可以了。上面的网站有一个将 SD 卡上的 CS 线拉高时 SPI 总线的时序图。
此外,最好确保在上电/插入卡时,微控制器与卡协商使用 SPI 模式。这些细节可以在这里找到
综上所述,只要做好以上预防措施,多个外设共享SPI总线应该是可以的。