SPI通讯简介及其应用领域

一、基本概念
SPI是串行外设接口(Serial Peripheral Interface)的缩写,是一种高速的,全双工,同步的通信总线,主要应用在EEPROM,FLASH,实时时钟,AD转换器,多MCU间通讯等等,SPI端口可以在多主器件环境下工作,最多可以与4个其它SPI兼容器件接口;既可用作主器件,也可用作从器件SPI一边使用四线实现全双工通讯:
MISO:主设备输入/从设备输出引脚。该引脚在从模式下发送数据,在主模式下接收数据。
MOSI:主设备输出/从设备输入引脚。该引脚在从模式接收数据,在从模式下发送数据。
SCLK:串行时钟信号,由主设备产生。
CS/SS:从设备片选信号,有主设备控制。让主设备可以单独的与特定从设备通讯,避免数据线上的冲突。
二、SPI与I2C差异:

三、SPI总线拓扑:一对一或一对多。
主设备与从设备都有一个串行移位寄存器,主设备移位寄存器数据经过MOSI将数据写入从设备的移位寄存器,此时从设备的串行移位寄存器的数据也通过MISO传给了主设备,实现两个移位寄存器的数据交换,发送和接收都是同步进行。
1、如果主设备只对从设备进行写操作,主设备忽略从设备接收到的数据即可。
2、如果主设备要读取从设备数据,主设备需要发送一个空数据来引发从设备发送数据。

四、SPI通讯有4种通讯模式,时钟极性SCLK Polarity(CPOL)定义了时钟空闲状态电平,时钟相位SCLK Phase(CPHA)定义数据的采集时间。

模式1:CPOL=0,CPHA=0:此时空闲态时,SCLK处于低电平,数据采样在第一个边沿,即SCLK由低电平到高电平跳变,数据接收在上升沿,数据发送在下降沿。
模式2:CPOL=0,CPHA=1:此时空闲态时,SCLK处于低电平,数据发送在第1个边沿,即SCLK由低电平到高电平跳变,数据发送在上升沿,数据接收在下降沿。
模式3:CPOL=1,CPHA=0:此时空闲态时,SCLK处于高电平,数据采样在第1个边沿,即SCLK由高电平到低电平跳变,数据接收在下降沿,数据发送在上升沿。

模式4:CPOL=1,CPHA=1:此时空闲态时,SCLK处于高电平,数据采样在第1个边沿,即SCLK由高电平到低电平跳变,数据发送在下降沿,数据接收在上升沿。
五、ADSP-214xx的SPI特性
1、4线接口,包括两个数据引脚、一个设备选择引脚和时钟引脚
2、特殊的数据格式,可容纳小端、大端数据,不同单词长度和包装模式。
3、主设备和多个从设备,其中ADSP-214xx主处理器最多可连接4个其他SPI设备。
4、可对波特率、时钟极性、相位(SPI模式0-3)进行编程。
六、ADSP-214xx寄存器
1、SPI控制寄存器(SPICTLx):配置传输启动模式(core或DMA),并配置定位位、使能SPI端口。
2、SPI DMA控制寄存器(SPIDMACx):控制SPI上DMA通道,相应状态位提供状态或错误信息。
3、SPI标志(SPIFLAGx):启用主模式下的芯片选择输出并返回多处理器系统中错误状态。
4、SPI状态(SPISTATx):提供传输错误的信息。
5、SPI波特率(SPIBAUDx):对于主设备,确定时钟速率通过波特率寄存器(SPIBAUDx)的15位值,对于从设备,忽略。SPI模块的基本定时时钟是外围时钟/4
(PCLK/4)用于从属模式,外围时钟/8(PCLK/8)用于主模式。主波特率=PCLK/(4×BAUDR)。

公式:SPI波特率=PCLK+200 MHz;

物联沃分享整理
物联沃-IOTWORD物联网 » SPI通讯简介及其应用领域

发表评论