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

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

3天内不再提示

一文搞懂SPI通信协议

sanyue7758 来源:全栈芯片工程师 2023-03-23 16:51 次阅读

SPI是Serial Peripheral Interface的简称,是由Motorola公司推出的一种高速、全双工的总线协议,可以实现一对一、一对多芯片通信

SPI接口信号

SPI由SCLK、CS/SSEL、MOSI,MISO四根线组成,

SCLK,时钟信号,时钟频率即SPI速率,和SPI模式有关;

MOSI,主机输出,从机输入;

MISO,主机输入,从机输出;

CS/SSEL,从机设备选择,低电平有效;

多从机模式

如果主机有多个片选CS端口,可采用下图模式,主机只能获取一个从机的MISO信号,其它从机输出信号须为高阻。

a9065f2c-c957-11ed-bfe3-dac502259ad0.png

菊花链连接,节省GPIO、节省布线面积,但需要保证从机支持菊花链模式。

a9152908-c957-11ed-bfe3-dac502259ad0.png

菊花链的数据传输时序:通过移位 送达数据。

a91e5a3c-c957-11ed-bfe3-dac502259ad0.png

QSPI协议

QSPI协议读写时序:

a948e55e-c957-11ed-bfe3-dac502259ad0.jpg

注意,很多人写公众号都没说清楚,为什么SPI能做到全双工,而有些QSPI不能呢?

因为从下面时序图可看到,发送时,待发送数据的一组8bit寄存器只在下降沿向左移位(高位先发,低位补充0即可),那么必然存在另一组8bit寄存器用以在上升沿接收数据,这样就可以构成全双工,而QSPI一般用FIFO/SRAM进行数据传输,基于成本考虑,一般只能半双工。

SPI工作模式

根据时钟极性CPOL(Clock Polarity)、时钟相位CPHA(Clock Phase),SPI有4种模式,最广泛使用的是模式0和3:

a96d0d8a-c957-11ed-bfe3-dac502259ad0.png

官方时序图如下:

a974d9f2-c957-11ed-bfe3-dac502259ad0.png

a9a64adc-c957-11ed-bfe3-dac502259ad0.png

CPOL=0CPHA=0(常用)

CPOL=0,SPICLK空闲状态为低电平;

CPHA=0,SPICLK第一个边沿(上升沿)采集数据、第二个沿输出数据;

a9eb547e-c957-11ed-bfe3-dac502259ad0.png

CPOL=1,CPHA=1 (常用)

CPOL=1,SPICLK空闲状态为高电平;

CPHA=1,SPICLK第二个边沿(上升沿)采集数据、第三个沿输出数据;

aa18e70e-c957-11ed-bfe3-dac502259ad0.jpg    

CPOL=0,CPHA=1(不常用)

CPOL=0,SPICLK空闲状态为低电平;

CPHA=1,SPICLK第二个边沿(下升沿)采集数据、第三个沿输出数据;

CPOL=1,CPHA=0

(不常用)

CPOL=1,SPICLK空闲状态为高电平;

CPHA=0,SPICLK第一个边沿(下升沿)采集数据、第二个沿输出数据;





审核编辑:刘清

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

    关注

    28

    文章

    739

    浏览量

    39752
  • SPI
    SPI
    +关注

    关注

    17

    文章

    1615

    浏览量

    89666
  • 时钟信号
    +关注

    关注

    4

    文章

    374

    浏览量

    28068
  • miso
    +关注

    关注

    0

    文章

    6

    浏览量

    5377

原文标题:详解SPI通信协议

文章出处:【微信号:处芯积律,微信公众号:处芯积律】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    常用的串口通信协议SPI协议简析

    SPI(serial peripheral interface)也是一种同步串行通信协议。这里为啥要说“也”呢,回想上一篇介绍的PS/2不也是同步串行通信协议吗。SPI由一个主设备和
    发表于 07-07 09:33 3462次阅读

    一文搞懂SPI通信协议

    SPI 的英文全称为 Serial Peripheral Interface,顾名思义为串行外设接口。SPI 是一种同步串行通信接口规范,主要应用于嵌入式系统中的短距离通信。该接口由摩
    发表于 06-06 10:02 697次阅读
    一文<b class='flag-5'>搞懂</b><b class='flag-5'>SPI</b><b class='flag-5'>通信协议</b>

    fpga与spi通信协议

    fpga通过spi通信协议在与外围设备实现通信的过程中程序代码该怎么写?新手勿喷
    发表于 04-09 12:44

    SPI通信协议

    LOTO虚拟示波器采集到的数据波形并进行对比分析,方便大家的理解。SPI通信协议般只需要四根线将主控芯片与从芯片连接起来,其中四根线分别为:(1)SDO– 主设备数据输出,从设备数据输入(2)SDI– 主设备数据输入,从设备数
    发表于 08-09 07:49

    SPI是什么?SPI通信协议说明

    文章目录目录前言SPI是什么?二、SPI通信协议1.通信引脚说明2.通信格式说明3.实现形式
    发表于 02-17 06:45

    SPI通信协议讲解相关资料推荐

    了I2C通信协议大概,弄懂了I2C通信那么相信你也可以轻松弄懂的,因为I2C和SPI之间有些共同点。I2C通信
    发表于 02-17 06:09

    STM32如何模拟SPI通信协议

    STM32模拟SPI通信协议SPI的简介:SPI是串行外设接口的缩写,是种高速的,全双工、同步的串行
    发表于 02-17 08:03

    SPI通信协议通信过程是怎样的?

    SPI通信协议通信过程是怎样的?
    发表于 02-17 06:52

    SPI通信协议及实例打包

    本文是SPI通信协议及实例打包分享。
    发表于 11-16 13:24 46次下载

    SPI通信协议讲解

    SPI通信协议讲解SPI通信概念SPI通信SPI
    发表于 12-22 19:19 25次下载
    <b class='flag-5'>SPI</b><b class='flag-5'>通信协议</b>讲解

    通信协议SPI

    STM32模拟SPI通信协议SPI的简介:SPI是串行外设接口的缩写,是一种高速的,全双工、同步的串行通信总线;
    发表于 12-22 19:20 21次下载
    <b class='flag-5'>通信协议</b>:<b class='flag-5'>SPI</b>

    通信协议SPI

    方便,所以越来越多的芯片集成了这种通信协议;二、寻址方式当主设备要和某个从设备进行通信时,主设备需要先向
    发表于 12-22 19:33 5次下载
    <b class='flag-5'>通信协议</b>(<b class='flag-5'>SPI</b>)

    i2c和spi通信协议的概念与区别 I2C/SPI总线通信协议搞懂没有

    计划第四期:硬声UP主@硬件研究狮 从工程实践的角度,给大家拆解I2C与SPI。     四分钟搞定通信协议的分类 简介: 同步通信与异步通信,全双工
    的头像 发表于 06-23 17:19 3024次阅读

    Arduino UNO上的SPI通信协议

    电子发烧友网站提供《Arduino UNO上的SPI通信协议.zip》资料免费下载
    发表于 11-09 10:24 0次下载
    Arduino UNO上的<b class='flag-5'>SPI</b><b class='flag-5'>通信协议</b>

    配置芯片寄存器的SPI通信协议的verilog实现

    最近正在调试一个芯片的评估板,其中配置寄存器使用的是SPI通信协议。其实很多芯片寄存器的配置都用到了SPI通信协议,我们今天就需要实现这个SPI
    的头像 发表于 06-16 09:50 1292次阅读
    配置芯片寄存器的<b class='flag-5'>SPI</b><b class='flag-5'>通信协议</b>的verilog实现