SPI—读写串行FLASH

news2024/11/19 3:15:59

一、SPI协议简介

SPI协议是由摩托罗拉公司提出的通讯协议(Serial Peripheral Interface),即串行外围设备接口,是一种高速全双工的通信总线。它被广泛的使用在ADC、LCD等设备与MCU之间,要求通讯速率比较高的场合。

SPI物理层的特点

 SS:从设备选择信号:常称为片选信号线,也称为NSS,CS.

每个设备都有独立的这一条SS信号线,本信号线独占主机一个引脚,即有多少个从设备,就有多少条片选信号线。I2C协议中通过设备地址来寻址,选中总线上的某个设备并与其进行通讯;而SPI协议中没有设备地址,它使用SS信号线来进行寻址,当主机要选择从设备时,把该设备的SS信号线设置为低电平,即该从设备被选中,即片选有效,接着主机开始与被选中的从设备进行SPI通讯。所以SPI通讯以SS线置低电平为起始信号,以SS线被拉高作为结束信号。

SCK(Serial Clock):时钟信号线,用于通讯数据同步。

它由通讯主机产生,决定了通信的速率,不同的设备支持的最高时钟频率不一样,比如STM32的SPI时钟频率最大为fpclk/2,两个设备之间通讯时,通讯速率受限于低速设备。

MOSI(Master Output,Slave Input):主设备输出/从设备输入引脚

主机的数据从这条信号线输出,从机由这条信号线读入主机发送的数据。即这条线上的数据方向为主机到从机。

MISO(Master Iutput,Slave Output):主设备输入/从设备输出引脚

主机从这条信号线读入数据,从机的数据由这条信号线输出到主机,即在这条线上的数据方向为从机到主机。

SPI的协议层

SPI的协议层定义了通讯的起始和停止信号,数据的有效性,时钟的同步等环节。

1.1 SPI的基本通讯过程

 1.2 通讯的起始和停止信号

  • 标号①处,NSS信号线由高变低,是SPI通讯的起始信号。NSS是每个从机各自独占的信号线,当从机在自己的NSS线上检测到起始信号后,就知道自己被主机选中了,开始准备与主机通讯。
  • 在图中的标号⑥处,NSS信号由低变高,是SPI通讯的停止信号,表示本次通讯结束,从机的选中状态被取消。

1.3 数据的有效性

SPI使用MOSI及MISO信号线来传输数据,使用SCK信号线进行数据同步。

MOSI及MISO数据线在SCK的每个时钟周期传输一位数据,且数据输入输出是同时进行的。

1.4 CPOL/CPHA及通讯模式

  • 时钟极性CPOL是指SPI通讯设备处于空闲状态时,SCK信号线的电平信号(即SPI通讯开始之前,NSS线为高电平时的SCK状态)。CPOL = 0时,SCK在空闲状态时为低电平,CPOL = 1时,SCK在空闲状态为高电平。
  • 时钟相位CPHA是指数据的采样时刻,当CPHA = 0时,MOSI或MISO数据线上的信号将会在SCK时钟线的“奇数边沿”被采样。当CPHA = 1时,数据线在SCK的“偶数边沿”采样。
  • SCK信号线在空闲状态为低电平时,CPOL = 0;空闲状态为高电平时,CPOL = 1;
  • CPHA = 0,MOSI和MISO数据线的有效信号在SCK的奇数边沿保持不变。

由CPOL以及CPHA的不同状态,SPI分成了四种模式,主机与从机需要工作在相同的模式下才能正常通信,实际中采用较多的是“模式0”与“模式3”

SPI模式

CPOL

CPHA

空闲时SCK时钟

采样时刻

0

0

0

低电平

奇数边沿

1

0

1

低电平

偶数边沿

2

1

0

高电平

奇数边沿

3

1

1

高电平

偶数边沿

二、STM32的SPI特性及架构

三、SPI初始化结构体详解

四、SPI读写穿行FLASH实验

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

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

相关文章

实验室信息管理系统(LIMS)全套源码,ASP.NET Dotnet 3.5 +EXT.NET+MSSQL 2018

实验室信息管理系统(LIMS)源码 检测实验室LIMS系统全套源码 技术架构:ASP.NET Dotnet 3.5 EXT.NETMSSQL 2018 实验室信息管理系统(LIMS)能够完成实验室数据和信息的收集、分析、报告和管理的系统。它是现代实验室综合管理的一种理念、技术、方…

【Nuxt】01 什么是SSR 服务端渲染

前言 在当前的前端开发工作中,我们见到最多的三种渲染方式,如下: CSR:Client Side Rendering,客户端(通常是浏览器)渲染;SSR:Server Side Rendering,服务端…

如何一键提取微信背景图?

