• 正文
  • 相关推荐
申请入驻 产业图谱

飞凌嵌入式ElfBoard-spi编程示例之spi硬件原理

08/01 16:26
201
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

概述

SPI(Serial Peripheral Interface),是一种高速串行全双工的接口。最早由Motorola首先提出的,采用主从模式(Master—Slave)架构,支持一个或多个Slave设备。

接口

SPI的通信原理很简单,它以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,需要至少4根线,事实上3根也可以(单向传输时)。也是所有基于SPI的设备共有的,它们是MOSI(主出从入)、MISO(主入从出)、SCLK(时钟)、CS(片选)。

时钟信号只由主设备控制,用于时钟同步。在一主多从模式下,每个从设备都有一条独立的CS信号线,如果要和特定的从机进行通讯,可以将相应的CS(下图使用NSS表示)信号线拉低。SPI接口为收发为双全工串行方式传输,收发同步,主设备发出一位给从设备时,从设备也发出一位给主设备。一主多从情况如下图:

工作模式

SPI具有4种工作方式,时钟极性(CPOL)和相位(CPHA)共同决定读取数据的方式:

CPOL用来决定SCLK空闲时的电平:CPOL=0,空闲时为低电平;CPOL=1,空闲时为高电平

CPHA用来决定采样时刻:CPHA=0,每个周期的第一个时钟沿采样;CPHA=1,每个周期的第二个时钟沿采样。

设定 空闲时电平状态 数据采样
MODE0: CPOL=0,CPHA=0 低电平 每个时钟周期第一个沿采样
MODE1: CPOL=0,CPHA=1 低电平 每个时钟周期第二个沿采样
MODE2: CPOL=1,CPHA=0 高电平 每个时钟周期第一个沿采样
MODE3: CPOL=1,CPHA=1 高电平 每个时钟周期第二个沿采样

 

相关推荐