我梦想中的SPI多路复用器在哪里?

时间:2019-03-14 21:43:42

标签: spi multiplexing

请考虑您只有一条单芯片选择的SPI总线。 有没有可以将8个或更多设备连接到该SPI总线的芯片?

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

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

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

和9个输出:

  • 输出时钟,8个从属芯片选择

MISO和MOSI直接连接到从站。从设备的SPI时钟连接到输出时钟,其芯片选择连接到8个从芯片选择之一。

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

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

这种芯片似乎不存在。我找到了具有两个芯片选择的解决方案,但这不是仅通过一个芯片选择来升级旧硬件设计的选择。

这样的东西存在吗?

1 个答案:

答案 0 :(得分:0)

它不存在,因为没有必要。通常,在启动SPI传输之前,只能通过软件以常规gpio的方式控制CS,然后可以将不同的从机连接到不同的GPIO并将它们用作CS。如果CS是由硬件模块生成并需要的,则可以使用外部芯片选通此信号来选择所需的从机。

您建议的一个字节来选择总线,这也会破坏所有在同一缓冲区进行读写操作时中继的软件,并且会减少带有控制信号的可用带宽。

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