W25Q128数据手册总结:

  • 1.描述
  • 2.引脚封装
  • 3.明白引脚的功能
  • 4.了解W25Q的内存结构框架
  • 5.了解相关寄存器
  • 6.了解指令
  • 7.了解标准SPI的SPI模式
  • 8.了解SPI的dual模式
  • 9.了解SPI的QPI模式
  • 10.常用的指令

1.描述

 W25Q128FV串行Flash内存由可编程的65536页组成,每一页256字节。可以在一时间编程高达256字节的内存。擦除内存可以是按16个页擦除(即一个Sector),128个页擦除(八个Sector),256个页擦除(16个Sector),或者整片擦除。标准SPI通信支持时钟频率高达104MHz,Dual SPI通信支持时钟频率高达208MHz,QSPI通信支持时钟频率高达416MHz。

2.引脚封装

常见的引脚封装如下:

3.明白引脚的功能

(1) /CS片选
使能或者失能SPI设备的操作。当CS为高电平是设备未选中,串行数据线处于高阻抗状态。注意,低电平选中芯片。
(2) DO(IO1)数据输出(数据输入输出1)
标准SPI模式下的MISO,QSPI模式下的双向数据线IO1。
(3) /WP(IO2)写保护输入(数据输入输出2)
该引脚用于阻止状态寄存器被写。与状态寄存器中块保护(CMP、SEC、TB、BP2、BP1和BP0)位和状态寄存器保护位(SRP)一起使用,一个小到4KB扇区的部分或整个内存阵列可以被硬件保护。注意/WP引脚低电平有效。当状态寄存器2的QE位被设置为Quad IO时,/WP引脚功能是不可用的,因为这个引脚被用于IO2。
(4) GND地
(5) DI(IO0)数据输入(数据输入输出0)
标准SPI模式下的MOSI,QSPI模式下的双向数据线IO0。
(6) CLK串行时钟输入
(7) /HOLD or /RESET(IO3)保持或者复位输入(数据输入输出3)
/HOLD引脚允许设备在主动选择时暂停。当该引脚为低电平,并且选中芯片,DO引脚处于高阻态,DI和CLK引脚上的信号直接忽略。当HOLD引脚为高电平时,设备可以恢复运行。当多个设备共享相同的SPI信号时,Hold功能就发挥出来了。当状态寄存器2中的QE位被设置成Quad I/O时,HOLD引脚功能是不可以用的,因为这个引脚是被用于IO3。
还有就是这个引脚还有一个名字RESET,复位是低电平有效。当QE=0,IO3引脚可以通过状态寄存器配置为HOLD或者reset。
(8) VCC电源供应
当我们使用标准的SPI总线时,数据线只是第2脚和第5脚,四线的SPI使用/WP作IO2,使用/HOLD或者/RESET作IO3。

4.了解W25Q的内存结构框架

  首先W25Q引出一个SPI接口实现通讯基础,具备几个控制和状态寄存器,在写保护逻辑和内存编码上的内存分配大致都是分成64KB的块,4KB的扇区,256Byte的页,例如W25Q128,内存为16MByte(128Mbits/8bit),它有256个块,每个块有16个扇区,每个扇区有16页。

5.了解相关寄存器

  仅仅3个状态/配置寄存器
  状态寄存器:
  读状态寄存器1、2、3指令可以用来提取闪存阵列可用性状态、设备是否是写使能、写保护状态、Quad SPI设置、保密寄存器上锁状态、擦除/编程挂起状态、输出驱动力、上电和当前地址模式。写状态寄存器指令可以用于配置写保护、Quad SPI设置、保密寄存器OTP锁、HOLD/RESET功能切换、输出驱动力、上电地址模式。对状态寄存器的写访问是由非易失性状态寄存器保护位(SRPO, SRP1)的状态控制的。
  状态寄存器1:

每个位的介绍:
(1) Erase/Write In Progress(BUSY)(只读)
  当设备正在执行页编程、Quad页编程、扇区擦除、块擦除、芯片擦除、写状态寄存器或者执行擦除、编程保密寄存器指令的时候,硬件置1。在此期间设备忽视其他指令。当完成上述操作之后有自动恢复为0表示不繁忙。
(2) Write Enable Latch(WEL)(只读)
  当接收到写使能指令之后该位置为1;当设备写失能之后该位清0。
(3) Block Protect Bits(BP2,BP1,BP0)(读写)
  这3个位提供写保护控制和状态。一般情况下用不着,除非怕别人抄板读取信息。
(4) TB(可写)
  非易失性的上/下位(TB)控制块保护位(BP2, BP1, BPO)是否保护数组的上(TB=0)或下(TB=1),如状态寄存器内存保护表所示。出厂默认设置为TB-0。TB位可以根据SRPO、SRP1和WEL位的状态通过写状态寄存器指令来设置。
