1. 引言
SPI : serial perripheral interface 串行外围设备接口
SPI总线是硬件上用的比较多的一种串行总线,高速传输,无应答无校验。
这里简单记录一下SPI总线的一些要点。
太基本的概要、历史等都略过。
2. 引脚说明
- SCK :serial clock 时钟
- SS/CS:slave select / chip select 片选
- SDI:serial data input
- SDO:serial data output
- MOSI:master output slave input
- MISO:master input slave output
- SSPBUF:synchronous serial Port buffer
- SSPSR:synchronous serial Port register
这里有些人会把SDI /SDO 和 MOSI /MISO 弄混。
我的理解:
看芯片,如果标的是SDI/SDO,则是固定了输入输出脚。
当做主机(master)时,SDI就是MISO,SDO就是MOSI。
当做从机(slave)时,SDI就是MOSI,SDO就是MISO。
3. 总线模式
时钟、数据脚都并接,主机通过CS脚来控制不同的设备使能。
4. 设置模式
CPOL | CPHA | |
---|---|---|
Mode0 | 0 | 0 |
Mode0 | 0 | 1 |
Mode0 | 1 | 0 |
Mode0 | 1 | 1 |
- CPOL:clock polarity 时钟极性 = IDLE state of SCK
CPOL = 0:空闲时,时钟低电平
CPOL = 1:空闲时,时钟高电平
- CPHA:clock phase 时钟相位
CPHA = 0:前沿(第一个边沿)采样
CPHA = 1:后沿(第二个边沿)采样
注意!!
CPHA控制的是前沿后沿,而不是上升沿下降沿!
5. 其他
偷了几张gif,挺形象的。
波形:
串行通信的数据传输