0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

搞懂时序带你玩转SPI?

FPGA之家 来源:玩转嵌入式 作者:玩转嵌入式 2021-05-29 11:29 次阅读

1、什么是SPI?SPI是串行外设接口(Serial Peripheral Interface)的缩写,是 Motorola 公司推出的一种同步串行接口技术,是一种高速、全双工、同步的通信总线。2、SPI优点支持全双工通信

通信简单

数据传输速率块

1eda1b7e-bfcf-11eb-9e57-12bb97331649.jpg

3、缺点没有指定的流控制,没有应答机制确认是否接收到数据,所以跟IIC总线协议比较在数据可靠性上有一定的缺陷。

4、特点

(1):高速、同步、全双工、非差分、总线式

(2):主从机通信模式5、SPI电路连接

(1):SPI的通信原理很简单,它以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,有三线制和四线制之分。信号线包括SDI(串行数据输入 Serial Digital IN)、SDO(串行数据输出 Serial Digital OUT)、SCLK(时钟)、CS(片选)。

(2):SDO/MOSI – 主设备数据输出,从设备数据输入

(3):SDI/MISO – 主设备数据输入,从设备数据输出

(4):SCLK – 时钟信号,由主设备产生;(5):CS/SS – 从设备使能信号,由主设备控制。当有多个从设备的时候,因为每个从设备上都有一个片选引脚接入到主设备机中,当主设备和某个从设备通信时将需要将从设备对应的片选引脚电平拉低(一般低有效)。

1ef21878-bfcf-11eb-9e57-12bb97331649.png

6、SPI通信模式分析SPI通信有4种不同的模式,不同的从设备在出厂时配置模式已经固定, 这是不能改变的,但通信双方设备必须工作在同一模式下,所以可以对主设备的SPI模式进行配置,通过CPOL(时钟极性)和CPHA(时钟相位)来控制主设备的通信模式。 具体模式具体如下:

:CPOL=0,CPHA=0

Mode1:CPOL=0,CPHA=1

Mode2:CPOL=1,CPHA=0

Mode3:CPOL=1,CPHA=1

模式 CPOL CPHA
Mode0 0 0
Mode1 0 1
Mode2 1 0
Mode3 1 1

时钟极性CPOL是用来配置SCLK电平的有效态的;

时钟相位CPHA是用来配置数据采样是发生在第几个边沿的。 CPOL=0表示当SCLK=0时处于空闲态,所以SCLK处于高电平时有效;

CPOL=1表示当SCLK=1时处于空闲态,所以SCLK处于低电平时有效;

CPHA=0表示数据采样是在第1个边沿,数据发送在第2个边沿;

CPHA=1表示数据采样是在第2个边沿,数据发送在第1个边沿; SPI主模块和与之通信的外设通信时,两者的时钟相位和极性应该保持一致。7、SPI 时序详解CPOL=0,CPHA=0:此时空闲态时,SCLK处于低电平,数据采样是在第1个边沿,也就是SCLK由低电平到高电平的跳变,所以数据采样是在上升沿,数据发送是在下降沿。 CPOL=0,CPHA=1:此时空闲态时,SCLK处于低电平,数据发送是在第1个边沿,也就是SCLK由低电平到高电平的跳变,所以数据采样是在下降沿,数据发送是在上升沿。 CPOL=1,CPHA=0:此时空闲态时,SCLK处于高电平,数据采集是在第1个边沿,也就是SCLK由高电平到低电平的跳变,所以数据采集是在下降沿,数据发送是在上升沿。 CPOL=1,CPHA=1:此时空闲态时,SCLK处于高电平,数据发送是在第1个边沿,也就是SCLK由高电平到低电平的跳变,所以数据采集是在上升沿,数据发送是在下降沿。

注意:SPI主设备能够控制时钟信号,因为SPI通信并不像UART或者IIC通信那样有专门的通信周期、通信起始信号、通信结束信号;所以SPI协议只能通过控制时钟信号线,在没有数据交流的时候,时钟线要么是保持高电平,要么是保持低电平。 例如:工作在模式0这种时序(CPOL=0,CPHA=0),如下:

