北京哪个网站做兼职比较好/济南网站推广

北京哪个网站做兼职比较好,济南网站推广,苏州知名互联网公司,商务网站建设的基本步骤SPI介绍 SPI 是英语 Serial Peripheral interface 缩写,顾名思义就是串行外围设备接口。SPI 通信协 议是 Motorola 公司首先在其 MC68HCXX 系列处理器上定义的。SPI 接口是一种高速的全双工 同步的通信总线,已经广泛应用在众多 MCU、存储芯片、AD 转换器…

SPI介绍

SPI 是英语 Serial Peripheral interface 缩写,顾名思义就是串行外围设备接口。SPI 通信协 议是 Motorola 公司首先在其 MC68HCXX 系列处理器上定义的。SPI 接口是一种高速的全双工 同步的通信总线,已经广泛应用在众多 MCU、存储芯片、AD 转换器和 LCD 之间。大部分 STM32 是有 3 个 SPI 接口,本实验使用的是 SPI2。

我们先看 SPI 的结构框图,了解它的大致功能。 

 围绕框图,我们展开介绍一下 SPI 的引脚信息、工作原理以及传输方式,把 SPI 的 4 种工作方式放在后面讲解。

SPI 的引脚信息:

MISO(Master In / Slave Out)主设备数据输入,从设备数据输出。

MOSI(Master Out / Slave In)主设备数据输出,从设备数据输入。

SCLK(Serial Clock)时钟信号,由主设备产生。

CS(Chip Select)从设备片选信号,由主设备产生。

SPI 的工作原理:在主机和从机都有一个串行移位寄存器,主机通过向它的 SPI 串行寄存 器写入一个字节来发起一次传输。串行移位寄存器通过 MOSI 信号线将字节传送给从机,从机 也将自己的串行移位寄存器中的内容通过 MISO 信号线返回给主机。这样,两个移位寄存器中 的内容就被交换。外设的写操作和读操作是同步完成的。如果只是进行写操作,主机只需忽略 接收到的字节。反之,若主机要读取从机的一个字节,就必须发送一个空字节引发从机传输。

SPI 的传输方式:SPI 总线具有三种传输方式:全双工、单工以及半双工传输方式。

全双工通信,就是在任何时刻,主机与从机之间都可以同时进行数据的发送和接收。

单工通信,就是在同一时刻,只有一个传输的方向,发送或者是接收。

半双工通信,就是在同一时刻,只能为一个方向传输数据。

SPI 工作模式 

STM32 要与具有 SPI 接口的器件进行通信,就必须遵循 SPI 的通信协议。每一种通信协议 都有各自的读写数据时序,当然 SPI 也不例外。SPI 通信协议就具备 4 种工作模式,在讲这 4 种 工作模式前,首先先知道两个单词 CPOL 和 CPHA。

CPOL,详称 Clock Polarity,就是时钟极性,当主从机没有数据传输的时候即空闲状态, SCL 线的电平状态,假如空闲状态是高电平,CPOL=1;若空闲状态时低电平,那么 CPOL = 0。

CPHA,详称 Clock Phase,就是时钟相位。在这里先科普一下数据传输的常识: 同步通信 时,数据的变化和采样都是在时钟边沿上进行的,每一个时钟周期都会有上升沿和下降沿两个 边沿,那么数据的变化和采样就分别安排在两个不同的边沿,由于数据在产生和到它稳定是需 要一定的时间,那么假如我们在第 1 个边沿信号把数据输出了,从机只能从第 2 个边沿信号去 采样这个数据。

CPHA 实质指的是数据的采样时刻,CPHA= 0 的情况就表示数据的采样是从第 1 个边沿信 号上即奇数边沿,具体是上升沿还是下降沿的问题,是由 CPOL 决定的。这里就存在一个问题: 当开始传输第一个 bit 的时候,第 1 个时钟边沿就采集该数据了,那数据是什么时候输出来的 呢?那么就有两种情况:一是 CS 使能的边沿,二是上一帧数据的最后一个时钟沿。

