- SPI总线主要特点
· 全双工;
· 可以当作主机或从机工作;
· 提供频率可编程时钟;
· 发送结束中断标志;
· 写冲突保护;
.总线竞争保护等。
2.SPI总线简介
串行外围设备接口SPI(serial peripheral interface)总线技术是Motorola公司推出的一种同步串行接口。
SPI 用于CPU与各种外围器件进行全双工、同步串行通讯。它只需四条线就可以完成MCU与各种外围器件的通讯,这四条线是:串行时钟线(CSK)、主机输入/从机输出数据线(MISO)、主机输出/从机输入数据线(MOSI)、低电平有效从机选择线CS。当SPI工作时,在移位寄存器中的数据逐位从输出引脚(MOSI)输出(高位在前),同时从输入引脚(MISO)接收的数据逐位移到移位寄存器(高位在前)。发送一个字节后,从另一个外围器件接收的字节数据进入移位寄存器中。即完成一个字节数据传输的实质是两个器件寄存器内容的交换。主SPI的时钟信号(SCK)使传输同步。其典型系统框图如下图所示。
3. SPI的四种模式
SPI的相位(CPHA)和极性(CPOL)分别可以为0或1,对应的4种组合构成了SPI的4种模式(mode)
Mode 0:CPOL = 0,CPHA = 0
Mode 1:CPOL = 0,CPHA = 1
Mode 2:CPOL = 1,CPHA = 0
Mode 3:CPOL = 1,CPHA = 1
时钟极性CPOL(设置时钟空闲时的电平):即SPI空闲时,时钟信号SCLK的电平。(0:空闲时低电平,1:空闲时高电平)
时钟相位CPHA(设置读取数据和发送数据的时钟沿):即SPI在SCLK第几个边沿开始采样。(0:第一个边沿开始,1:第二个边沿开始)
CPHA = 0,表示第一个边沿:
对于CPOL = 0,空闲时是低电平,第一个边沿就是从低到高,所以是上升沿。
对于CPOL = 1,空闲时是高电平,第一个边沿就是从高到低,所以是下降沿。
CPHA = 1,表示第二个边沿:
对于CPOL = 0,空闲时是高电平,第一个边沿就是从高到低,所以是下降沿。
对于CPOL = 1,空闲时是低电平,第一个边沿就是从低到高,所以是上升沿。
四种模式的工作时序如下图所示
SPI接口时钟配置心得:
在主设备这边配置SPI接口时钟时,一定要弄清楚从设备的时钟要求,因为主设备这边的时钟极性和相位是以从设备为基准的。因此,在时钟极性的配置上要搞清楚从设备是在时钟的上升沿还是下降沿接收数据,是在时钟的下降沿还是上升沿输出数据。
https://www.cnblogs.com/Efronc/archive/2010/06/24/1764505.html
https://www.cnblogs.com/chenshuyi/p/3605427.html