1f2a0814-bfcf-11eb-9e57-12bb97331649.png

我们来关注SCK的第一个时钟周期,在时钟的前沿采样数据(上升沿,第一个时钟沿),在时钟的后沿输出数据(下降沿,第二个时钟沿)。首先来看主器件,主器件的输出口(MOSI)输出的数据bit1,在时钟的前沿被从器件采样,那主器件是在何时刻输出bit1的呢?bit1的输出时刻实际上在SCK信号有效以前,比SCK的上升沿还要早半个时钟周期。

bit1的输出时刻与SSEL信号没有关系。再来看从器件,主器件的输入口MISO同样是在时钟的前沿采样从器件输出的bit1的,那从器件又是在何时刻输出bit1的呢。从器件是在SSEL信号有效后,立即输出bit1,尽管此时SCK信号还没有起效。 从这张图就可以很清楚的看出主从器件的bit1是怎样输出的。

1f5a253a-bfcf-11eb-9e57-12bb97331649.png

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • SPI
    SPI
    +关注

    关注

    17

    文章

    1615

    浏览量

    89600
  • IIC
    IIC
    +关注

    关注

    11

    文章

    285

    浏览量

    37801
  • SCK
    SCK
    +关注

    关注

    0

    文章

    7

    浏览量

    15949
  • miso
    +关注

    关注

    0

    文章

    6

    浏览量

    5377

原文标题:SPI怎么玩?搞懂时序,运用自如

