以下内容为个人总结,有错误欢迎下面评论互相探讨
下图转自知乎某篇文章
SPI, Serial Perripheral Interface, 串行外围设备接口
1-同步串行接口,
同步接口,所以是带时钟的,如果是从机在能采样的最快频率内则依赖于主机的时钟,如果是主机则在从机能接收的最快频率基础上依赖于主控SPI能输出的时钟,
2-4根线,CS,MOSI,MISO,CLK
CLK必须要,CS也需要个人理解是不确定从机如何设计,从机根据CS被拉低来选中自己,因此理论上应该只要IO口有无限个SPI总线上也就能挂接无数个从机设备,
因为接和收各一根线,所以SPI是属于全双工
3-SPI的模式
通讯上数据采样的时间点需要确定两个点,一个是数据是时钟是高有效还是低有效,另一个是数据是在时钟开始的时候采样还是时钟接收的时候采样,这两点排列组合成了SPI的四种模式,如下图,图来自网络
4-数据的顺序
目前用过的都是低位先发,用全志的MCU的时候发现可以设置数据是高位先发还是低位先发,SPI只是个通讯的总线协议,怎么设置还是依赖于两边支持哪种方式
SPI 一根TX,也有一些两根TX或者4根TX的的叫DSPI,QSPI,实际上原理和SPI没啥区别。