spi - 我梦寐以求的 SPI 多路复用器在哪里?

标签 spi multiplexing

假设您有一个只有一个片选的 SPI 总线。
是否有可以将 8 个或更多设备连接到该 SPI 总线的芯片?

为简化起见,您可以假设所有设备都同意 SPI 模式(数据需要在上升沿有效)。此外,所有设备都是时间,其中芯片选择在整个传输过程中保持低电平,并且不会在每个字后切换。

SPI 多路复用器可以有 4 个输入:

  • MISO、MOSI、输入时钟、主芯片选择

  • 和 9 个输出:
  • 输出时钟,8个从机片选

  • MISO 和 MOSI 直接连接到从站。从机的 SPI 时钟连接到输出时钟,它们的芯片选择连接到 8 个从机芯片选择之一。

    SPI 多路复用器将每个 SPI 传输的两个字节作为自己的输入。第一个字节可以指示要选择哪个从设备。对于多路复用器的配置,可以允许第九个地址。

    如果选择了 8 个从机中的一个,多路复用器将在第一个字节之后(甚至在第一个字节的前几位之后)激活从机的片选。输出时钟将在第二个字节开始时激活,并且与输入时钟同步。在第一个字节期间让时钟处于非事件状态可确保从机永远不会注意到第一个字节。

    这样的芯片似乎不存在。我找到了具有两个芯片选择的解决方案,但这不是仅使用单个芯片选择升级旧硬件设计的选项。

    这样的事情存在吗?

    最佳答案

    它不存在,因为不需要它。在启动 SPI 传输之前,CS 通常仅由软件作为常规 gpio 进行控制,然后您可以将不同的从设备连接到不同的 GPIO 并将它们用作 CS。如果硬件模块生成并需要 CS,则您可以使用外部芯片选择来选通此信号以选择所需的从设备。

    您提议的一个字节来选择总线也会破坏所有从同一缓冲区写入和读取数据的软件,并且会减少控制信号的可用带宽。

    作为最近开发的安全飞地和 Trustzone 的附带说明,趋势不是共享 spi 总线而是硬连接它们,因此只有在 SoC 的受信任部分中运行的代码才能访问连接的从设备。

    关于spi - 我梦寐以求的 SPI 多路复用器在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55172478/

    相关文章:

    interface - FPGA 上的输入信号边沿检测

    embedded - 通过 SPI 的芯片到芯片通信协议(protocol)

    linux - 树莓派 : SPI not working, spi_bcm2835 未使用 lsmod 显示

    go - 如何在go中多路复用 channel 输出

    computer-science - 术语多路复用在计算机科学中是什么意思?

    http - 不同的 HTTP 主机通过相同的 TCP 连接

    c - io多路复用,server收不到数据

    raspberry-pi3 - 具有多个 CAN 总线的 RaspberryPi 3b+ (MPC2515))

    c++ - 与SPI NAND闪存(STM32L4、QSPI)的通信问题

    php - PHP 编码理论 : Need to direct traffic for multiple queues (multiplexing)