一.什么是SPI?
1.SPI是一般为4线的总线协议,有时也可以是三条线(单向传输)
2. 四线分别为MISO(主设备数据输入) ,MOSI(主设备数据输出),SCK(时钟),CS(片选)
有必要了解一下它的英文全称
(1) MISO - Master input SlaveOutput(主设备数据输入,从设备数据输出)
(2)MOSI - Master Output Slave Input (主设备数据输出,从设备数据输入)
(3)SCLK - Serial Clock 时钟信号,由主设备产生
(4)CS -Chip Select 从设备使能信号,由主设备控制
更为直观的示意图如下:
通俗的说,由于是8位的数据寄存器,所以当经过8个时钟,数据将从主设备移位寄存器中的数据转到从设备移位寄存器中,同理 从设备中的数据将转到主设备中
二.上SPI的时序
说SPI,时序图肯定要掌握一下
首先要理解一下,图中的几个名字,CPOL,CPHA ,NCC,至于MISO ,MOSI 我就不多说了,(不懂的看一下上面的图)
CPOL 其全称为 ,Clock polarity 翻译为 时钟极性(高电平,或低电平)
CPHA 其全称为 ,Clock phase,翻译为 时钟相位
看到我把字母标红了吗,大写的符号就是由其组成的,这样就好记很多了。所以顾名思义,你可以看出来他和时钟信号有关,他们之间组成4种模式
我就不解释太多,直接上图解释
当CPOL = 0 ,CPHA = 1,CPOL =0 意思是当时钟空闲的时候,时钟为低电平,CPHA =1 ,意思是在时钟的第二个沿的时候,做数据移位操作,当然这时CS肯定是使能的。 如下图所示:
当CPOL = 1,CPHA = 0,CPOL = 1 意思是当时钟空闲的时候,时钟为高电平 ,CPHA = 0 意思是 在时钟第一个沿的做数据移位 ,发送出去,如下图所示:
接下来两幅图,以此类推 ,CPOL ,CPHA 分别为多少 ,自己看看有没有看懂
第一幅
第二幅
评论区留言一下你的答案,看看我说明白了没(PS:别偷看上面的整图 - -)