文章出处:【微信号:zhuyandz,微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    PCB阻抗设计12问,轻松带你搞懂阻抗!

    阻抗,工程师们都接触过,但能把阻抗说清楚的工程师少之又少。阻抗看似简单,实则难以言表。   下面我们用快问快答的方式,轻松帮你搞懂阻抗! 0 1    问:什么是阻抗?   答:在有电阻、电感和电容
    的头像 发表于 01-03 08:40 613次阅读
    PCB阻抗设计12问,轻松<b class='flag-5'>带你</b><b class='flag-5'>搞懂</b>阻抗!

    AD7193如何通过spi时序图来进行模拟spi的通信编程?

    本人准备应用AD7193,现在一直无法实现AD7193 的spi通信,请问如何通过spi时序图来进行模拟spi的通信编程?
    发表于 12-21 07:36

    FPGA通过SPI对ADC配置简介(三)3线SPI配置时序分析

    AD9249的SPI控制模块包含4根信号线,即CSB1、CSB2、SDIO以及SCLK。但CSB1、CSB2可以一起由CSB来控制,实际上就是3线SPI
    的头像 发表于 12-12 10:47 1047次阅读
    FPGA通过<b class='flag-5'>SPI</b>对ADC配置简介(三)3线<b class='flag-5'>SPI</b>配置<b class='flag-5'>时序</b>分析

    FPGA通过SPI对ADC配置简介(二)-4线SPI配置时序分析

    本篇将以德州仪器(TI)的高速ADC芯片—ads52j90为例,进行ADC的4线SPI配置时序介绍与分析。
    的头像 发表于 12-11 09:05 786次阅读
    FPGA通过<b class='flag-5'>SPI</b>对ADC配置简介(二)-4线<b class='flag-5'>SPI</b>配置<b class='flag-5'>时序</b>分析

    AD9945与STM32之间通过SPI通信,通信时序怎么写?

    我最近做一个CCD的项目,需要用到AD9945,因为他的频率高,但是AD9945怎么与STM32F103外部引脚连接,他输出的12位并行数据接到哪里?还有AD9945与STM32之间通过SPI通信,通信时序怎么写?时序图如下:
    发表于 12-05 08:28

    在AD7134的SPI控制时序中,STATUS是什么意思?

    在AD7134的SPI控制时序中,这个 STATUS在手册中没有介绍,只介绍数据接口的标头,如下图所示: 工程师能不能解释一下?
    发表于 11-30 07:44

    单片机spi接口的使用方法有哪些(spi接口和串口的区别)

    如果单片机没有硬件SPI模块,或者需要额外的IO引脚来实现多个SPI设备的通信,可以使用软件SPI模拟。软件SPI通常使用GPIO口模拟SPI
    的头像 发表于 11-10 16:38 1637次阅读

    一图看懂CodeArts Governance 三大特性,带你玩转开源治理服务

    合规、网络安全、供应安全等维度消减开源软件使用风险,助力企业更加安全、高效地使用开源软件。   戳"阅 读原文",立即体验! 原文标题:一图看懂CodeArts Governance 三大特性,带你玩转开源治理服务 文章出处:【微信公众号:华为DevCloud】欢迎添加关
    的头像 发表于 10-13 17:45 216次阅读
    一图看懂CodeArts Governance 三大特性,<b class='flag-5'>带你</b><b class='flag-5'>玩转</b>开源治理服务

    一图看懂华为云CodeArts Inspector三大特性,带你玩转漏洞管理服务

    漏洞,并及时有效地完成漏洞修复工作,更好地应对潜在的安全威胁。    戳“阅读原文”,立即体验 ! 原文标题:一图看懂华为云CodeArts Inspector三大特性,带你玩转漏洞管理服务 文章出处:【微信公众号:华为DevCloud】欢迎添加关注!文章转载请注明出处。
    的头像 发表于 10-13 17:45 210次阅读

    SPI总线协议及时序图详解

    SPI,是英语 Serial Peripheral Interface 的缩写,顾名思义就是串行外围设备接口。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片
    发表于 09-22 08:10

    SPI子系统之SPI时序

    SPI timing diagram Tcsb_setup:建立时间 Tcsb_hold:保持时间 tsckl:低电平时间 tsckh:高电平时间 SCK period :Tsckl + tsckh
    的头像 发表于 07-27 10:51 1646次阅读
    <b class='flag-5'>SPI</b>子系统之<b class='flag-5'>SPI</b><b class='flag-5'>时序</b>图

    一图看懂CodeArts Board 5大特性,带你玩转看板服务

    企业的软件能力和研发效能。   戳下方“阅读原文”,立即体验 ! 原文标题:一图看懂CodeArts Board 5大特性,带你玩转看板服务 文章出处:【微信公众号:华为DevCloud】欢迎添加关注!文章转载请注明出处。
    的头像 发表于 07-06 11:45 261次阅读
    一图看懂CodeArts Board 5大特性,<b class='flag-5'>带你</b><b class='flag-5'>玩转</b>看板服务

    一文搞懂SPI通信协议

    SPI 的英文全称为 Serial Peripheral Interface,顾名思义为串行外设接口。SPI 是一种同步串行通信接口规范,主要应用于嵌入式系统中的短距离通信。该接口由摩托罗拉在20世纪80年代中期开发,后发展成了行业规范。
    发表于 06-06 10:02 688次阅读
    一文<b class='flag-5'>搞懂</b><b class='flag-5'>SPI</b>通信协议

    空降攻略!一文带你玩转2023开放原子全球开源峰会

    空降攻略!一文带你玩转2023开放原子全球开源峰会
    的头像 发表于 05-30 15:07 630次阅读
    空降攻略!一文<b class='flag-5'>带你</b><b class='flag-5'>玩转</b>2023开放原子全球开源峰会

    一图看懂CodeArts Deploy 5大特性,带你玩转部署服务

    的交付效率,显著提升交付质量!   戳“阅读原文”, 立即体验! 原文标题:一图看懂CodeArts Deploy 5大特性,带你玩转部署服务 文章出处:【微信公众号:华为DevCloud】欢迎添加关注!文章转载请注明出处。
    的头像 发表于 05-20 02:50 343次阅读
    一图看懂CodeArts Deploy 5大特性,<b class='flag-5'>带你</b><b class='flag-5'>玩转</b>部署服务