标准:bus:spi:start
差别
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录前一修订版后一修订版 | 前一修订版 | ||
标准:bus:spi:start [2025/03/15 09:51] – [常用标准] hwwiki | 标准:bus:spi:start [2025/03/23 17:59] (当前版本) – [Transmission Formats] hwwiki | ||
---|---|---|---|
行 25: | 行 25: | ||
| MISO |Master in, slave out. A.k.a. main in, subnode out. The selected slave can drive this line to send data to the master.| | | MISO |Master in, slave out. A.k.a. main in, subnode out. The selected slave can drive this line to send data to the master.| | ||
+ | {{: | ||
+ | 上图为四线的Basic SPI,另有几种变体: | ||
+ | - Master没有nCS片选信号,单个Slave的片选直接拉低为常开状态 | ||
+ | - MOSI和MISO共用一个信号线,通过分时的方法实现输入和输出 | ||
+ | - Master只用到了nCS SCLK和MOSI/ | ||
- | |||
- | {{: | ||
==== Dual SPI ==== | ==== Dual SPI ==== | ||
行 41: | 行 44: | ||
{{: | {{: | ||
+ | |||
+ | ===== Transmission Formats ===== | ||
+ | |||
+ | Basic SPI有四种模式,按空闲时时钟电平,以及采样的时钟边缘分。 | ||
+ | |||
+ | 空闲时时钟电平为0对应CPOL = 0,1对应CPOL = 1。 | ||
+ | |||
+ | 第一个时钟边缘采样对应CPHA = 0,第二个则对应CPHA = 1。 | ||
+ | |||
+ | 不是每个芯片都支持这四种模式,一般均支持0和3,Master和Slave设备需要设定成同一个模式。 | ||
+ | |||
+ | 另Master设备可以在一个总线上和不同模式的slave设备通讯,只需要保证通讯时其他slave设备是inactive状态。 | ||
+ | |||
+ | 列表和示意图如下: | ||
+ | |||
+ | | SPI Mode | Clock Polarity (CPOL) | ||
+ | | 0 | 0 | 0 | Data sampled on rising edge and shifted out on falling edge. | | ||
+ | | 1 | 0 | 1 | Data sampled on falling edge and shifted out on rising edge. | | ||
+ | | 2 | 1 | 0 | Data sampled on falling edge and shifted out on rising edge. | | ||
+ | | 3 | 1 | 1 | Data sampled on rising edge and shifted out on falling edge. | | ||
+ | |||
+ | {{: | ||
+ | |||
+ | ===== 总线拓扑===== | ||
+ | |||
+ | 两种拓扑,分别如下。 | ||
+ | |||
+ | ==== Multidrop configuration ==== | ||
+ | |||
+ | 一个Master,一个或多个Slave设备,master有单独的片选信号(或者通过GPIO扩展芯片扩展)对应相应的Slave设备,示意图如下: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | ==== Daisy chain configuration ==== | ||
+ | |||
+ | 即菊花链模式,Master设备只有一个片选信号连接多个Slave设备,而Slave的MISO作为下一个Slave设备的MOSI,数据在多个Slave设备之间传递。如下图所示,注意这个不是所有的Slave都支持此功能。 | ||
+ | |||
+ | {{: | ||
+ | |||
+ | ===== 设计要求 ===== | ||
+ | |||
+ | - Master和Slave需要支持同一种版本的SPI(Baisc Dual or Quad SPI),对于Basic SPI还需看支持同一种SPI Mode。 | ||
+ | - SPI的时钟频率不同的芯片差异很大,从几十kHz到几百MHz,Master和Slave只能按照两者中较低的频率进行通讯。 | ||
+ | - SPI的时钟如果大于50MHz,PCB需要按照高速线要求布线,如做阻抗控制和阻抗匹配,考虑串扰和干扰等。 | ||
+ | - SPI为非标准协议, 一定要确认芯片Datasheet中的具体要求。 | ||
+ | - SPI的信号电平一般有1.8V和3.3V两种,Master和Slave信号电平需要一致,不一致的需要做电平转换,如果频率高于1M,需要用专用的转换芯片,详见TI文档{{ : | ||
+ | |||
===== 参考文献===== | ===== 参考文献===== | ||
- [[https:// | - [[https:// | ||
+ | - [[https:// |
标准/bus/spi/start.1742003473.txt.gz · 最后更改: 2025/03/15 09:51 由 hwwiki