SPI驱动(一) -- SPI协议


一、SPI硬件连接框图

SPI硬件连接框图如下:
在这里插入图片描述

1.1 引脚说明

  • SCK:Serial Clock,时钟引脚
  • DO(MOSI):Master Output, Slave Input,SPI主控发出数据,SPI从设备接收数据
  • DI(MISO):Master Input, Slave Output,SPI主控接收数据,SPI从设备发出数据
  • CS:Chip Select,片选引脚

1.2 连接说明

SPI属于主从结构。其中,SPI控制器代表主设备,一个SPI控制器上可以外接多个SPI从设备,例如可以外接 SPI Flash 、SPI OLED 等等。那么主设备如何和其中的某个从设备进行通信呢?通过片选引脚拉低(或者拉高)来选中想要通信的从设备,同一时刻只能有一个从设备被选中进行通信。

二、SPI协议

2.1 SPI传输示例

SPI协议是怎么传输数据的呢?下面以主控芯片传输一个字节数据0x56给SPI Flash为例进行说明。时序图如下:
在这里插入图片描述

  • 首先,CS0 片选引脚拉低选中SPI Flash设备。
  • 0x56 的二进制就是0b0101 0110,因此在每个SCK时钟周期,DO输出对应的电平,先传输的是最高位。
  • SPI Flash会在每个时钟周期的上升沿读取D0上的电平。

2.2 SPI工作模式

对于SPI传输示例时序图中,有两个地方是可以设置的:
(1)SCK起始位置的电平可以设置为高电平或者低电平,这个用CPOL来表示,CPOL等于0为低电平,等于1为高电平。
(2)在时钟的第一个还是第二跳变沿进行数据采样,这个用CPHA来表示,CPHA等于0为第一个时钟跳变沿,等于1为第二个时钟跳变沿。

根据 CPOL 和 CPHA 的值,可以组成SPI的4种工作模式:

CPOLCPHA模式含义
000SPI CLK初始电平为低电平,在第一个时钟沿采样数据
011SPI CLK初始电平为低电平,在第二个时钟沿采样数据
102SPI CLK初始电平为高电平,在第一个时钟沿采样数据
113SPI CLK初始电平为高电平,在第二个时钟沿采样数据

4钟模式的时序图如下:

  • 模式0时序图
    在这里插入图片描述
  • 模式1时序图
    在这里插入图片描述
  • 模式2时序图
    在这里插入图片描述
  • 模式3时序图
    在这里插入图片描述
    注意:根据这4种模式的时序图可以知道,无论是哪种模式,主控芯片在 MOSI 发出8位数据的同时,MISO 也会接收8位数据。

三、总结

本文简要介绍了SPI协议,根据 CPOL 和 CPHA 的值,可以组成4中不同工作模式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值