常用硬件接口简述及调试要点:SPI


SPI(Serial Peripheral Interface Bus 译作:串行外设接口)是一种用于短程通信的同步串行通信接口规范,具有高速,全双工的特点。这种接口首先被Motorola(摩托罗拉)公司开发,然后发展成了一种行业规范。

SPI设备之间使用全双工模式通信,包含一个主机和一个或多个从机。主机产生待读或待写的帧数据,多个从机通过一个片选线路 决定哪个来响应主机的请求。


SPI的接口方式

SPI总线规定了4个保留逻辑信号接口:

  • SCLK(Serial Clock):串行时钟,由主机发出
  • MOSI/SDO(Master Output,Slave Input):主机输出从机输入信号,由主机发出
  • MISO/SDI(Master Input,Slave Output):主机输入从机输出信号,由从机发出
  • SS(Slave Selected):选择信号,由主机发出,低电位有效


典型的单设备SPI接法

典型的多设备SPI接法


SPI的运行流程和时序图

SPI是串行通讯协议,数据是一位一位的传输的。SCLK提供时钟脉冲,SDI,SDO则基于此脉冲完成数据传输。数据输出通过 SDO线,数据在时钟上升沿或下降沿时改变,在紧接着的下降沿或上升沿被读取,从而完成一位数据传输,输入也使用同样原理。因此,至少需要8次时钟信号的改变(上沿和下沿为一次),才能完成8位数据的传输。
时序图如下所示:

SPI的调试要点

若出现SPI无法通信,请检查如下项目:

  • 检查线路连接是否正确,SDI和SDO连接是否一致。
  • 检查软件配置是否正常,脚位配置是否正常,脚位是否被复用。

若出现SPI数据异常,请检查如下项目:

  • 检查SDO,SDI的主从机的数据采集边沿触发方式是否一致。

版权所有丨如未注明,均为原创,转载请注明转自:https://whonee.net/spi-interface-brief-introduction.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注