文章分两部分,一是SPI的详解,二是常见问题汇总;文章长,但是都是重点精华,往有帮助~
一、SPI的详解
1. 物理层
- SPI 通讯使用 3 条总线及片选线, 3 条总线分别为 SCK、 MOSI、 MISO,片选线为 S非,一主多从
①s杠:从设备选择信号线,常称为片选信号线,也称为 NSS、 CS,每个从设备都有独立的这一条 NSS 信号线,本信号线独占主机的一个引脚,当主机要选择从设备时,把该从设备的 NSS 信号线设置为低电平,该从设备即被选中,即片选有效,接着主机开始与被选中的从设备进行 SPI通讯,低电平有效。
②SCLK:如 STM32 的 SPI 时钟频率最大为fpclk/2,两个设备之间通讯时,通讯速率受限于低速设备
③MOSI:主机的数据从这条信号线输出,从机由这条信号线读入主机发送的数据
④MISO:主机从这条信号线读入数据,从机的数据由这条信号线输出到主机
高速全双工的通信总线
2. 协议层
1、通讯的起始和停止信号
NSS 信号线由高变低,是 SPI 通讯的起始信号;NSS 信号由低变高,是 SPI 通讯的停止信号