CPHA=1 的情况就是表示数据采样是从第 2 个边沿即偶数边沿,它的边沿极性要注意一点, 不是和上面 CPHA=0 一样的边沿情况。前面的是奇数边沿采样数据,从 SCL 空闲状态的直接 跳变,空闲状态是高电平,那么它就是下降沿,反之就是上升沿。由于 CPHA=1 是偶数边沿采 样,所以需要根据偶数边沿判断,假如第一个边沿即奇数边沿是下降沿,那么偶数边沿的边沿 极性就是上升沿。不理解的,可以看一下下面 4 种 SPI 工作模式的图。

由于 CPOL 和 CPHA 都有两种不同状态,所以 SPI 分成了 4 种模式。我们在开发的时候, 使用比较多的是模式 0 和模式 3。下面请看表 35.1.1.2.1 SPI 工作模式表。下面分别对 SPI 的 4 种工作模式中的0和1进行分析:SPI 寄存器该寄存器控制着 SPI 很多相关信息,包括主设备模式选择,传输方向,数据格式,时钟极 性、时钟相位和使能等。下面讲解一下本实验配置的位,位 CPHA 置 1,数据采样从第二个时 钟边沿开始;位 CPOL 置 1,在空闲状态时,SCK 保持高电平;位 MSTR 置 1,配置为主机模 式;位 BR[2:0]置 7,使用 256 分频,速度最低;位 SPE 置 1,开启 SPI 设备;位 LSBFIRST 置 0,MSB 先传输;位 SSI 置 1,禁止软件从设备,即做主机;位 SSM 置 1,软件片选 NSS 控制; 位 RXONLY 置 0,传输方式采用的是全双工模式;位 DFF 置 0,使用 8 位数据帧格式。

 

NOR FLASH 简介 

FLASH 是常见的用于存储数据的半导体器件,它具有容量大、可重复擦写、按“扇区/块” 擦除、掉电后数据可继续保存的特性。常见的 FLASH 主要有 NOR FLASH 和 NAND FLASH 两 种类型,它们的特性如表 35.1.2.1.1 所示。NOR 和 NAND 是两种数字门电路,可以简单地认为 FLASH 内部存储单元使用哪种门作存储单元就是哪类型的 FLASH。U 盘,SSD,eMMC 等为 NAND 型,而 NOR FLASH 则根据设计需要灵活应用于各类 PCB 上,如 BIOS,手机等。NOR 与 NAND 在数据写入前都需要有擦除操作,但实际上 NOR FLASH 的一个 bit 可以从 1 变成 0,而要从 0 变 1 就要擦除后再写入,NAND FLASH 这两种情况都需要擦除。擦除操作 的最小单位为“扇区/块”,这意味着有时候即使只写一字节的数据,则这个“扇区/块”上之前 的数据都可能会被擦除。

NOR 的地址线和数据线分开,它可以按“字节”读写数据,符合 CPU 的指令译码执行要 求,所以假如 NOR 上存储了代码指令,CPU 给 NOR 一个地址,NOR 就能向 CPU 返回一个数 据让 CPU 执行,中间不需要额外的处理操作,这体现于表 35.1.2.1.1 中的支持 XIP 特性(eXecute In Place)。因此可以用 NOR FLASH 直接作为嵌入式 MCU 的程序存储空间。

NAND 的数据和地址线共用,只能按“块”来读写数据,假如 NAND 上存储了代码指令, CPU 给 NAND 地址后,它无法直接返回该地址的数据,所以不符合指令译码要求。

若代码存储在 NAND 上,可以把它先加载到 RAM 存储器上,再由 CPU 执行。所以在功 能上可以认为 NOR 是一种断电后数据不丢失的 RAM,但它的擦除单位与 RAM 有区别,且读 写速度比 RAM 要慢得多。

FLASH 也有对应的缺点,我们在使用过程中需要尽量去规避这些问题:一是 FLASH 的使 用寿命,另一个是可能的位反转。

使用寿命体现在:读写上是 FLASH 的擦除次数都是有限的(NOR FLASH 普遍是 10 万次左 右),当它的使用接近寿命的时候,可能会出现写操作失败。由于 NAND 通常是整块擦写,块内 有一位失效整个块就会失效,这被称为坏块。使用 NAND FLASH 最好通过算法扫描介质找出 坏块并标记为不可用,因为坏块上的数据是不准确的。

位反转是数据位写入时为 1,但经过一定时间的环境变化后可能实际变为 0 的情况,反之 亦然。位反转的原因很多,可能是器件特性也可能与环境、干扰有关,由于位反转的的问题可 能存在,所以 FLASH 存储器需要“探测/错误更正(EDC/ECC)”算法来确保数据的正确性。

