单片机
返回首页

1.11.1_SPI_SPI协议介绍_P

2021-08-19 来源:eefocus

SPI主要有四根线,分别是信号线SCLK,主机输入从机输出MISO,主机输出从机输入MOSI,以及一个片选信号/CS。SPI通信还支持全双工通信,即可以同时接受和发送数据,因为MISO和MOSI是两条不同的线。


SPI同样支持连接多台设备,但是要分时操作,当操作某台设备时,将这个设备的片选引脚拉低表示选中,完成操作后再释放引脚。


所有设备的时钟线和两条数据线则是共用的,只是通过片选引脚来决定何时使用何设备。


SPI支持四种不同的传输模式,分别是SPI MODE0,1,2,3,我们经常使用的是MODE0和3,这是因为使用这两个模式时,都是在上升沿采样数据,可以不用过多的关注SCLK的电平。

SPI支持四种不同的传输模式,分别是SPI MODE0,1,2,3,我们经常使用的是MODE0和3,这是因为使用这两个模式时,都是在上升沿采样数据,可以不用过多的关注SCLK的电平。

image.png

CPOL:时钟极性选择,为0时表示SPI总线空闲时为低电平,为1表示空闲时为高电平;

CPHA:时钟相位选择,为0表示在SCLK第一个跳变沿时采样,为0表示在第二个跳变沿采样。


SPI Mode0:

CPOL和CPHA均为0,表示总线空闲电平为低电平,在第一个跳变沿采样,时序图如下所示,高位先传;

在这里插入图片描述

SPI Mode1:

CPOL=0,CPHA=1,表示总线空闲电平为低电平,在第二个跳变沿采样,时序如下。

在这里插入图片描述

SPI Mode2:

CPOL=1,CPHA=0,表示总线空闲电平为高电平,在第一个跳变沿采样,时序如下。

在这里插入图片描述

SPI Mode3:

CPOL=1,CPHA=1,表示总线空闲电平为高电平,在第二个跳变沿采样,时序如下。:

在这里插入图片描述

那么数据是怎么传输的呢?


答:假设我们想要传一个DATA,DATA=0x56=0b0101 0110,如果使用SPI Mode1,也就是CPOL = 1,CPHA = 1,也就是空闲时为高电平,在第二个跳变沿采样,那么可以推测时序如下:


在使用某个设备时,需要将这个设备的片选拉低,所以CS0位低电平,然后SCK在第二个跳变沿时采样,此时MOSI为低电平,表示bit7为1,然后第二个时钟周期SCK拉高,此时MOSI为高表示bit6为1,依次循环就将数据发送出去。

在这里插入图片描述

实际项目中,使用哪种Mode还要根据外接的设备决定,一般来说,外接设备使用MODE0和3,也就是在上升沿采样数据。

进入单片机查看更多内容>>
相关视频
  • RISC-V嵌入式系统开发

  • SOC系统级芯片设计实验

  • 云龙51单片机实训视频教程(王云,字幕版)

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

精选电路图
  • PIC单片机控制的遥控防盗报警器电路

  • 用数字电路CD4069制作的万能遥控轻触开关

  • RS-485基础知识:处理空闲总线条件的两种常见方法

  • 带有短路保护系统的5V直流稳压电源电路图

  • 如何构建一个触摸传感器电路

  • 基于ICL296的大电流开关稳压器电源电路

    相关电子头条文章