您的位置 首页 博主推荐

SPI通信四种模式SPI的相位(CPHA)和极性(CPOL)

SPI通信四种模式SPI的相位(CPHA)和极性(CPOL)

在SPI是串行通讯协议下,数据是一位一位的传输的。这就是SCLK时钟线存在的原因,由SCLK提供时钟脉冲,SDO则基于此脉冲完成数据传输。数据输出通过 SDO线在时钟上升沿或下降沿时改变,完成一位数据传输。输入也使用同样原理。在至少8次时钟信号的改变(上沿和下沿为一次),就可以完成8位数据(一个字节数据)的传输。

在一个基于SPI的设备中,至少有一个主控设备。这样传输的特点:与普通的串行通讯不同,普通的串行通讯一次连续传送至少8位数据,而SPI允许数据一位一位的传送,甚至允许暂停。当没有时钟跳变时,从设备不采集或传送数据。主设备通过对SCLK时钟线的控制可以完成对通讯的控制。因为SPI的数据输入和输出线独立,所以允许同时完成数据的输入和输出。不同的SPI设备的实现方式有所不同,主要是数据改变和采集的时间不同,在时钟信号上沿或下沿采集有不同定义。

如果在项目中只用到数据输出模式,则SPI可串行3线方式进行通信:一条时钟线SCLK,一条输出控制线CS,一条数据输出线SDO。

SPI有四种通讯模式,当spi通讯的时候只能选择其中一种,逻辑分析仪的通讯设置也只能是设置为其中的一种(编程的时候选择的那一种) 。

spi四种模式SPI的相位(CPHA)和极性(CPOL)分别可以为0或1,对应的4种组合构成了SPI的4种模式(mode)

Mode 0 CPOL=0, CPHA=0

Mode 1 CPOL=0, CPHA=1

Mode 2 CPOL=1, CPHA=0

Mode 3 CPOL=1, CPHA=1

时钟极性CPOL: 即SPI空闲时,时钟信号SCLK的电平(1:空闲时高电平; 0:空闲时低电平)

时钟相位CPHA: 即SPI在SCLK第几个边沿开始采样(0:第一个边沿开始; 1:第二个边沿开始)。SPI主模块和与之通信的外设备时钟相位和极性应该一致。

sd卡的spi常用的是mode 0 和mode 3,这两种模式的相同的地方是都在时钟上升沿采样传输数据,区别这两种方式的简单方法就是看空闲时,时钟的电平状态,低电平为mode 0 ,高电平为mode 3。

https://img-blog.csdn.net/20170829223210235?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveXVhbm1laXhpYW5n/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center

(注意红色框)

如果CPOL=0, CPHA=0 ,则miso数据是0x83(10000011)

如果CPOL=0, CPHA=1 ,则miso数据是0x07(00000111)

主设备配置SPI接口时钟的时要弄清楚从设备的时钟要求,因为主设备的时钟极性和相位都是以从设备为基准的。因此在时钟极性的配置上一定要搞清楚从设备是在时钟的上升沿还是下降沿接收数据,是在时钟的下降沿还是上升沿输出数据。

注意:来自网络整理

 

版权所有,如未注明,均为原创,转载请注明
齐东汽车电子博客 qidongyy.com
本文标题:SPI通信四种模式SPI的相位(CPHA)和极性(CPOL)
如有疑问:请转到这里联系我
网站建设:推荐老薛主机-优质海外主机服务商

热门文章