【STM32】W25Q64 SPI(串行外设接口)

news2024/9/22 19:38:03

一、SPI通信

0.IIC与SPI的优缺点

https://blog.csdn.net/weixin_44575952/article/details/124182011

1.SPI介绍

同步(有时钟线),高速,全双工(数据发送和数据接收各占一条线)

1)SCK:时钟线-->SCLK,CLK,CK--->等价于IIC的SCK

2)MOSI(主机输出从机接收),MISO(主机接收从机输出):DO(Data Output),DI(Data Input)--->等价于IIC的SDA

3)SS(片选):NSS(Not Slave Select)-->低电平有效,CS(Chip Select)-->专门进行主机和该指定从机的通信线路(可能不只一条)

4)SPI只接受:一主多从

5)SPI没有应答数据

DO,DI的区别

先确定芯片的身份(主机/从机)

2.硬件电路

1)SCK是主机控制,SCK是主机输出,SCK是从机接收

2)MOSI(主机输出从机接收)

3)MISO(主机接收从机输出)

4)SS:从机选择线(低电平有效)

3.移位示意图

SPI的数据收发:基于字节交换

如果单纯想要接收或者发送—---则将接收或者发送的数据自动屏蔽掉即可

只发送,只接收,既发送既接收

4.SPI时序基本单元

1.起始条件

SS低电平有效,通信时间段内一直保持低电平

起始条件:SS从高电平切换到低电平

2.终止条件

终止条件:SS从低电平切换到高电平

3.交换一个字节(模式1)

模式1:第一个边沿放数据,也可以描述成高电平放数据,第二个边沿采集数据,也可以描述成低电平采集数据(采集数据时数据不能更改)

下降沿采样(将数据读入寄存器中)

4.交换一个字节(模式3)

与模式1的区别:SCK极性取反(CPOL=1)

5.交换一个字节(模式0)

相比于模式1,数据输出快了半个时钟

上升沿采样(将数据读入寄存器中)

6.交换一个字节(模式2)

与模式0的区别:SCK极性取反(CPOL=1)

7.注意点:

1)CPOL:用于设置极性(1表示高电平有效,0表示低电平有效)

2)CPHA:不是用于决定上升沿读取还是下降沿读取,而是决定第几个周期进行采样。

3)一般如果我们想要接收数据&读取数据,则我们可以随便写入&读出一个值即可,其他不用理会。(我们一般发送0xff或者0x00)

5.SPI时序

1.发送指令

使用模式0(在时序开始前存放数据,在上升沿读取数据)

发送0x06(芯片公司自己定义)--->W25Q64是写使能

接收到0xff不需要看(因为我们目的是主机发送给从机,所以从机传输的数据是什么无所谓)

2.指定地址写

1)向SS指定的设备,发送写指令(0x02),

2)随后在指定地址(Address[23:0])下,写入指定数据(Data

由此图可知要在地址为:0x123456下写入0x55这个数据

3.指定地址读

1)向SS指定的设备,发送读指令(0x03),

2)随后在指定地址(Address[23:0])下,读取从机数据(Data

二、单片机中用到的存储器

1.物理层存储器

1)磁存储原理:磁带,软盘,机械硬盘(磁盘)

2)光刻存储:DVD

3)半导体存储:EEPROM,NandFlash,NorFlash

2.Nand和Nor的差异

(1)Nand容量大,价格低,需要按块访问(不能按字节访问),需要专用时序接口访问(不能直接接到地址总线上)
(2)Nor容量小,价格高,按块擦和写、按字节读需要专用时序接口访问

3.单片机系统常用存储解决方案

(1)单片机自身代码:存储在内部Flash中,本质是NorFlash
(2)存少量掉电不丢失数据,用EEPROM(一般都是比较小)--》IIC通信(速度较慢),典型24C02
(2)存中容量掉电不丢失数据,用SPINorFlash(使用SPI是为了减少引脚)--》SPI通信(速度比IIC快),一般64k-32MB范围
(3)存大容量掉电不丢失数据,用SPINandFlash,一般32MB-1GB范围
(4)要便于插拔和扩展,用TF/SD卡,U盘等,一般容量在GB级别。
(5)现在还有新型的SDNand,就是芯片封装的SD卡,容量在nMB-1GB级别。
(6)更大容量板载存储,用eMMC芯片,一般容量4GB-256GB级别
(7)STM32内部Flash可以开放给程序用,存储少量掉电不丢失数据。

