在调试LCD驱动时用到了SPI接口,因此将了解、理解到的SPI知识记录下来,SPI接口有三线和四线两种类型,这里只介绍常用的四线类型
what(简单介绍)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201201103159635.jpg#pic_center)
术语表
name |
describe |
CS |
片选:用于选择、使能从机 |
SCLK |
时钟线:主从机同步信号,由主机输出 |
MOSI |
主机(master)输出,从机(slave)输入 |
MISO |
主机(master)输入,从机(slave)输出 |
CPOL |
时钟极性:决定了时钟线(SCLK)在空闲时的电平 |
CHPA |
相位:决定了MOSI和MISO是在SCLK的第一个电平变化沿还是第二个电平变化沿采集信号 |
基本概念
1.spi全称串行外设接口(Serial Peripheral Interface),是一种同步、全双工通信协议
2.spi支持单主机、多从机的通信方式
3.通信所用四根信号线分别为CS、SCLK、MOSI、MISO
4.CS由主机选择拉高或者拉低来选择对应的从机做通信
5.同步通过SCLK实现,由主机输出
6.全双工通过MOSI、MISO实现
7.可以先传输数据的高位也可以先传输低位,主从机之间需要同步协调
8.CPOL可以为0或者1,0代表时钟线空闲的时候为低电平,1代表时钟线空闲的时候为高电平
9.CPHA可以为0或者1,0代表主机、从机在第一个电平变化沿采集读取MISO、MOSI的电平数据,在第二个电平变化沿改变(输出)MISO、MOSI的电平数据;1代表主机、从机在第二个电平变化沿采集读取MISO、MOSI的电平数据,在第一个电平变化沿改变(输出)MISO、MOSI的电平数据
10.主机需要根据从机的协议来设置一致的CPOL和CPHA,这样双方才可以在正确的SCLK时序读取数据
why(优点特点)
1.高速、全双工
2.只占用芯片四根线,节约管脚资源,方便电路设计和PCB布局
3.硬件功能强大,软件上简单易用
4.广泛应用于微控制器和外围IC通信
**缺点:没有应答机制确保数据传输的正确性、没有流控制、只支持单主机、每个从机都需要接一根片选线
how(过程)
主机拉高或者拉低CS选择使能从机,根据CPOL和CPHA在相应的时序(SCLK)下,通过MOSI、MISO传输数据。传输完成后,恢复CS和SCLK电平状态,等待下一次传输。
根据基本概念8、9,CPOL和CPHA有四种组合,即SPI有四种工作模式
模式 |
描述 |
SPI0 |
CPOL=0,CPHA=0,时钟空闲时为低电平,第一个时钟变化沿(上升沿)采集信号MOSI、MISO,第二个时钟变化沿(下降沿)输出(改变)信号MOSI、MISO |
SPI1 |
CPOL=0,CPHA=1,时钟空闲时为低电平,第一个时钟变化沿(上升沿)输出(改变)信号MOSI、MISO,第二个时钟变化沿(下降沿)采集信号MOSI、MISO |
SPI2 |
CPOL=1,CPHA=0,时钟空闲时为高电平,第一个时钟变化沿(下降沿)采集信号MOSI、MISO,第二个时钟变化沿(上升沿)输出(改变)信号MOSI、MISO |
SPI3 |
CPOL=1,CPHA=1,时钟空闲时为高电平,第一个时钟变化沿(下降沿)输出(改变)信号MOSI、MISO,第二个时钟变化沿(上升沿)采集信号MOSI、MISO |
其中,SPI0和SPI3比较常用,下面为逻辑分析仪输出这两种工作模式的信号波形(先传高位),由于现在手头没有从机设备,因此缺少MISO波形。
1.SPI0:CPOL=0,CPHA=0
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201202142213678.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3N0cmVuZ3RoZW4yMzI0,size_16,color_FFFFFF,t_70#pic_center)
2.SPI0:CPOL=1,CPHA=1
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201202144011370.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3N0cmVuZ3RoZW4yMzI0,size_16,color_FFFFFF,t_70#pic_center)