SPI接口协议详解

news2024/11/24 9:21:53

一、SPI总线简介

SPI总线是摩托罗拉公司开发的一种高速、全双工、同步的通信总线,它通常由四条线组成:

  • CS 片选信号
  • SCLK 时钟信号
  • MOSI 主机输出从机输入接口
  • MISO 主机输入从机输出接口

SPI分为主机和从机,主机提供通信所需的时钟信号。

二、SPI四种工作模式

SPI最重要的两个参数分别是时钟的极性(CPOL)和相位(CPHA)。

  • CPOL:Clock Polarity 决定时钟空闲状态电平是高电平还是低电平
    CPOL = 0:时钟空闲时为低电平,时钟高电平时有效
    CPOL = 1:时钟空闲时为高电平,时钟低电平时有效
  • CPHA:Clock Phase 决定数据传输采样和移位方式
    CPHA = 0 :在时钟信号SCK的第一个跳变沿采样
    CPHA = 1 :在时钟信号SCK的第二个跳变沿采样

时钟和相位的不同组合,形成了SPI的四种工作模式:

模式CPOLCPHA
Mode 000
Mode 101
Mode 210
Mode 211

我们以stm32的spi总线为例:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9OwUvZlb-1684380768088)(https://note.youdao.com/yws/res/c/WEBRESOURCE6fa0a4da0531edd907132ba7f118eecc)]

Mode 0:CPOL为0,CPHA为0时,数据在时钟第一个跳变沿(上升沿)采样;
Mode 1:CPOL为0,CPHA为1时,数据在第一个跳变沿(下降沿)采样;
Mode 1:CPOL为1,CPHA为0时,数据在第一个跳变沿(下降沿)采样;
Mode 1:CPOL为1,CPHA为1时,数据在第一个跳变沿(上升沿沿)采样;

模式相位极性采样SCL空闲电平
Mode 0CPOL = 0, CPHA = 0上升沿低电平
Mode 1CPOL = 0, CPHA = 1下降沿低电平
Mode 2CPOL = 1, CPHA = 0下降沿高电平
Mode 2CPOL = 1, CPHA = 1上升沿高电平

SPI slave设备SCL在空闲的时候是高电平还是低电平,决定了CPOL是0还是1。

三、SPI全双工和半双工

在使用stm32等mcu时,SPI通常会有全双工、半双工的选项。所谓全双工就是SPI在发送数据的同时也能够接收数据,所谓半双工就是SPI的发送和接收分时,即发送的时候不能接收数据,接收数据的时候不能发送数据。

四、应用电路

一对一:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RNS6qVX4-1684380768089)(https://note.youdao.com/yws/res/3/WEBRESOURCEbcfee40b7104f052142da5dfae066243)]

一对多:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-K9y2IF3R-1684380768089)(https://note.youdao.com/yws/res/2/WEBRESOURCEb86351644c9f57c7454e667e86b48802)]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/539649.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

盘点那些让人笑疯了的520创意文案!

520,一场关于爱情和狗粮的龙卷风快来了: 玫瑰花,涨价了; 民政局,周末要加班; 肯德基,推出了萌宠玩具套餐; 很多人,站在风里等那没影儿的爱情。 今天原本计划是要写一…

【JAVA程序设计】(C00137)基于SSM(非maven)的校园BBS论坛系统

基于SSM(非maven)的校园BBS论坛系统 项目简介项目获取开发环境项目技术运行截图 项目简介 本项目为基于SSM的校园BBS论坛管理系统包含前后台,前台为普通用户登录,后台为管理员登录; 管理员角色包含以下功能&#xff1…

使用taro+canvas实现微信小程序的图片分享功能 | 京东云技术团队

业务场景 二轮充电业务中,用户充电完成后在订单详情页展示订单相关信息,用户点击分享按钮唤起微信小程序分享菜单,将生成的图片海报分享给微信好友或者下载到本地,好友可通过扫描海报中的二维码加群领取优惠。 使用场景及功能&a…

网站在腾讯云备案的要求条件说明

腾讯云网站备案要求首先你有一个需要备案的域名,域名实名认证信息和备案主体相同;在腾讯云有一台符合备案条件的云服务器、轻量应用服务器等云产品;然后根据备案主体所在省份地区,符合当地的通信管理局要求。下面腾讯云百科来详细…

相见恨晚的Matlab编程小技巧(4)-程序运行太慢了咋解决——合理使用循环语句(2)

上一篇博客介绍了通过向量化运算、预分配空间两种常用的方式提高代码的运行效率。实际上,matlab还有几种内置函数来避免循环语句的使用,分别为arrayfun、cellfun以及structfun函数。由于这几种函数需要用到匿名函数以及函数句柄的概念,很多人…

厚积薄发|迭代为什么叫冲刺?

上士闻道,勤而行之;中士闻道,若存若亡;下士闻道,大笑之。不笑不足以为道。–《道德经》 软件工程从原始的作坊式工作方式,经过了哪些思考、哪些方案的试探,才在不断地尝试与改善后,走…

E. Border(裴蜀定理)

Problem - E - Codeforces 太空人纳塔莎抵达了火星。她知道火星人非常贫穷。为了保障火星公民更好的生活,他们的皇帝决定向每个游客征收税费。纳塔莎是地球的居民,因此她必须支付进入火星领土所需的税费。 火星上有n种纸币面额:第i种纸币的面…

TTL、 RS-232,RS-485的区别

TTL、 RS-232,RS-485的区别 参考:【gt】TTL, RS-232,RS-485的区别 前言:串口、UART口、COM口、USB口是指的物理接口形式(硬件)。而TTL、RS-232、RS-485是指的电平标准(电信号)。 TTL :全双工 ,逻辑0对应…

深度学习实战30-AIGC项目:自动生成思维导图文件,解放双手

大家好,我是微学AI,今天给大家介绍一下深度学习实战30-AIGC项目:自动生成思维导图文件,解放双手,思维导图是一种常见的工具,用于将复杂的信息和概念以图形化方式展示出来。AIGC项目旨在将这种思维导图的创建…

GNU C 语言的常用扩展

本文摘自《奔跑吧 Linux 内核(第二版)》2.2 Linux 内核中常用的 C 语言技巧 读到这本书的这一小节时,感觉其中不少技巧在项目中有遇到过,有必要做个笔记,方便以后查阅。 文章目录 前言1.语句表达式2.变长数组3. case 的…

Linux内核(十五)sysrq 详解 II —— 代码框架详解

文章目录 sysrq模块初始化流程图sysrq模块代码详解sysrq产生kernel crash事件流程sysrq 整体框架图sysrq 框架中添加自定义实例 Linux 版本:Linux version 3.18.24 sysrq模块初始化流程图 sysrq模块源码路径:linux-3.18.24.x/drivers/tty/sysrq.c 编译…

Unity3D :Animator Controller

推荐:将 NSDT场景编辑器 加入你的3D工具链 3D工具集: NSDT简石数字孪生 Animator Controller Animator Controller 允许您为角色或对象安排和维护一组动画剪辑以及关联的动画过渡。在大多数情况下,拥有多个动画并在满足某些游戏条件时在这些…

就业内推 | 国企专场,HCIE、CCIE认证优先,最高20k*15薪

01 银河互联网电视有限公司 🔷招聘岗位:网络运维工程师 🔷职责描述: 1、负责IDC网络方向的运维服务; 2、负责日常紧急变更,撰写上线变更方案等文档工作; 3、负责应急问题处理、控制变更风险&am…

CAN周期波动优化方法

摘要: 如果遇到报文周期偏大的问题该从何下手,或者说有哪些解决办法呢? 对于车载控制器来说,CAN周期的波动通常是有严格的标准,国标要求如下,基于国标,各个主机厂在这一块稍微有些差异&#xf…

遇到系统无法访问此文件问题怎么办?

昨天我整理了一下自己喜欢的照片,然后将其分门别类地归纳起来,然后将其复制到了另一个硬盘做了一下简单的备份。后面又想到了之前在某篇文章中貌似提到过什么异地备份的说法,一想到自己的OneDrive中还有点空间,所以就想把它们存到…

记一次docker迁移目录后oracle11g启动报错问题

迁移docker目录后启动oracle报错: 容器启动失败,无法查看日志,分析是文件目录权限问题,迁移后的目录是/home/docker,因此执行chmod -R 777 /home/docker ,给迁移后目录全局权限。 然后启动容器,发现可以启…

基层管理岗和技术岗如何抉择?

基层管理岗和技术岗如何抉择? 体制内,现为技术研发岗,33岁,本想沿着现在的技术序列走,到时间再申请专家,但近期发现专家没有调配资源的能力,没有办法组建团队。现纠结是否争取管理路线。 技术…

【AIGC】ChatGPT联动脑机接口实验,用脑电波回邮件

国外某公司发现,ChatGPT已经可以用于脑机接口实验了。不过也有眼尖的网友点出:这个过程是不是提前预设好回复邮件的prompt,非常重要。 ChatGPT,已经可以用于脑机接口实验了! 近日,Araya公司的一个团队&am…

代码随想录-链表

基础知识 链表是一种通过指针串联在一起的线性结构。在内存中不是连续分布的,分配机制取决于操作系统内存管理。 类型 三种类型:单链表、双链表、循环链表 单链表:每个节点由两部分组成,数据域和指针域(存放指向下…

注解与反射

1、注解(Annotation) 1.1、何为注解? 注解(Annotation)是从JDK5.0开始引入的技术,以注解名在代码中存在,例如: Override:限定重写父类方法,该注解只能用于方…