FLASH 芯片有很多种芯片型号,在我们的 norflash.h 头文件中有定义芯片 ID 的宏定义,对 应的就是不同型号的 NOR FLASH 芯片,比如有:W25Q128、BY25Q128、NM25Q128,它们是 来自不同的厂商的同种规格的 NOR FLASH 芯片,内存空间都是 128M 字,即 16M 字节。它们 的很多参数、操作都是一样的,所以我们的实验都是兼容它们的。

NM25Q128简介

NM25Q128 是一款大容量 SPI FLASH 产品,其容量为 16M。它将 16M 字节的容量分为 256 个块(Block),每个块大小为 64K 字节,每个块又分为 16 个扇区(Sector),每一个扇区 16 页, 每页 256 个字节,即每个扇区 4K 个字节。NM25Q128 的最小擦除单位为一个扇区,也就是每 次必须擦除 4K 个字节。这样我们需要给 NM25Q128 开辟一个至少 4K 的缓存区,这样对 SRAM 要求比较高,要求芯片必须有 4K 以上 SRAM 才能很好的操作。

NM25Q128 的擦写周期多达 10W 次,具有 20 年的数据保存期限,支持电压为 2.7~3.6V, NM25Q128 支持标准的 SPI,还支持双输出/四输出的 SPI,最大 SPI 时钟可以到 104Mhz(双输 出时相当于 208Mhz,四输出时相当于 416Mhz)。

芯片引脚连接如下:CS 即片选信号输入,低电平有效;DO 是 MISO 引脚,在 CLK 管脚 的下降沿输出数据;WP 是写保护管脚,高电平可读可写,低电平仅仅可读;DI 是 MOSI 引脚, 主机发送的数据、地址和命令从 SI 引脚输入到芯片内部,在 CLK 管脚的上升沿捕获捕获数据; CLK 是串行时钟引脚,为输入输出提供时钟脉冲;HOLD 是保持管脚,低电平有效。

STM32F103 通过 SPI 总线连接到 NM25Q128 对应的引脚即可启动数据传输。

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

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

相关文章

Java八股文(急速版)

Redis八股文 我看你在做项目的时候都使用到redis,你在最近的项目中哪些场景下使用redis呢? 缓存和分布式锁都有使用到。 问:说说在缓存方面使用 1.在我最写的物流项目中就使用redis作为缓存,当然在业务中还是比较复杂的。 2.在物流信息…

国外客户要求免费样品?我来教你如何应对

这一次的问题对外贸业务员来说是非常重要。无论你是做什么行业,无论你是做什么产品我相信这个问题对你来说超级有用。 关于发样品给客户我有四个方案来跟大家分享,我希望你能够喜欢希望你很认真的思考一下: 方法一【样品费及运费一起收】&am…

模方4.1.0新版本正式上线啦!

新增单体化自动建模,直角搭桥、复制三角形两种方式补洞等功能,还有更多功能优化,让你的三维模型更好看! 欢迎前往官网下载试用→武汉大势智慧-实景三维-云端建模-新型基础设施

效率提升利器:Automa插件的实用指南

Automa是一个chrome扩展,通过拖拽0代码实现工作流,模拟网页的各种点击、表单填写等操作,使用时点击插件脚本一键执行,或者设置定时执行,从而简化我们的工作。 功能介绍 官方文档地址:Getting started | Au…

Spring的后处理器

目录 引言 BeanFactoryPostProcessor 注意 BeanPostProcessor 引言 Spring的后处理器是spring对外开发的重要扩展点,允许我们介入到Bean的整个实例化流程来,以达到动态注册BeanDefintion,动态修改BeanDefintion,以及动态修改Be…

怎么实现在微信公众号秒杀商品的功能呢

实现微信公众号秒杀商品的功能,需要结合微信公众平台和后端开发技术。下面将介绍整个实现过程,包括前期准备、开发流程和后期运营等方面。 一、前期准备 确定秒杀商品:选择适合秒杀的商品,要求数量充足、质量良好,同时…

一次性能测试,为啥把我逼疯了?

最近,公司领导让我做下性能方面的竞品对比,作为一个性能测试小白的我,突然接到这样的任务,下意识发出大大的疑问。 整理好心情,内心想着“领导一定是为了考验我,才给我这个任务的”,开始了这一…

