STM32--SPI通信协议(2)W25Q64简介

一、W25Q64简介

1、W25Qxx中的xx是不同的数字,表示了这个芯片不同的存储容量;

2、存储器分为易失性与非易失性,主要区别是存储的数据是否是掉电不丢失:

        易失性存储器:SRAM、DRAM;

        非易失性存储器:E2PROM、Flash;

二、硬件电路

WP:写保护,可配合内部寄存器配置,可实现硬件的写保护,低电平写保护,高电平不保护;

HOLD:数据保持,如果在SPI过程中,芯片需要干其他事就可以拉低此引脚,芯片释放总线,但芯片时序不会终止,而是记住当前状态。在需要继续通信时,HOLD置回高电平,然后继续之前的时序。相当于SPI总线进了一次中断。

三、W25Q64框图

一整个存储空间首先划分为若干块(Block)(8M分为128块),对于每一个块又划分为若干扇区(Sector)(1块分为16扇区),对于整个空间,会划分为很多页,每页256字节(1扇区分为16页)

Status Register:状态寄存器,与忙状态,写保护,读保护有关;

SPI Command & Control Logic:SPI控制逻辑,负责执行指令、地址锁存、读写数据等;

Column Decode And 256-Byte Page Buffer:256字节的页缓存(256字节的RAM存储器),会对一次性写入的数据量产生限制。写入的数据会先放在缓存区,在时序结束后,芯片再将缓存区的数据复制转移到对应的Flash里进行永久保存(在转移的过程中会置Status Register状态寄存器busy位为1)。因为Flash写入掉电不丢失的数据比较慢所以需要缓存区

四、Flash操作注意事项(掉电不丢失)

最小的擦除单元:一个扇区,也就是4096个字节 ;

最多写入一页的数据256字节:因为一个缓存区只有256字节;

五、Status Register状态寄存器

BUSY位:在写入数据,擦除数据,写状态寄存器指令时,该位置1,忽略进一步指令,除了读状态寄存器和擦除挂起指令;在写入数据,擦除数据,写状态寄存器指令结束后,该位置0。

写使能锁存位WEL:在执行写使能指令后,WEL置1,代表芯片可以进入写入操作;当设备写失能时,WEL位清0。在上电后,写失能,写入数据,擦除数据后WEL位都清0。

六、指令集

1、芯片ID

使用指令AB,90读ID就是16;使用9F来读就是4017;写程序的时候可以用来验证SPI是否可行。

2、SPI指令集

写使能、读状态寄存器1、页编程(即写数据)、按4kb的扇区擦除指令、读ID号、读取数据

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

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

相关文章

YOLOv8进阶 | 如何用yolov8训练自己的数据集(以安全帽佩戴检测举例)

前言:Hello大家好,我是小哥谈。YOLOv8是一种目标检测算法,它是YOLO(You Only Look Once)系列算法的最新版本。本节课就带领大家如何基于YOLOv8来训练自己的目标检测模型,本次作者就以安全帽佩戴检测为案例进…

C#(C Sharp)学习笔记_前言及Visual Studio Code配置C#运行环境【一】

前言 这可以说是我第一次正式的踏入C#的学习道路,我真没想过我两年前是怎么跳过C#去学Unity3D游戏开发的(当然了,游戏开发肯定是没有成功的,都是照搬代码)。而现在,我真正地学习一下C#,就和去年…

2024亿级密码泄露事件:涉及7084万个邮箱账号

近日,热门漏洞通知服务HIBP所有者特洛伊・亨特(Troy Hunt)发布博文,表示在暗网上发现了超大规模的泄漏数据集,被称为Naz.API列表。该数据集包含7084万个电子邮件地址以及超过1亿个密码凭证,至少有超过40万 …

idea创建spring项目

一、环境 window10 IDEA 2022.2.3 maven-3.8.6 二、创建spring项目 1、新建Maven项目 File -> New -> Project 然后如下图选中Maven Archetype,在Archetype,选中maven-archetype-webapp,点击Create 2、配置maven 默认是使用IDEA内…

CCReportAdv的一个配置技巧

关于CCReportAdv CCReportAdv是我们推出的基于经典WinCC/TIA WinCC Prof.的一款报表控件。它支持导入Excel模板,可以灵活生成美观的数据报表。 配置示例 CCReportAdv功能非常强大。通过简单的配置就可以生成客户需要的报表。以下面这款报表为例,参见下面…

基于SpringBoot的家电销售展示网页的设计与实现

文章目录 项目介绍主要功能截图:部分代码展示设计总结项目获取方式 🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 &…

Python||五城P.M.2.5数据分析与可视化_使用复式柱状图分析各个城市的P.M.2.5月度差异情况(上)

目录 1.北京市空气质量月度差异 2.成都市空气质量月度差异 3.上海市空气质量月度差异 五城P.M.2.5数据分析与可视化_使用复式柱状图分析各个城市的P.M.2.5月度差异情况 1.北京市空气质量月度差异 import numpy as np import pandas as pd import matplotlib.pyplot as plt#读入…

小白Linux学习笔记-Linux文件系统和磁盘管理

Linux文件系统和磁盘管理 文章目录 Linux文件系统和磁盘管理文件系统资源虚拟化文件系统的概念文件系统的类型文件系统的结构文件系统的区别文件系统的简单操作dfdu 磁盘的分割、格式化与挂载分割 fdisk磁盘格式化 mkfs挂载mount 的用法mount 的查看umount /etc/fstab 将永久生…

ReactNative实现宽度变化实现的动画效果

效果如上图所示,通过修改设备宽度实现动画效果 import React, {useRef, useEffect, useState} from react; import {Animated, Text, View, Image} from react-native;const FadeInView = props => {const fadeAnim = useRef(new Animated.Value(0)).current;React.useEff…

基于YOLOv8算法的照片角度分类项目实践

目录 一、任务概述二、YOLOv8算法简介2.1 算法改进2.2 算法特点2.3 网络结构2.4 性能比较 三、工程实践3.1 安装算法框架库ultralytics3.2 库存照片预处理3.2.1 提取所有图片3.2.2 去除冗余的相同照片3.2.3 去除无车辆照片3.2.4 随机提取指定数量的图片 3.3 照片朝向分类3.3.1 …

PyQT——蓝牙收发数据(上位机案例-小车控制器)

实现功能 由于本人水平有限,仅用了最简单的进行实现,主要功能: 蓝牙设备扫描以及刷新蓝牙连接蓝牙数据发送蓝牙数据接收 页面实现效果 代码目录结构 代码案例 代码已经全部添加注释,故不再做单独解释。 Main.py ble_contr…

Open CASCADE学习|拓扑变换

目录 平移变换 旋转变换 组合变换 通用变换 平移变换 TopoDS_Shape out;gp_Trsf theTransformation;gp_Vec theVectorOfTranslation(0., 0.125 / 2, 0.);theTransformation.SetTranslation(theVectorOfTranslation);BRepBuilderAPI_Transform myBRepTransformation(out, th…