W25Q64Flash芯片STM32操作

article/2025/8/22 3:32:21

1、W25Q64Flash芯片介绍

通讯方式:SPI通讯

大小:8M(Byte)   (128块(Block),每块64K字节,每块16个扇区(Sector),每个扇区4K字节,每个扇区16页,每页256个              字节)

特点:Flash芯片内的数据只能由1变0,不能由0变1。

引脚: 

               

              CS:CS为片选管脚,低电平有效。上电之后,在执行一条新的指令之前,必须让/CS管脚先有一个下降沿。 

              DO(MISO:DO为串行数据输出引脚,在CLK(串行时钟)管脚的下降沿输出数据。

              WP:WP为写保护管脚,有效电平为低电平。高电平可读可写,低电平仅仅可读。

              DI(MOSI):DI为串行数据输入引脚,数据、地址和命令从DI引脚输入到芯片内部,在CLK(串行时钟)管脚的上升沿捕获捕获数据。

              CLK(SLCK):CLK为串行时钟引脚。SPI时钟引脚,为输入输出提供时钟脉冲。

              HOLD:HOLD为保持管脚,低电平有效。当CS为低电平,并且把HOLD拉低时,数据输出管脚将保持高阻态,并且会忽略数据输入管脚和时钟管脚上的信号。把HOLD管脚拉高,器件恢复正常工作。

               VCC:电源2.7V~3.6V。

               GND:地。

W25Q64内部框架图:

2、W25Q64Flash工作方式

       2.1 W25Q64 SPI数据传输时序

W25Q64支持SPI数据传输时序模式0(CPOL = 0、CPHA = 0)和模式3(CPOL = 1、CPHA = 1),模式0和模式3主要区别是当SPI主机硬件接口处于空闲状态时,SCLK的电平状态是高电平或者是低电平。对于模式0来说,SCLK处于低电平;对于模式3来说,SCLK处于高电平。不过,在这两种模式下,芯片都是在SCLK的上升沿采集输入数据,下降沿输出数据。

       2.2 W25Q64数据格式

W25Q64数据格式为数据长度8位大小,先发高位,再发低位。

       2.3 W25Q64传输速度

W25Q64在标准模式下支持80M bit/s速度,快速模式下支持160M bit/s速度,高速模式下支持320M bit/s速度。

3、W25Q64控制和状态寄存器

通过对“读状态寄存器”指令读出的状态数据可以知道芯片存储器阵列是否可以写入或不可写,或是否处于写保护状态。通过“写状态寄存器”指令可以配置芯片写保护特征。

总线忙标志位(BUSY)

BUSY位是一个只读位,在状态寄存器中的S0位。当W25Q64在执行“页编程”、“扇区擦除”、“块区擦除”、“芯片擦除”以及“写状态寄存器”指令时,该位被硬件自动置1。这时候,除了“读状态寄存器”指令外的所有操作指令讲会被芯片忽略。当芯片执行完这些指令后,硬件会自动将该位清零,表示芯片器件可以接收其他的指令。

写保护位(WEL

WEL位是一个只读位,在状态寄存器的S1位。在执行完“写使能”指令后,该位会被硬件自动置1。当芯片掉电后和执行“写禁能”、“页编程”、“扇区擦除”、“块区擦除”以及“芯片擦除”指令都会进入“写保护状态”。

块区保护位(BP2、BP1、BP0

BP2、BP1、BP0这3位为可读可写位,分别在状态寄存器的S4、S3以及S2位。这3个位默认状态为0,即块区处于未保护状态。可以利用“写状态寄存器”指令对这几个位进行置1来达到块区保护的目的。块区保护状态为:没有保护、部分保护和全部保护状态。

注:当状态寄存器的SRP位为1或读写保护管脚(/WP)为低电平时,这3个位不可被更改。

底部和顶部块保护位(TB

TB位是一个可读可写位,在状态寄存器的S5位,默认值为0。可以利用“写状态寄存器”指令对这个位进行置1或清零。当TB = 0时,表示保护位从顶部开始,当TB = 1时,表示保护位从底部开始。

注:当状态寄存器的SRP位为1或读写保护管脚(/WP)为低电平时,这个位不可被更改。

扇区/块保护(SEC

SEC位为一个可读可写位,在状态寄存器的S6位,默认值为0。可以利用“写状态寄存器”指令对这个位进行置1或清零。当SEC = 0时,表示每次保护的区域大小为4K;当SEC = 1时,表示每次保护的区域大小为8K。

状态寄存器保护位(SRP0、SRP1

SRP0和SRP1这2位为可读可写位,分别在状态寄存器的S7和S8(状态寄存器2)位。这两个位的默认值为0,可以利用“写状态寄存器”指令对这个位进行置1或清零。这2个位和读写保护管脚(/WP)决定了状态寄存器写保护的方式。状态寄存器写保护的方式有:软件保护,硬件保护、电源锁定或一次性可编程(OTP)保护。

快速SPI通讯使能(QE

QE位为一个可读可写位,在状态寄存器的S9(状态寄存器2)位,默认值为0。以利用“写状态寄存器”指令对这个位进行置1或清零。当QE = 0时,W25Q54设置为标准速度模式或快速模式,保持管脚(/HOLE)和读写保护管脚(/WP)启用;当QE = 1时,W25Q54设置为高速模式,保存管脚(/HOLE)和读写保护管脚(/WP)被设置位IO2和IO3功能使用。

4、W25Q64器件标识

5、W25Q64工作原理

           W25Q64操作原理

通过SPI接口,用标准的SPI协议发送相应指令给flash,然后flash根据命令进行各种相关操作。

            W25Q64常用操作命令

指令名称

字节1(CODE)

字节2

字节3

字节4

字节5

字节6

写使能

06h

 

写禁能

04h

 

读状态寄存器1

05h

(S7~S0)

 

读状态寄存器2

35h

(S15~S8)

 

读数据

03h

A23~A16

A15~A8

A7~A0

D7~D0

直至读完所有

写状态寄存器

01h

(S7~S0)

(S15~S8)

 

页编程

02h

A23~A16

A15~A8

A7~A0

D7~D0

直至255个字节

块擦除(64K)

D8h

A23~A16

A15~A8

A7~A0

 

半块擦除(32K)

52h

A23~A16

A15~A8

A7~A0

 

扇区擦除(4K)

20h

A23~A16

A15~A8

A7~A0

 

芯片擦除

C7/60h

 

芯片掉电

B9h

 

释放掉电/器件ID

ABh

伪字节

伪字节

伪字节

ID7~ID0

 

制造/器件ID

90h

伪字节

伪字节

00h

MF7~MF0

ID7~ID0

JEDEC ID

9Fh

MF7~MF0

ID15~ID8

ID7~ID0

 

6、W25Q64常用指令工作时序

写使能(06H

写禁止(04H

读状态寄存器指令(05H

写状态寄存器指令(01H

 

读数据(03H

页写(02H

扇区擦除指令(20H

块擦除指令(D8H

芯片擦除指令(07H

掉电指令(B9H

读ID指令(90H

写使能(06H

写禁止(04H

读状态寄存器指令(05H

写状态寄存器指令(01H

 

读数据(03H

页写(02H

扇区擦除指令(20H

块擦除指令(D8H

芯片擦除指令(07H

掉电指令(B9H

读ID指令(90H

7、STM32模块编程思路

  1. 配置SPI模块功能管脚相应的GPIO管脚。
  2. 配置SPI模块工作方式。
  3. 使能SPI模块时钟。
  4. 根据SPI SPI主模式设置步骤设置SPI工作方式。
  5. 编写SPI读写字节函数。
  6. 根据目前器件的指令操作器件。

8、硬件原理图

代码资源下载:https://download.csdn.net/download/lalala098/10576508


http://chatgpt.dhexx.cn/article/jj4juLTI.shtml

相关文章

STM32学习笔记(十一)丨SPI通信(W25Q64芯片简介,使用SPI读写W25Q64存储器芯片)

本篇文章包含的内容 一、SPI的通信协议及其原理1.1 SPI简介1.2 SPI通信的硬件连接1.3 SPI的时序基本单元1.3.1 起始条件和终止条件1.3.2 交换字节(模式0,先移入,再移出)1.3.3 交换字节(模式1,先移出&#x…

看单片机原理图-外部FLASHW25Q64

系列文章目录 看单片机原理图-最小系统 看单片机原理图-最小系统电源电路 看单片机原理图-输入输出电路LED指示、按键输入 看单片机原理图-红外遥控、EEPROM 看单片机原理图-FLASH 文章目录 系列文章目录前言一、FLASH 前言 硬件:百问网100ASK_STM32F103_MINI开发…

W25Q64 Flash芯片原理与应用方案(含W25Q64中文数据手册)

W25Q64是华邦公司推出的大容量SPI FLASH产品,其容量为64Mb(8MB),应用较为广泛。 W25Q系列的器件在灵活性和性能方面远远超过普通的串行闪存器件。W25Q64将8M字节的容量分为128个块,每个块大小为64K字节,每个…

cortex_m3_stm32嵌入式学习笔记(二十一):SPI实验(通信总线)

SPI 是英语 Serial Peripheral interface 的缩写,顾名思义就是串行外围设备接口。是 Motorola首先在其 MC68HCXX 系列处理器上定义的。 SPI 接口主要应用在 EEPROM, FLASH,实时时钟, AD 转换器,还有数字信号处理器和数…

STM-32:SPI通信协议/W25Q64简介—软件SPI读写W25Q64

目录 一、SPI简介1.1电路模式1.2通信原理1.3SPI时序基本单元1.3.1起始和终止1.3.2交换字节 二、W25Q642.1W25Q64简介2.2W25Q64硬件电路2.3W25Q64框图2.4Flash操作注意事项 三、软件SPI读写W25Q643.1接线图3.2程序代码 一、SPI简介 SPI是串行外设接口(Serial Periph…

STM32CubeMx之硬件SPI驱动W25Q64

STM32CubeMx之硬件SPI驱动W25Q64 1.SPI简介 SPI是串行外设接口(Serial Peripheral Interface)的缩写,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚&a…

SPI读写串行FLASH(W25Q64)

文章目录 1、SPI协议1、硬件连接2、通讯时序3、不同的通信模式 2、W25Q64介绍3、SPI读写驱动编写4、源码 1、SPI协议 SPI 协议是由摩托罗拉公司提出的通讯协议(Serial Peripheral Interface),即串行外围设备接口,是一种高速全双工的通信总线。它被广泛地…

STM32入门开发: 介绍SPI总线、读写W25Q64(FLASH)(硬件+模拟时序)

一、环境介绍 编程软件: keil5 操作系统: win10 MCU型号: STM32F103ZET6 STM32编程方式: 寄存器开发 (方便程序移植到其他单片机) SPI总线: STM32本身支持SPI硬件时序,本文示例代码里同时采用模拟时序和硬件时序两种方式读写W25Q64。 模拟时序更加方便移植到…

树莓派系统介绍

树莓派是一个微型计算机,和普通的电脑没有什么区别,只是体积更小,只有卡片大小,存储能力和计算能力会差一点,主要用于学习,实验所用。 是电脑就要安装操作系统,树莓派官方推荐了两种系统&#…

树莓派 zero linux,树莓派 zero基本调试

回家之前就从网上购买了一堆设备,回去也不能闲着,可以利用家里相对齐全的准备安装调试。结果人还没回来,东西先到了。 购买的核心装备是树莓派zero w,虽然已经知道它比家族大哥树莓派小不少,但拿到手里还是惊奇它的小巧…

树莓派c语言访问mariadb,树莓派之MariaDB

8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 安装MariaDB MariaDB是MySQL的一个分支 直接命令行敲入:1sudo apt-get install mariadb-server 即可完成安装。 一开始安装完成后不知道是需要初始化…

python树莓派_树莓派python

广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 最初拿到树莓派的时候测试过,没成功,后来发现一张华丽丽的说明图,顿时醒悟了.. 记录下来,主要学习自 :htt…

树莓派硬件介绍及配件选择

目录 树莓派Datasheet下载地址: Raspberry 4B 外观图: 技术规格书: 性能介绍: 树莓派配件选用 电源的选用: 树莓派外壳选用: 内存卡/U盘选用 树莓派Datasheet下载地址: Raspberry Pi …

树莓派Pico开发版

Pico开发版有16个PWM通道非常适合用于舵机及电机的控制[1]。 单板机(4B)、微控制器(Pico),树莓派支持Micro Python和C编程[3]。Thony是Python的开发环境。 [1]【评测】树莓派Pico开发板详细评测,到底值不值? [2] Pico树莓派中文站。 [3]一…

1-树莓派及配件购买推荐

树莓派4b主板及配件购买推荐。 作者:白宸羽 套餐 购买链接:https://item.taobao.com/item.htm?spma1z10.5-c-s.w4002-22269478747.11.277c1a24rkExbq&id597680312428 TF卡建议选择16g,套餐建议选择“摄像头套餐” HDMI用于连接显示屏&a…

python树莓派编程_python树莓派编程

广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 例如,你可以用树莓派搭建你自己的家用云存储服务器。? 树莓派用python来进行编程。 树莓派项目的一个核心思想是python编程语言的使用。 python允许树莓派的拥…

树莓派如何第一次启动-树莓派从购买到启动一步一步完全版!

背景 闲来无事,在咸鱼上买了一个树莓派3B。买来配件都十分齐全,于是就想着启动来测试一下。下面是树莓派第一次启动的全过程,包含安装系统。 1 准备工作 1.1所需硬件 笔记本电脑、树莓派3B、16GTF卡、读卡器、电源和电源线共四种。 无需准…

树莓派价格暴涨买不起?他们自己做了一块价格还不到1/4的开发板平替树莓派,还火到海外去了

众所周知,树莓派诞生之初时的设计有四大要点 一个可编程的硬件(功能很强)√足够有趣,能吸引年轻人(可玩性确实高)√能反复扔进书包,不怕挤坏(质量杠杠滴)√ 还有最后一…

当你拿到树莓派后要干什么

最近刚买了一个树莓派(pi4 8g),先在分享一些搭建细节,帮助他人更快上手 1.烧录sd卡 官网下载文件 Operating system images – Raspberry Pihttps://www.raspberrypi.com/software/operating-systems/ 下载烧录工具&#xff1a…

[树莓派1] 硬件选购指南

树莓派是一款基于 ARM 架构的微型电脑主板,你可以把它理解成一台微型服务器。目前最新版是树莓派 4b,最大支持 8G 内存。 以前树莓派内存太小了,就没怎么折腾;现在树莓派 CPU 和内存都提高了,就有玩的价值了。 我购买树…