electron使用electron-builder macOS windows 打包 签名 更新 上架

项目文件大概目录 1. 安装electron-builder 2. macOS 2.1 创建 Certificates, Identifiers & Profiles Devices 在mac上安装xcode,打开xcode,然后按以下步骤操作。 (1) xcode的菜单栏:xcode > settings。登录apple id。 (2) 登录后…

【操作系统】文件系统之文件共享与文件保护

文章目录 文件共享硬链接软链接 文件保护口令保护加密保护访问控制 文件共享 为了实现文件的共享,引入了“计数器”字段,当一个文件每被一个用户所共享,那么计数器就加一。如果一个用户删除文件,计数器相应的减一。如果计数器为0…

uniapp+vue3使用pinia,安卓端报错白屏

报错内容: reportJSException >>>> exception function:createInstanceContext, exception:white screen cause create instanceContext failed,check js stack ->at useStore2 (app-service.js:1487:15)at (app-service.js:1714:17)at (app-serv…

认识.NET Aspire:高效构建云原生应用的利器

简介 在几天前的.NET 8发布会上,来自微软的Glenn Condron和David Fowler为我们演示了.NET Aspire,在Visual Studio的帮助下,它展现出了惊人的开发效率。 短短的十分钟内,David现场演示了如何轻松创建了一个具有服务发现&#xf…

Unity模拟薄膜干涉效果

Unity制作薄膜干涉效果,色彩斑斓的黑色石头 大家好,我是阿赵。   这次来做一个模拟薄膜干涉的彩色效果,Shader是使用ASE来连接,也算是ASE做复杂一点的效果的一个例子吧。 一、什么是薄膜干涉 以下解释来源于百度百科&#xff1…

【开源】基于Vue和SpringBoot的微信小程序的音乐平台

项目编号: S 055 ,文末获取源码。 \color{red}{项目编号:S055,文末获取源码。} 项目编号:S055,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、系统展示 四、核心代码4.1 查询单首…

Oracle(2-4)Naming Method Configuration

文章目录 一、基础知识1、OV of Naming Methods 命名方法的OV2、Five Key Parameters 连接数据库的五个关键参数 二、基础操作1、tnsnames.ora网络名配置 Naming Method Configuration 数据库网络命名配置 目标1: 描述主机命名和本地服务名称解析之间的区别使用Orac…

Java-super

【1】super:指的是: 父类的 【2】super可以修饰属性,可以修饰方法; 在子类的方法中,可以通过 super.属性 super.方法 的方式,显示的去调用父类提供的属性,方法。在通常情况下,super.可以省…

如何利用 AI 写一本书并实现被动收入

如何每个月写一本能赚 5000 美元的书?不少人不知道如何在一周内写作和出版一本书 这里有个教程教你如何利用 AI 写一本书并实现被动收入 [收藏起来以备后用] 推出书友智能写作工具:Bookwiz 不用花几年时间独自写作一本小说,人工智能可以作…

使用activiti部署提示不是 ‘NCName‘ 的有效值

排查发现是整个流程图的,流程名称没有填写 修改之后就可以了

Taro编译警告解决方案:Error: chunk common [mini-css-extract-plugin]

文章目录 1. 背景2. 问题分析3. 解决方案3.1 更新 Taro 版本3.2 更新相关依赖3.3 调整 webpack 配置3.4 检查依赖版本 4. 拓展与分析4.1 拓展4.2 避免不必要的依赖4.3 查阅 Taro GitHub 仓库 5. 总结 🎉欢迎来到Java学习路线专栏~Taro编译警告解决方案:E…

windows如何查看自己的ip地址

windows如何查看自己的ip地址 1.打开控制面板 2.进入网络和internet 3.进入网络共享中心 4.点击以太网进入网络详情页,或邮件已连接的网络,点击属性 5.查看ipv4地址就是当前机器ip

美容仪器经营小程序商城的作用如何

美容仪器可以包含剃须刀、微针仪、微晶笔等,除了美容美业机构需要外,在家庭中也有不小的需求,对产品经营商家来说除了满足客户线下订购的需求外,还需要线上拓展更广的客群及多场景客户在线消费。 入驻第三方平台是商家们首先考虑…