1.SPI 介绍
SPI 的全称是"Serial Peripheral Interface",意为串行外围接口,是摩托罗拉首先提出的,SPI接口应用广泛,主要应用在EEPROM, FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间、SPI是一种高速,全双工,同步的通信总线,并且在芯片的管脚只占用了四根线。使用的多的是三根线,CS线可以使用GPIO进行配置。
2. SPI 配置步骤
2.1 SPI 信号线![在这里插入图片描述](https://img-blog.csdnimg.cn/7c8110811fd5496f8dbdb5f9395d1079.png)
MISO : master input slave output 数据由从设备发出主设备接收
MOSI: master output slave input 数据由主设备发出从设备接收
SCLK: 时钟线,同步数据的获取,由主机发出,在CS有效的情况下时钟线才有信号输出
CS: 片选信号线,可以使用一个普通的gpio引脚来进行配置
备注:i2c通过ID对从设备进行寻址,选择I2c总线的某个设备进行寻址.而SPI是对通过CS对总线进行寻址,CS低电平有效,CS高电平无效。
2.2 SPI 特点
MSB:数据的最高位
LSB:数据的最地位
slave有这二种传输方式MSB从数据的最高位进行发送,LSB从数据的最低位进行发送。
主机写入一个字节到以为移位寄存器进行数据的传输,将数据传输给从机,然后从机的数据从自己的以为寄存器进行了交换 。比如主机要到从设备获取一个字节数据,需要向移位寄存器写入一个无用数据比如0xff,然后跟设备的寄存器的数据进行交换。
可以同时发送和接收串行数据,可以当作主机或者从机进行工作,提供频率和时钟,发送结束中断标志,写冲突保护,总线竞争保护等。
2.3 I2C类比
I2C有一个应答机制,主机发送一个数据到从机,从机要进行一个应答,从机发送一个数据给主机也要进行响应。SPI没有数据流和应答机制,
2.4 SPI工作方式
通过时钟极性(CPOL)和时钟相位(CPHA)进行区分