该位配合BP2,BP1,BP0控制着着保护哪一块区域的内存,具体可以看看手册上的状态寄存器内存保护表(Status Register Memory Protection Table)。
(5) SEC(可写)
  该位为1表示保护的是4KB扇区,为0表示保护的是64KB扇区。同样可以参考状态寄存器的内存保护表。
(6) SRP0(可写)
  配合SRP1和WP引脚来决定写保护的方式。有软件保护、硬件保护、电源供应上锁、一次性可编程保护。
  状态寄存器2:

(1) Erase/Program Suspend Status(SUS)(只读)
  当执行擦除/编程挂起(75H)指令时,该位置1。当执行擦除/编程恢复指令(7AH),或者断电上电时该位为0。
(2) Security Register Lock Bits(LB3,LB2,LB1)(一次性可编程)
  出厂时这3个位为0,此时保密寄存器不上锁。LB3-1是一次性编程的,如果置位1之后就不能修改了,同时相应的256字节保密寄存器将永久的变为只读,不可修改。
(3) Quad Enable(QE)(可写)
  用于切换标准SPI或者是Quad SPI,当该位为0,WP引脚和HOLD引脚使能。当该位为1,WP引脚变为IQ2功能,HOLD变为IO3功能。该位置位1之后,可以发送38H(Enter QPI)指令切换到QSPI模式。如果没有置1就发送Enter QPI指令是没用的。在QSPI模式下,写状态寄存器命令是无法改变QE的。
  状态寄存器3:

(1) Write Protect Selection(WPS)(可写)
  该位用于选择写保护方案。为0使用的方案是CMP,SEC,TB,BP[2:0]位保护指定内存。为1使用的方案是个人块锁存。
(2) Output Driver Strength(DRV1,DRV0)(可写)
  用于读操作期间,默认为11,强度最低,最大的话就设置成00。这个应该是跟SPI驱动力有关的,了解下即可。
(3) /HOLD or /RESET Pin Function(HOLD/RST)(可写)
  用于选择对应硬件引脚的功能是HOLD还是RESET。当QE为1,该位不起作用。该位如果是1,对应引脚是复位的功能,否则是HOLD的功能。

6.了解指令



  上面的两个表上的指令可以使用标准/Dual/Quad SPI操作。
  而下面的这个表指令仅仅适用于QSPI:

7.了解标准SPI的SPI模式


  可以从发送指令06H的波形得知标准SPI的模式是0,即时钟的空闲电平是低电平,第一个时钟上升沿采集数据。高位在前。

8.了解SPI的dual模式

  通过发送0x3B(fast read dual output)的波形分析了解,主机正常通过DI数据线发送指令和24bits的地址给从机,随后主机发出8个虚时钟,最后从机的DI和DO数据线回传数据,四个时钟周期一个字节,比标准的快了一倍。

9.了解SPI的QPI模式

  通过发送0x0B(fast read)的波形分析了解,有四根数据线,并且都是双向的,主机先发送指令和地址,接着发送虚时钟,然后在提供时钟去读从机数据。由波形可以看出两个时钟就能传递一个字节,速度加快了很多。

10.常用的指令

  我们使用内存就是想来存放数据的,涉及到读写,所以我们的需求有:读内存和写内存。写内存的时候都需要注意Flash的一个通病,那就是Flash编程只能将1写为0,而不能将0写成1。所以我们需要在写内存的时候将内存擦除,使用内存擦除指令擦除内存,内存变为0xFF,然后再写内存。有时候我们可能要格式化内存,那么就还需要整片擦除指令。最后值得考虑的是,任何一款芯片都会有状态寄存器,我们在操作芯片的时候都需要先了解芯片的状态如何。那么针对使用标准SPI通信,梳理一下我们大致用到的指令有:
Write Enable(0x06)
Write Disable(0x04)
Read Status Register-1(0x05)
Write Status Register-1(0x01)
Read Status Register-2(0x35)
Write Status Register-2(0x31)
Read Status Register-3(0x15)
Write Status Register-3(0x11)
Chip Erase(0xC7/0x60)
Manufacturer/Device ID(0x90)
JEDEC ID(0x9F)
Read Unique ID(0x4B)
Page Program(0x02)
Sector Erase(4KB)(0x20)
Block Erase(32KB)(0x52)
Block Erase(64KB)(0xD8)
Read Data(0x03)
Fast Read(0x0B)

