SPI笔记

SPI
SPI 的引脚信息:

MISO(Master In / Slave Out)主设备数据输入,从设备数据输出。
MOSI(Master Out / Slave In)主设备数据输出,从设备数据输入。
SCLK(Serial Clock)时钟信号,由主设备产生。
CS(Chip Select)从设备片选信号,由主设备产生。

SPI 的工作原理:

1.在主机和从机都有一个串行移位寄存器,主机通过向它的SPI串行寄存器写入一个字节来发起一次传输。
2.串行移位寄存器通过 MOSI 信号线将字节传送给从机,从机也将自己的串行移位寄存器中的内容通过 MISO 信号线返回给主机。两个移位寄存器中的内容就被交换。(主机和从机进行数据交换)
3.外设的写操作和读操作是同步完成的。
4.如果只是进行写操作,主机只需忽略接收到的字节。反之,若主机要读取从机的一个字节,就必须发送一个空字节引发从机传输。

SPI 的传输方式:

1.全双工通信,就是在任何时刻,主机与从机之间都可以同时进行数据的发送和接收。
2.单工通信,就是在同一时刻,只有一个传输的方向,发送或者是接收。
3.半双工通信,就是在同一时刻,只能为一个方向传输数据。

SPI 工作模式

根据 CPOL和CPOH两者 规定空闲时电平和采样时刻

CPOL 定义 空闲时电平
CPOH 定义 采样时刻是奇数边沿还是偶数边沿

SPI 工作模式 CPOL CPHA SCL 空闲状态 采样边沿 采样时刻
0 0 0 低电平 上升沿 奇数边沿
1 0 1 低电平 下降沿 偶数边沿
2 1 0 高电平 下降沿 奇数边沿
3 1 1 高电平 上升沿 偶数边沿

具体代码可参考 正点原子

你可能感兴趣的:(笔记)