做网站过程中的自身不足,网络营销作业策划方案,北京网站制做的公司,知名网页设计师SPI是由摩托罗拉公司开发的一种通用数据总线#xff0c;其中由四根通信线#xff0c;支持总线挂载多设备#xff08;一主多从#xff09;#xff0c;是一种同步全双工的协议。主要是实现主控芯片和外挂芯片之间的交流。这样可以使得STM32可以访问并控制各种外部芯片。本文…SPI是由摩托罗拉公司开发的一种通用数据总线其中由四根通信线支持总线挂载多设备一主多从是一种同步全双工的协议。主要是实现主控芯片和外挂芯片之间的交流。这样可以使得STM32可以访问并控制各种外部芯片。本文主要是实现STM32连接W25Q64外挂Flash芯片。
I2C的优点是无论外挂多少设备只需要两根通信线就可以实现连接但是由于其默认弱上拉的设计其由低电平变换到高电平的时候会比较慢这会使得其通讯频率较低最高位400kHz。
SPI传输更快其通讯频率更高最高可达80MHz。SPI实现简单没有继承这么多功能没有应答机制而且通信线较多。分别位四条通信线
SCKSerial Clock:串行时钟线由主机控制将主机的时钟信号同步输出到所有从机中MOSI(Master Output Slave Input):主机输出从机输入MISO(Master Input Slave Output):主机输入从机输出SS(Slave Select):从机选择其中每一个从机就需要一根SS信号线。当对应的从机SS线低电平的时候表示主机和当前从机通信
硬件电路配置
所有SPI设备的SCK、MOSI、MISO分别连接在一起主机引出多条SS控制线分别接到各个从机的SS引脚输出引脚为推挽输出输入引脚为浮空或者上拉输入从机未被选中时从机的MISO必须设置为高阻态
SPI基本收发电路 SPI基本收发电路使用的是一个移位模型该模型中分别连接着主机和从机的两个移位寄存器这两个移位寄存器就是负责存储需要发送的数据和需要接受的数据的。每当发送一个时钟信号两个移位寄存器都会向左移位一位然后最高位就会通过各自的MOSI口发送出去而最低位则是通过MISO接收对方发送过来的一位数据。这就好像一个摩天轮一样轮转主机的最高位会被移动到从机的最低位相对的从机的最低位会移动到主机的最高位上经过8个时钟周期刚好将两个移位寄存器的内容交换一次。
SPI时序基本单元
起始条件SS从高电平切换为低电平 终止条件SS从低电平切换到高电平
交换一个字节 SPI对交换字节的时钟信号规定不是很严格可以自定义。其中有两个标志位用于自定义时钟信号CPOL用于指定极性用于指定空闲状态的时候SCK是否为高电平CPHA用于指定相位CPHA1指定MISO和MOSI在SCK的第一个边沿移入数据第二个边沿移出数据。 CPOL0,CPHA0被称为模式0是使用最广泛的模式也是后面我们会继续使用的模式
SPI的报文模型
主机的第一个数据帧一般是指令帧用于告诉从机需要机型什么操作。往后就是主机和从机的数据交换。