江协科技stm32————11-1SPI通信协议
目录
SPI通信
硬件电路
移位示意图
SPI时序基本单元
模式0
模式1
SPI时序
发送指令
指定地址写
指定地址读
SPI通信
四根通信线:
SCK(Serial Clock):串行时钟线
MOSI(Master Output Slave Input):主机输出从机输入
MISO(Master Input Slave Output):主机输入从机输出
SS(Slave Select):从机选择
同步:同步时序
全双工 :发送和接收单独分别用两条线路
硬件电路
- 主机要指定谁,就将连接的ss线置低电平
- 输出引脚配置为推挽输出(有很强的驱动能力,使SPI引脚信号的上、下降沿非常迅速)从机未被选中时,MISO输出为高阻态,避免产生冲突
- 输入引脚配置为浮空或上拉输入 ,
移位示意图
高位先行,主机移位寄存器向左移动一位通过MOSI移动到从机寄存器的右边;从机寄存器向左移动一位通过MOSO移动到从机寄存器的右边
当时钟上升沿来时,移位寄存器向左移动一位,数据存放在输出数据寄存器中
当时钟的下降沿来时,主机和从机都会进行数据采样输入
重复该过程,直到主机和从机的字节完成数据交换,可以实现发送一个字节(只看从机)、接收一个字节(只看主机)以及发送同时接收一个字节
SPI时序基本单元
模式0
数据交换的超前时钟信号半个周期
模式1
ss开启前MISO为高阻态,避免冲突,ss关闭后MISO变为高阻态
SCK第一个边沿,MOSI和MISO移出最高位,SCK第二个边沿,之前移出的最高位进入对方的最低位
SPI时序
发送指令
采用指令码加读写数据的模型
从机中有一个指令集(起始后第一个字节发送指令码,指导从机完成相应的功能)
该图中,从机获得MOSI的0x06,写使能的指令
指定地址写
首先发送0x02指定地址写的指令,后面的24位跟着指定的地址,然后写入数据
指定地址读
指定地址后,主机给从机0xFF交换得到从机数据