SPI 总结

SPI 是一种高速全双工通讯协议,通讯速率具体根据相应的器件而定,如:你用spi写SD卡就要考虑SD卡的性能,低速的SD和高速SD差别很大;spi有sck,msio,mosi,nss四条信号线,sck用来传输时钟,注意,从机的时钟是有主机提供,而主机产生时钟的条件是发送数据;miso 主入从出;mosi 主出从入 ;nss片选在多机通信的时候常使用,主机通过片选来选中与之通信的目的从机,主机可以用多个IO口来做片选从机。
下面盗用stm32的连接图:

这里写图片描述
主要介绍下全双工模式下主从机如何工作:
主机:主机在发一个字节的时候移位寄存器送出8bit,同时也读入8bit,读写都是同时进行的;
从机:从机在读入一个字节的时候也发出一个字节,所以在从机在读数据之前得先填充写缓冲区,否则送出的数据可能为空的(再次强调从机的时钟是由主机提供,所以如果从机能发送数据给主机的条件是主机在发送数据产生时钟,大多数时候我们都定时在总线上发送空的数据,让从机能发送数据给主机;)
因此spi总线大多数时候是不能做到绝对的全双工的,有一种比较好的做法是从机要发数据的时候通过一个IO口向主机发出一个电平中断,主机检测到在开始在总线上发送数据,同时也就读到了spi总线上的数据了。可以理解为整个spi总线在全双工的时候数据流的状态环形移位状态

下面为spi通信的四种数据传输采样格式,在spi双机通信的时候数据帧格式主从可以一致,也可以不一致具体自己可以去试验:
这里写图片描述
spi主从通信时注意事项:
1:主从机一定要共地
2:主机的时钟参考电平高的要能达到3.3V
3:波特率问题
4:上面说的数据帧格式问题
5:从机如果要发数据一定要在读之前填充写缓冲区

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值