SPI通信
SPI:通用数据总线
四根通信线:轻松Mhz
SCK(Serial Clock)
MOSI(Master Output Slave Input)
MISO(Master Input Slave Output)
SS(Slave Select)
同步,全双工
支持总线挂载多设备(一主多从)
常用模块:W25Q64 FLASH存储器、SPI OLED屏、NRF24L01 2.4G无线通讯模块、SD卡 支持SPI
硬件电路
- 所有SPI设备SCK、MOSI、MISO分别连接在一起
- 主机引出多条SS控制线,分别连接各从机SS引脚
- 输出引脚配置推挽输出(驱动能力强,驱动上下降沿强),输入引脚配置浮空或上拉

主机指定从机:将对应SS线输出低电平,其余高电平
移位示意图

波特率发生器作为时钟,每一个上升沿,移位寄存器移出一位,进行数据发送;每一个下降沿,最低位采样

一般主机发0x00或0xff跟从机交换数据
SPI时序基本单元
- 起始条件:SS高电平到低电平
- 终止条件:SS低电平切换高电平

SPI由不同的移位模型,能根据SCK的不同边沿变化进行移位。
模式1
CPOL=0:空闲状态时,SCK低电平
CPHA=1:SCK第一个边沿移出数据,第二个边沿移入数据(数据采样)

模式0
CPOL=0:空闲状态时,SCK为低电平 CPHA=0: SCK第一个边沿移入数据,第二个边沿移出数据
将第一个数据变化的时机提前

SPI时序
W25Q64为例,芯片厂商规定
- 发送指令
- 向SS指定设备,发送指令(0x06),00000110