4、存储器总结

(1)多种可用,根据产品特点和需求选择,重点考虑:性价比、容量、寿命、速度、可靠性等因素,大多数行业都有选型惯例。
(2)程序员不必过多关心内部存储颗粒特性,更多关心编程接口即可

三、W25Q64

1.W25Q64简介

1)AT24C存储容量是KB级别的,W25Q64是MB级别

2)存储容量:24位地址

2.硬件电路

3、W25Q64框图

1)W25Q64使用的存储空间是8MB(实际上可以使用16MB)-->所以地址从:0x00 00 00到0x7f ff ff

2)存储空间的划分:先划分为若干块,在划分为若干扇区,最后划分为若干页

1.分为Block

将8MB/128Block分为64KB(每一个大小为64KB,0-127)

2.分为Sector

将64KB/16分为4KB

3.分为page

将4K/25bit分为16bit

4.其他部分

SPI控制器,状态寄存器,数据缓存区

5.Flash操作注意事项

四、SPIFlash(W25Q64)数据手册解读

1、主要SPIFlash厂家

(1)SPIFlash本质:SPI接口芯片+内部存储颗粒(Nand,Nor)
(2)台湾:Winbond华邦(W开头)、MXIC旺宏(M开头)
(3)国内:GD兆易创新(GD开头)

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

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

相关文章

软件数据采集使用代理IP的好处用哪些?

随着互联网的快速发展,越来越多的企业开始通过软件数据采集来获取目标客户的信息。然而,在进行数据采集的过程中,由于不同网站的访问规则和限制,经常会遇到一些问题。这时候,使用代理IP就可以很好地解决这些问题。下面…

震惊!这个网站几分钟就能制作出电子画册

一直以来,制作电子画册都是一项繁琐且耗时的任务,需要专业的设计技能和大量的时间。 但是现在,有了这个神奇的网站,FLBOOK在线制作电子杂志平台。一切都变得如此简单!它不仅提供了丰富的模板和素材,还支持在…

封装实现unordered_map和set

