概述
- 四根通信线:SCK/SCLK/CLK/CK(Serial Clock))、 MOSI/DO (Master Output SlaveInput/Data Output) 、MISO/DI (Master Input Slave Output) 、SS/NSS/CS (Slave Select/Not Slave Select/Chip Select)(一个从机一条ss线,ss置低电平开始通信)
- 从机上的DI要连主机的MOSI
- 同步,全双工
- 支持总线挂载多设备(一主多从)
- 速度快,没有限制最大传输速度
硬件电路
- 所有SPI设备的SCK、MOSI、MISO分别连在一起
- 主机另外引出多条SS控制线,分别接到各从机的SS引脚
- 输出引脚配置为推挽输出,输入引脚配置为浮空或上拉输入
- 共地
移位示意图
- 高位先行
- 字节交换
- 只接收,一般发0x00,0xff去跟从机交换数据
时序基本单元
-
起始条件:SS从高电平切换到低电平
-
终止条件:SS从低电平切换到高电平
CPOL(Clock Polarity):时钟极性
CPHA(ClockPhase):时钟相位
可配置为0/1,共有4种模式 -
模式0(多用 )
CPOL=0:空闲状态时,SCK为低电平
CPHA=O:SSCK第一个边沿移入数据,第二个边沿移出数据
-
模式1
CPOL=0:空闲状态时,SCK为低电平
CPHA=1: SSCK第一个边沿移出数据,第二个边沿移入数据(偶数边沿进行采样)
-
模式2
CPOL=1:空闲状态时,SCK为高电平
CPHA=O:SCK第一个边沿移入数据,第二个边沿移出数据
-
模式3
CPOL=1:空闲状态时,SCK为高电平
CPHA=1:SCK第一个边沿移出数据第二个边沿移入数据
传输示意图