全双工同步串行通信
速率可达50MHz(STMicroelectronics STM32H7系列)
4线制基础架构:
SCLK:时钟线(主机控制)
MOSI:主机输出从机输入(Master Out Slave In)
MISO:主机输入从机输出(Master In Slave Out)
SS/CS:片选信号(低电平有效)
电气特性
参数 | 典型值 |
---|---|
电压电平 | 1.8V/3.3V/5V |
驱动能力 | 20mA(推挽输出) |
传输距离 | <1m(板级互联) |
时钟极性(CPOL)与相位(CPHA)
模式 | CPOL | CPHA | 数据采样时刻 |
---|---|---|---|
0 | 0 | 0 | SCLK上升沿 |
1 | 0 | 1 | SCLK下降沿 |
2 | 1 | 0 | SCLK下降沿 |
3 | 1 | 1 | SCLK上升沿 |
数据帧格式
数据宽度:通常8位(可扩展至16/32位)
传输顺序:MSB First(默认)或LSB First
典型时序(模式0)
类型 | 优点 | 缺点 | 适用场景 |
---|---|---|---|
标准SPI | 全双工高速 | 引脚占用多 | Flash存储器 |
3线半双工 | 节省引脚 | 速率降低30% | 传感器(如BME280) |
Daisy Chain | 单CS控制多设备 | 延迟累积 | LED驱动器(TLC5940) |
Multi-IO SPI | 数据线可复用 | 协议复杂度高 | 高速存储器(QSPI) |
DMA传输
STM32的SPI+DMA可实现0 CPU占用的连续传输
缓冲区描述符自动跳转(如NXP FlexIO)
硬件加速
ESP32的SPI控制器支持40MHz时钟+8线并行(Octal SPI)
信号完整性
阻抗匹配:串联22Ω电阻(抑制振铃)
等长布线:SCLK与数据线长度差<5mm(100MHz时)
关键器件选型:
电平转换:TXS0108(1.8V?3.3V双向转换)
隔离方案:ADuM3151(150Mbps数字隔离器)
逻辑分析仪捕获
触发条件设置:CS下降沿+SCLK边沿
解码显示:Saleae Logic可自动解析SPI数据
故障排查
现象 | 可能原因 | 解决方案 |
---|---|---|
无响应 | CS信号未激活 | 检查GPIO输出电平 |
数据错位 | CPOL/CPHA配置错误 | 重设工作模式 |
通信不稳定 | 未接上拉电阻 | MOSI/MISO加4.7k上拉 |
存储器件
Winbond W25Q128:Quad SPI模式下可达104MHz
读写时序:
显示驱动
ILI9341 TFT屏:利用SPI实现18bit色深传输
优化技巧:采用DMA+双缓冲减少刷屏延迟
工业传感器
ADXL345加速度计:SPI模式比I2C快3倍
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。