W25Q128数据手册阅读总结相关推荐

  1. W25Q128数据手册翻译(3)

    W25Q128数据手册翻译(3) 8 指令 8.1 器件ID和指令集表 8.1.1 制造商和器件标识符 8.1.2 指令集表1(标准/双线/四线SPI指令) 8.1.3 指令集表2(标准/双线/四线S ...

  2. W25Q128数据手册翻译(2)

    W25Q128数据手册翻译(2) 6 功能描述 6.1 SPI/QPI操作 6.1.1 标准SPI指令 6.1.2 双线SPI指令 6.1.3 四线SPI指令 6.1.4 QPI指令 6.1.5 保持 ...

  3. 器件数据手册阅读基本方法

    这是一套比较常见的阅读数据手册的方法: 1.找器件(可以问前辈或者去淘宝按照要求搜索,我一般是选熟店搜索) 2.根据型号检索其数据手册(淘宝有些会给,没有的话可以去其官网) 3.查看基本参数和功能是否 ...

  4. Linux ARM平台开发系列讲解(网络篇) 2.1 Marvell 88EA6321/6320 Switch 数据手册阅读之了解芯片功能

    1. 概述 注意:88EA6321/88EA6320 和 88E6321/88E6320软件上无区别,区别在于硬件外围电源上 Marvell 88EA6321/88EA6320设备是一个集成了7端口千 ...

  5. SPI FLASH(W25Q128BV) 包含SPI工作原理

    目录 一.SPI简介 1.全双工与半双工 2.同步与异步 3.SPI通信方式 二.SPI工作模式 三.W25Q128BV 1.读ID Read Manufacturer/Device ID(90h) ...

  6. 100W无线电耦合功率测试实验

    ▌01 无线功率耦合   根据 Experimental Test on a Contactless Power Transfer System 中的方案,进行无线功率发送实验. ⊙ 耦合线圈   1 ...

  7. 【u-boot】uboot代码简要分析 (u-boot 移植)

    uboot代码简要分析 (u-boot 移植) 2012-12-19 22:46:04 [转] 先来看看源码目录结构,再按照代码的执行顺序简单地分析源码 1.U-boot源码整体框架 源码解压以后,我 ...

  8. STM32深入实践教程目录

    更新时间:2021年8月5日 目前总文章数为88篇,后序会不断更新并整理目录,感谢支持! 目录 更新时间:2021年8月5日 STM32 HAL库学习系列 STM32CubeMX学习使用 STM32C ...

  9. stm32项目_stm32f103c8t6项目_循迹避障小车完整制作过程_智能小车设计_STM32智能小车教程-循迹-避障-蓝牙遥控-跟随

    [硬件] 元件选型 照片上传出问题了,改天补上,着急的可以看视频 视频链接在这里 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sKjJGMXv-16463139639 ...

最新文章

  1. 通俗易懂,到底什么是区块链?
  2. 不热衷黄金、地产的美国人喜欢投资什么?
  3. USACO 2.1 健康的好斯坦奶牛 (DFS)
  4. 重新认识二级指针(Pointers to Pointers)
  5. C++primer 第 3 章 字符串、向量和数组 3 . 5 数组
  6. C/C++好不好学习呢?
  7. 《Effective Python 2nd》 读书笔记——函数
  8. c语言检验xml文档是否正确_带饰面砖的预制构件进场复验时,每600m2为一个检验批是否正确?...
  9. html改excel,怎么把html文件转成excel:html表格如何转换excel
  10. jquery的siblings属性和定时器
  11. “裸辞” 备战15天三面美团,交叉面却被吊起来锤
  12. 通俗理解LDA主题模型(转载自 v_JULY_v 大佬)
  13. 华中科技大学计算机科学与技术排名,2017华中科技大学专业排名
  14. 如何面试软件测试工程师
  15. 后台怎么接收处理从url 客户端传来的json数据格式
  16. Dom 中 children 与childNodes 的区别
  17. React路由跳转时通过传参进行动态渲染的方法
  18. Android 基础知识4-2.11 AbsoluteLayout(绝对布局)详解
  19. 微信小程序 console @appservice-current-context
  20. 关于win10启动nacos1.3.2失败的详细解决方案

热门文章

  1. Oracle Rac集群常用命令总结(crsctl和srvctl详解)
  2. -考研第三十六周总结-
  3. AI开发之——Leonardo—Community Feed模型制作图形(4)
  4. mysql基于SSL实现主从复制
  5. A B C类IP地址的判断
  6. 计算机c类网络号,一个C类网络地址有多少个可分配的有效IP地址
  7. 记录一次tensorflow cuda out of memory
  8. Nacos的动态配置源码解析
  9. 推荐几款炫酷的基于jquery的页面特效
  10. Fancy PCA图像扩充总结(附代码)