微信图文中的背景图,就像室内装修中的墙纸。使用不同颜色、图案的背景图能让文章更有质感,更立体,能给读者带来不一样的视觉体验。那看到其他公众号用的背景图很好看,自己也想用,怎么办?(以速排…

国货疯抢流量,B站接连爆发800万播放实现破圈

近日,“79元商战”的消息洗刷全平台,众多国货品牌的“不容易”开始被越来越多的消费者注意到,消费者们自发性地开始重新审视真正做产品的国货品牌们,并为之全力支持。有网友笑称:这“泼天的富贵”终于落到了国货品牌的…

软信天成:元数据的干货分享!建议点赞收藏

元数据(Metadata)为描述数据的数据(data about data),主要是描述数据属性(property)的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。简单来讲,元数…

golang工程——grpc一元请求与流请求

唉,难顶,像块砖一样到处搬。又跑去golang技术栈的项目俩月 本篇博客多有参考,记录一下近期学习 rpc、grpc原理 grpc 是一项进程间通信技术,可以用来连接、调用、操作和调试构建分布式程序,调用过程如同调用函数一样&…

【剑指Offer】77.按之字形顺序打印二叉树

题目 给定一个二叉树&#xff0c;返回该二叉树的之字形层序遍历&#xff0c;&#xff08;第一层从左向右&#xff0c;下一层从右向左&#xff0c;一直这样交替&#xff09; 数据范围&#xff1a;0≤n≤1500,树上每个节点的val满足 ∣val∣<1500 要求&#xff1a;空间复杂度…

深入浅出DAX:SELECTEDVALUE()

深入浅出DAX&#xff1a;SELECTEDVALUE() SELECTEDVALUE()&#xff0c;如果筛选 columnName 的上下文后仅剩下一个非重复值&#xff0c;则返回该值。否则返回alternateResult&#xff0c;语法如下&#xff1a; SELECTEDVALUE(<columnName>[, <alternateResult>] …

CorelDRAW Graphics Suite2023绿色中文版本下载教程

CorelDRAW Graphics Suite2023版是领先的一体化软件包&#xff0c;它包括多个程序&#xff0c;如CorelDRAW、Corel PHOTO-PAINT、Corel CAPTURE、Corel Font Manager、Duplexing Wizard等&#xff0c;可全部安装&#xff0c;也可根据实际需要选择进行安装&#xff0c;都是最新版…

敏捷发布列车初探2 ---- Agile Release Train

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 敏捷发布列车二、ART的特性2.敏捷团队为列车提供动力3.与共同节奏保持一致4.关键角色启用 三、ART的责任总结 敏捷发布列车 敏捷发布列车&#xff08;ART&#xff…

PHP生成二维码带图标代码实例

PHP生成二维码带图标代码实例&#xff08;PHP QR Code二维码生成类库&#xff09; public static function png($text, $outfilefalse, $levelQR_ECLEVEL_L, $size3, $margin4, $saveandprintfalse) { $enc QRencode::factory($level, $size, $margin); return $enc->…

IP地址证书:保护网站安全的重要措施

首先&#xff0c;我们需要了解什么是IP地址证书。IP地址证书是一种专门用于公网IP地址验证的数字证书&#xff0c;它主要用于解决IP地址明文传输的安全隐患和加密传输的问题。那么IP地址证书是如何保护网站的&#xff1f; 1&#xff0c;身份验证 IP地址证书用于对网站进行身份…

mysql workbench常用操作

1、No database selected Select the default DB to be used by double-clicking its name in the SCHEMAS list in the sidebar 方法一&#xff1a;双击你要使用的库 方法二&#xff1a;USE 数据库名 2、复制表名&#xff0c;字段名 3、保存链接

Swift data范围截取问题

文章目录 一、截取字符串的几种方法1. 截取前几位2. 截取后几位3. subData4. 下标截取 二、subData(in:) 报错 EXC_BREAKPOINT 一、截取字符串的几种方法 1. 截取前几位 mobileID.prefix(32)2. 截取后几位 mobileID.suffix(3)3. subData data.subdata(in: 0..<4)4. 下标…

港科夜闻|香港科技大学颁授荣誉大学院士予六位杰出人士

关注并星标 每周阅读港科夜闻 建立新视野 开启新思维 1、香港科技大学颁授荣誉大学院士予六位杰出人士。他们分别为陈晓峰先生、郑志刚博士、冯英伟先生、李慧诗女士、姚珏女士及叶毓强教授(按姓氏英文字母排序)。荣誉大学院士颁授典礼由香港科大校董会主席沈向洋教授和香港科大…

开发APP的费用是多少

开发一款APP的费用可以因多种因素而异&#xff0c;包括项目的规模、功能、复杂性、技术选择、地理位置等。北京是中国的大城市&#xff0c;APP开发的费用也会受到北京的物价水平和市场竞争的影响。以下是一些可以影响APP开发费用的因素&#xff0c;希望对大家有所帮助。北京木奇…

Codeforces Round 889 (Div. 2)A~C1题解

A. Dalton the Teacher 题目分析&#xff1a; 模拟&#xff0c;写出两个就能找出规律&#xff1a;坐在自己位子上的小孩会不高兴&#xff0c;所以统计下来cnt 发现cnt为奇数是(cnt1)/2次就能换成要求&#xff0c;偶数就是cnt/2 #include<bits/stdc.h> #pragma GCC op…

Silicon labs BG22蓝牙开发记录(一)

本篇内容适用初学者使用&#xff0c;主要介绍如何快速了解Siliconlabs EFR32BG22蓝牙芯片相关的软件资源和硬件资源&#xff0c;结合了我作为FAE 支持的一些个人看法&#xff0c;便于使用者快速入门&#xff0c;加速你们的产品实施。 本系列分为&#xff1a; Siliconlabs BG22…

世界前沿技术发展报告2023《世界信息技术发展报告》(一)世界信息技术及产业发展重要动向

&#xff08;一&#xff09;世界信息技术及产业发展重要动向 1. 概述2. 半导体技术水平持续进步&#xff0c;行业内部开始新一轮调整2.1 全球主要经济体加强半导体技术能力建设&#xff0c;推动厂商扩产2.2 先进制程技术持续发展&#xff0c;先进封装技术崭露头角2.3 消费电子半…

幸存者偏差

幸存者偏差&#xff08;英语&#xff1a;survivorship bias&#xff09;&#xff0c;另译为“生存者偏差”&#xff0c;是一种认知偏差。其逻辑谬误表现为过分关注于目前人或物“幸存了某些经历”然而往往忽略了不在视界内或无法幸存这些事件的人或物。 幸存者偏差最早来源于第…