什么是哈希思想 首先哈希是一个关联式容器,各个数据之间是具有关系的,和vector那些序列式容器不一样。 首先unordered_map中的迭代器是一个单向的迭代器。 其次在unorderede_map和set中是无序的(因为底层不是红黑树,而是哈希了…

接口自动化项目落地之HTTPBin网站

原文:https://www.cnblogs.com/df888/p/16011061.html 接口自动化项目落地系列 找个开源网站或开源项目,用tep实现整套pytest接口自动化项目落地,归档到电子书,作为tep完整教程的项目篇一部分。自从tep完整教程发布以后&#…

【广州华锐互动】VR虚拟现实技术助力太空探险:穿越时空,探索宇宙奥秘

随着科技的不断发展,虚拟现实(VR)技术已经逐渐走进我们的生活。在教育领域,VR技术的应用也日益广泛,为学生提供了更加生动、直观的学习体验。本文将以利用VR开展太空探险学习为主题,探讨如何将这一先进技术…

3D 纹理渲染如何帮助设计师有效、清晰地表达设计理念

在线工具推荐: 三维数字孪生场景工具 - GLTF/GLB在线编辑器 - Three.js AI自动纹理化开发 - YOLO 虚幻合成数据生成器 - 3D模型在线转换 - 3D模型预览图生成服务 定义 3D 渲染可视化及其用途 3D 可视化是一种艺术形式。这是一个机会。这是进步。借助 3D 纹理…

解决企业图纸管理混乱的四大方法

随着企业业务的快速发展,图纸作为企业生产过程中不可或缺的一部分,其管理也变得越来越重要。然而,很多企业在图纸管理方面存在很多问题,其中最普遍的问题就是图纸混乱。那么,如何解决企业图纸混乱的问题呢?…

我买了个AI员工,凌晨5点喊我起床,搞了篇全网40万+的爆款

大家好我是二狗,是夕小瑶科技说编辑部的一名作者。 前天早上凌晨5点左右的时候,我被尿憋醒了,起来上了个厕所。 就在我准备躺下接着睡的时候,顺手看了一眼手机。 咦?屏幕上弹出了一条邮件📮推送,是我们编…

系列八、Callable接口

一、Callable vs Runnable (1)Callable接口有返回值,Runnable接口无返回值; (2)Callable接口会抛异常,Runnable接口不会抛异常; (3)落地方法不一样&#xff0…

JOSEF 同步检查继电器 JT-1 额定电压100V 柜内固定安装,板前接线

系列型号 JT-1同步检查继电器; DT-1同步检查继电器; JT-3同步检查继电器; DT-3同步检查继电器; DT-1/200同步检查继电器; DT-1/160同步检查继电器; DT-1/130同步检查继电器; DT-1/120同步检查继电器; DT-1/90…

Sentinel 系统规则 (SystemRule)

Sentinel 是面向分布式、多语言异构化服务架构的流量治理组件,主要以流量为切入点,从流量路由、流量控制、流量整形、熔断降级、系统自适应过载保护、热点流量防护等多个维度来帮助开发者保障微服务的稳定性。 SpringbootDubboNacos 集成 Sentinel&…

js的高级

js js 的数组数组是什么为什么要使用数组数组的简单使用数组是按照顺序保存的,所以每个数据都有自己的编号数组的取值方法遍历数组数组的元素求和数组的最大值和最小值数组的增删改查操作数组的增加数组的筛选数组的删除js的函数 案例: 九九乘法表 数组…

在电脑PC端可以分类记笔记的软件选择哪个?

选择用电脑来记录笔记是比较便捷的,电脑屏幕比较大,操作起来比较便捷。但是很多人用电脑来记录笔记,通常会使用电脑上自带的记事本、文档记事工具来整合笔记,打开文档记事本类的软件,密密麻麻的文字呈现出来。 选择用…

社交媒体驱动的独立站流量增长:YouTube引流技巧

随着互联网的不断发展,视频内容在网上变得越来越受欢迎。YouTube作为世界上最大的视频分享平台之一,成为了吸引流量和观众的理想场所。对于跨境卖家来说,利用YouTube来增加独立站流量是一种有效的策略,可以增加知名度、吸引潜在客…

共享文件夹中无法打开文件怎么办

近年来,共享文件夹在企业和个人之间的使用越来越普遍。然而,许多用户常常会遇到一些问题,例如共享盘里的文件有的打不开。在本文中,我们将深入探讨这个问题,并为您提供解决方法。 首先,导致共享文件夹中文…

NX二次开发UF_CAM_ask_doc_template_name 函数介绍

文章作者:里海 来源网站:里海NX二次开发3000例专栏 UF_CAM_ask_doc_template_name Defined in: uf_cam.h int UF_CAM_ask_doc_template_name(const char * * doc_template_filename ) overview 概述 This function provides the name of the file th…

【JS】BMI身体质量指数计算工具

😏★,:.☆( ̄▽ ̄)/$:.★ 😏 这篇文章主要介绍BMI身体质量指数计算工具的JS实现。 学其所用,用其所学。——梁启超 欢迎来到我的博客,一起学习,共同进步。 喜欢的朋友可以关注一下,下次…

【dc-dc】世微 电动车摩托车灯 5-80V 1.2A 一切二降压恒流驱动器AP2915

产品描述 AP2915 是一款可以一路灯串切换两路灯串的降压恒流驱动器,高效率、外围简单、内置功率管,适用于5-80V 输入的高精度降压 LED 恒流驱动芯片。内置功率管输出最大功率可达 12W,最大电流 1.2A。AP2915 一路灯亮切换两路灯亮,其中一路灯…

仅需1分钟,搭建一个你自己的工具站

{alert type"info"} 站长工具在工作中应该会有很多人使用,比如说 JSON格式化,UUID生成器,密码生成、URL编码等 今天给大家分享一个英文版的IT-TOOL的搭建教程。 是个开源的项目,地址:https://github.com/Cor…

140.【鸿蒙OS开发】

鸿蒙开发 (一)、初识鸿蒙1.初识鸿蒙(1).移动通讯技术的发展(2).完整的鸿蒙开发 (二)、鸿蒙系统介绍1.鸿蒙系统的官方定义(1).鸿蒙操作系统概述(2).鸿蒙的生态 2.鸿蒙系统的特点3.鸿蒙和安卓的对比4.鸿蒙开发的发展前景 (三)、鸿蒙开发准备工作1.鸿蒙OS的完整开发流程2.注册并实…