SPI接口
和 IIC 接口一样,SPI 也是非常常见的接口。与 IIC 相比,SPI 拥有更快的速度,ELF 1 开发板也通过SPI连接了六轴传感器,下面我们就来为大家讲解一下 SPI 接口。
SPI接口介绍
该芯片使用 SPI 总线进行设置与数据传输。SPI 的通信原理很简单,它以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,需要至少 4 根线,事实上 3 根也可以(单向传输时)。也是所有基于 SPI 的设备共有的,它们是 MOSI(主出从入)、MISO(主入从出)、SCLK(时钟)、CS(片选)。时钟信号只由主设备控制,用于时钟同步。在一主多从模式下,每个从设备都有一条独立的 CS 信号线,如果要和特定的从机进行通讯,可以将相应的 CS(下图使用 NSS 表示)信号线拉低。SPI 接口为收发为双全工串行方式传输,收发同步,主设备发出一位给从设备时,从设备也发出一位给主设备。一主多从情况如下图:
SPI 具有 4 种工作方式,时钟极性(CPOL)和相位(CPHA)共同决定读取数据的方式,比如信号上升沿读取数据还是信号下降沿读取数据,并且一个片选信号可以设置一种模式。
SPI 工作方式如表 2.3,SPI 时序图如下图:
CPOL 用来决定 SCLK 空闲时的电平:
CPOL=0,空闲时为低电平;CPOL=1,空闲时为高电平;
CPHA 用来决定采样时刻:
CPHA=0,每个周期的第一个时钟沿采样;CPHA=1,每个周期的第二个时钟沿采样。
表2.3 SPI总线的4种模式
设定 | 第一位数据输出 | 其他位输出 | 数据采样 |
CPOL=0,CPHA=0 | 第一个上升沿前 | 下降沿 | 上升沿 |
CPOL=1,CPHA=1 | 第一个下降沿 | 下降沿 | 上升沿 |
CPOL=1,CPHA=0 | 第一个下降沿前 | 上升沿 | 下降沿 |
CPOL=0,CPHA=1 | 第一个上升沿 | 上升沿 | 下降沿 |
图2.29 SPI协议时序图