Flash存储W25Q16芯片

1          一般描述

W25Q16BV(16M-bit)是为有限的空间、引脚和功耗的系统提供一个存储解决方案。25Q系列比普通的串行Flash存储器更灵活,性能更优越。基于双倍/四倍的SPI,它们能够可以立即完成提供数据给RAM,包括存储声音、文本和数据。芯片支持的工作电压2.7V到3.6V,正常工作时电流小于4mA,掉电时低于1uA。工作温度为-40℃到85℃。所有芯片提供标准的封装。

         W25Q16BV由8192个编程页组成,每个编程页256-bytes。每页的256字节用一次页编程指令即可完成。每次擦除16页(扇区擦除)、128页(32KB块擦除)、256页(64KB块擦除)和全片擦除。W25Q16BV有512个可擦除扇区或32个可擦除块。最小4KB扇区允许更灵活的应用去要求数据和参数保存(见图2)。

         W25Q16BV支持标准串行外围接口(SPI),和高速的双倍/四倍输出,双倍/四倍用的引脚:串行时钟、片选端、串行数据I/O0(DI)、I/O1(DO)、I/O2(WP)和I/O3(HOLD)。SPI最高支持104MHz,双倍速是208MHz,四倍速是416MHz。这个传输速率比得上8位和16位的并行Flash存储器。连续读模式允许利用少至8-clocks指令去读取24-bit 地址来实现高效的存储访问,允许真正的XIP(execute in place)操作。

HOLD引脚和写保护引脚可编程写保护。此外,芯片支持JEDEC标准,具有唯一的64位识别序列号。

2          特性

l  SPI串行存储器系列                                                                    灵活的4KB扇区结构

-W25Q80:8M位/1M字节(1,048,576)                                           -统一的扇区擦除(4K字节)

-W25Q16:16M位/2M字节(2,097,152)                                         -块擦除(32K和64K字节)

-W25Q32:32M位/4M字节(4,194,304)                                         -一次编程256字节

-每256字节可编程页                                                                       -至少100,000写/擦除周期

                                                                                                                  -数据保存20年

●标准、双倍和四倍SPI

-标准SPI:CLK、CS、DI、DO、WP、HOLD                              高级的安全特点

-双倍SPI:CLK、CS、IO0、IO1、WP、HOLD                              -软件和硬件写保护

-四倍SPI:CLK、CS、IO0、IO1、IO2、IO3                                  -选择扇区和块保护

                                                                                                                  -一次性编程保护(1)

●高性能串行Flash存储器                                                                  -每个设备具有唯一的64位ID(1)

-比普通串行Flash性能高8倍                                                         注1:

-104MHz时钟频率                                                                                这些特点在特殊订单中。

-双倍SPI相当于208MHz                                                                      请联系Winbond获得更详细资料。

-四倍SPI相当于416MHz                                                              封装

-40MB/S连续传输数据                                                                     -8-pinSOIC 208-mil

-50MB/S随机存取(每32字节)                                                -8-padWSON

●高效”持续读模式”                                  

   -短指令

   -少至8个时钟到达1个地址内存

   -允许真正XIP操作

   -强过并行Flash强16倍

5  8个脚的引脚图类似如下。

6  引脚描述

7       16个脚的引脚图类似如下,N/C表示not connect

8.1 封装类型

         W25Q16BV提供了8-pin塑料150-mil 或者208-mil宽度SOIC(封装代号SN&& SS) 和6x5-mm WSON(封装代号ZP) 。分别如图1a和1b。300-mil 8-pin的PDIP是另外一种封装选择。(图1c)。W25Q16BV也提供16-pin 塑料 300-mil宽度SOIC(封装代号SF),如图1d。封封装图和尺寸规格在数据手册的末尾。

8.2 片选(ChipSelect -----/CS)

         SPI片选引脚决定设备操作是否可用。当为高电平时,芯片未被选择,串行数据输出(DO、IO0、IO1、IO2和IO3)引脚为高阻态。未被选择时,芯片处于待机状态下的低功耗,除非芯片内部在擦除、编程。当/CS变成低电平,芯片功耗将增长到正常工作,能够从芯片读写数据。上电后,在接收新的指令前,必须由高变为低电平。上电后,必须上升到VCC(见“写保护”和图30)。在接上拉电阻可以完成这个。

8.3 串行数据输入、输出和IOs(DI、DO和IO0、IO1、IO2、IO3)

W25Q16BV支持标准SPI、双倍SPI和四倍SPI。标准的SPI传输用单向的DI(输入)引脚连续的写命令、地址或者数据在串行时钟(CLK)的上升沿时写入到芯片内。标准的SPI用单向的DO(输出)在CLK的下降沿从芯片内读出数据或状态。

双倍和四倍SPI指令用双向的IO引脚在CLK的上升沿来连续的写指令、地址或者数据到芯片内,在CLK的下降沿从芯片内读出数据或者状态。四倍SPI指令操作时要求在状态寄存器2中的四倍使能位(QE)一直是置位状态。当QE=1时/WP引脚变为IO2,/HOLD引脚变为IO3。

8.4 写保护(WriteProtect ---  )

         写保护引脚用来阻止状态寄存器被更改。状态寄存器保护位(SEC、TB、BP2、BP1和BP0) 和状态寄存器保护位(SRP)结合起来对存储器进行一部分或者全部的硬件保护。低电平有效。当状态寄存器2中的QE位置成四倍速I/O,则引脚(硬件保护功能)无效。因为这个脚被用作IO2。四倍速I/O操作时该脚配置请见图1a,1b,1c和1d。

8.5 HOLD(/HOLD)

   引脚有效时,设备将暂停。当DO引脚将为高阻态,DI和CLK引脚上的信号将被忽略。当脚为高电平时,设备恢复工作。功能常用在多个设备共享同一个SPI信号。脚低电平有效。当状态寄存器2中的QE位置成四倍速I/O,则引脚无效。因为这个脚被用作IO3。四倍速I/O操作时该脚配置请见图1a,1b,1c和1d。

8.6 串行时钟(CLK)

串行时钟输入引脚为串行输入和输出操作提供时序。(见SPI操作)

9结构框图


        

10.功能描述

10.1 SPI总线操作

10.1.1 标准SPI指令

该w25q16bv是通过一个SPI兼容总线组成的四访问:串行时钟信号(CLK),芯片选择(/ CS),串行数据输入(DI)和串行数据输出(DO)。标准的SPI指令使用DI引脚输入串行写入指令,地址或数据到设备上的上升沿时钟。DO输出引脚是用来读取数据或状态的装置,在下降沿时钟。SPI总线操作模式0(0,0)和3(1,1)的支持。模式0和之间的主要差异模式3是时钟信号的正常状态时,SPI总线主备用数据没有被转移到串行闪存。对于模式0,时钟信号在的下降沿和上升沿,通常是低电平。对于模式3,时钟信号在的下降沿和上升沿,通常是高电平。

10.1.2 双倍SPI指令

   W25Q16BV使用”Fast Read Dual Output and Dual I/O(3B和BBhex)”指令支持双倍速SPI操作。这些指令允许数据以正常速度的两到三倍的在设备间传输。双倍读指令适用于 上电时快速加载代码到RAM 或者 直接从SPI总线上执行代码(XIP) 的情形。当使用双倍速SPI指令时,DI和DO引脚将充当 IO 0和IO 1.

10.1.3 四倍速SPI指令

     W25Q16BV使用”Fast Read Quad Output”、” Fast Read Quad I/O” 、”Word Read Quad I/O” 和 “Octal Word Quad I/O”指令(6B、EB、E7、E3)支持四倍速SPI操作。这些指令允许数据以正常速度的四到六倍的在设备间传输。四倍读指令显著提升连续和随机访问传输速度,这速度满足将代码快速加载到RAM或者直接在SPI总线上执行(XIP)。使用四倍速SPI指令时,DI和DO引脚将充当 IO 0和IO 1 ,WP和HOLD充当IO 2 和IO 3。四倍速SPI指令要求状态寄存器2中的QE功能位打开。

10.1.4 HOLD功能

         指令允许W25Q16BV在选中激活状态下暂停。在与其他设备共享SPI数据和时钟信号时,这个功能很有用。例如,在已经写了一部分页Buffer后,SPI 总线上产生一个优先终端请求。在这种情形,指令可以保存指令的状态和Buffer中的数据,一旦总线再次可用时,程序可以从离开的地方恢复。功能只适用于标准SPI和双倍SPI操作,不实用四倍速SPI操作。

         设备在选中(低电平)时,初始化状态。如果CLK信号已经处于低电平时,状态在信号的下降沿时激活。如果当时CLK不是低电平,状态将在CLK的下个下降沿后激活。如果CLK信号已经处于低电平时,状态在信号的上升沿时终止。否则,将在下一个CLK的下降沿后终止。在状态期间,DO脚是高阻态,DI和CLK信号将忽略。在整个操作过程中,信号应该保持低电平来避免重置设备内部逻辑状态。

10.2 写保护(Writeprotection)

         使用非易失性存储器的应用程序必须考虑到噪声等的可能性和不利的系统条件可能会影响数据的完整性。为了解决这个问题的W25Q16BV提供了多种方式来保护数据免受意外写入。

10.2.1 写保护功能情形

l  VCC地狱阈值时,设备重置。

l  上电后延时写入禁止。

l  在编程和擦除后写使能或写入禁止指令和自动写入禁止

l  用状态寄存器软件或硬件写保护

l  锁定写保护直到下次上电P

l  一次性编程写保护P

Note : P标记这些功能可用基于特别订购信息,请参考订购信息。

上电或掉电即VCC低于阈值电压()时,W25Q16BV重置该功能。在重置时,操作不可用,指令不识别。在上电到VCC达到期间,所有的编程和擦除相关指令因为延时期间不可用。片选信号必须监听上电时VCC供应等级达到VCC-min等级 和时间延时结束。在上产生一个上拉电平可以实现。

上电后,设备自动将状态寄存器写使能锁置成0,此时状态为写入禁止状态。在接收页编程,扇区擦除,盘擦除或者写状态寄存器指令前,需要设置一个写使能指令。在完成这些指令后,写使能锁自动清成写入禁止状态(值0)。

软件写保护通过写状态寄存器指令设置状态寄存器保护(SRP0 、SRP1)和块保护(SEC、TB、BP2、BP1和BP0)位。这些设置使一部分内存区域只读。通过 写保护引脚(/WP) 和改变状态寄存器 相结合,在硬件控制下启用或者禁用。此外,下电指令提供了额外的写保护---所有指令都忽略。

11.1状态寄存器

11.1.1 忙(Busy)

忙在状态寄存器S0中是个只读位。当设备在执行页编程、扇区擦除、块擦除、芯片擦除或者写状态寄存器指令时会置成状态1。忙状态时设备将忽略后续指令,除了读状态寄存器和擦除暂停指令(参见AC特性中tw、tPP、tSE、tBE和tCE).当编程写、擦除或者写状态寄存器指令完成时,位忙会清成状态0---标识设备已为后续指令做好准备。

11.1.2 写使能锁(WriteEnable Latch ---WEL)

WEL在状态寄存器S1中是个只读位。在执行写使能指令时被置成1。当设备停止写时,位WEL将清成0。停止写状态发生在加电时或者 在停止写、页编程、扇区擦除、块擦除、芯片擦除、写状态寄存器之后。

11.1.3 块保护位(BlockProtect Bit ------BP2、BP1、BP0)

         块保护位在状态寄存器S4、S3、S2中是非易失读写位,它提供写保护控制和状态。块保护位可以使用写状态寄存器指令设置(参见AC特性里tw)。编程写和擦除指令可以保护整个或部分内存数组,或者没有一个内存数组被保护。块保护位出厂设置为0---即不保护。

11.1.4 顶端块或者底部块保护(Top/BottomBlock Protect----TB)

         根据TB数组(TB = 0,顶端;TB=1,底部)是否出现在状态寄存器保护列表里,非易失TB位决定块保护位(BP2、BP1、BP0) 是否受保护。TB出厂设置为0。TB位可以通过基于SRP0、SRP1和WEL位的写状态寄存器指令设置。

11.1.5 扇区/块保护(Sector/BlockProtect----SEC)

非易失性扇区保护位(SEC)控制 块保护位(BP2、BP1、BP0)是否保护TB数组里的4KB扇区(SEC=1)或者64KB块(SEC=0)。这个TB(TB=0,顶端;TB=1,底部)数组显示在状态寄存器保护列表中。SEC默认设置为0。

11.1.6 状态寄存器保护(SRP1,SRP0)

         状态寄存器保护位(SRP1和SRP0)在状态寄存器(S8、S7)中是非易失性读写位。SRP控制写保护方式:软件保护、硬件保护、掉电或者一次性可编程保护。

11.1.7 擦除暂停状态(EraseSuspend Status---SUS)

         暂停状态位在状态寄存器(S15)中是个只读位。它在执行一次擦除暂停指令(75h)后自动置成1。在擦除恢复指令(7Ah)后自动清0.如同掉电、上电循环一样。

11.1.8 四倍使能(QuadEnable---QE)

         四倍使能位在状态寄存器(S9)中是个非易失性读写位。它允许四倍SPI操作。QE位为0时(出厂默认值),/WP脚和/HOLD启用。QE为1时,四倍IO2和IO3启用,/WP脚和/HOLD停用。

WARNING:如果/WP或者/HOLD脚在标准SPI或者二倍速SPI操作中直接连接到电源或者接地,QE位将不能设成1。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

11.1.9 状态寄存器内存保护

11.2 指令集

W25Q16BV指令集包含30个基础指令。他们都是通过SPI总线受控。指令在片选(/CS)下降沿初始化。DI 输入上的第一个字节提供指令码。DI输入上的数据在时钟的上升沿按照最重要标志位优先级取样。

         指令长度变化单个字节到几个字节不等。可能按照地址字节,数据字节,空字节。或某些情形下的一个组合。指令完成在片选信号(/CS)的上升沿。所有的读指令可以在任意时钟里成。然而,像写指令、编程写、或擦除指令必须在一个字节边界里完成(一个8bit计时后,片选(/CS)驱动就会变高。此外,内存在编程写或者擦除时,或者在写状态寄存器时,除了读状态寄存器以外的指令都被忽略,直到编程写或者擦除循环完成。

11.2.1 制造商和设备识别码

11.2.2 指令集表1(擦除,编程指令)

Notes:

1.数据字节按照MSB(MostSignificant Bit first)顺序提交。字节区域用“()”表示数据从DO脚读取

         2.状态寄存器的内容会不断重复,直到/ CS终止指令。

         3.四倍速页编程输入数据:

IO0 = (D4,D0,……..)

IO1 = (D5,D1,……..)

IO2 = (D6,D2,……..)

IO3 = (D7,D3,……..)

         4.使用双倍速或四倍速“持续读取模式”时,推荐采用“Continuous Read Mode Reset”指令。

11.2.3 指令集表2(读取指令)

 

 

 

 

 

 

 

 

 

 

 

11.2.4 指令集表3(ID、安全指令)

11.2.5 写使能(06h)

写使能指令会将状态寄存器中的写使能锁WEL位置成1.WEL位优先级需高于页编程、扇区擦除、块擦除、芯片擦除以及读状态寄存器指令。写使能指令通过使片选信号(/CS)低电平,在时钟信号(CLK)上升沿时提取指令码“06h”到DI引脚时载入,然后在片选信号高电平时驱动。

11.2.6 禁止写(04h)

禁止写指令会将状态寄存器中的写使能锁WEL位置成0.禁止写指令通过驱动片选信号低电平,提取指令码”04h”到DI脚时载入,然后在片选信号高电平时驱动。记住,WEL位在加电、写状态寄存器、页编程、块擦除、芯片擦除指令完成后自动重置。

11.2.7读状态寄存器1(05h) 和 读状态寄存器2(35h)

读状态寄存器指令允许读取8-bit状态寄存器。这个指令通过驱动片选信号(/CS)为低电平时,然后在时钟信号(CLK)上升沿提取指令码(05h---寄存器1;35h---寄存器2)送入DI脚时载入。状态寄存器位在时钟信号下降沿按照MSB顺序取出,送到DO引脚。状态寄存器位参考图标3a和3b。

读状态寄存器指令可以在任何时间使用。这就允许通过检查BUSY状态位来判断循环指令是否完成、设备能否接受其他指令。状态寄存器可以持续读取。该指令在片选信号高电平时完成。

11.2.8 写状态寄存器(01h)

         写状态指令允许状态寄存器可写。必须先执行写使能指令,从而使设备能够接收到写状态寄存器指令(状态寄存器WEL位必须为1)。一旦写使能,该指令通过使片选信号低电平,发送指令码”01h”,然后写状态寄存器数据字节时载入。

         仅非易失性状态寄存器位SRP0,SEC,TB,BP2,BP1,BP0(对应状态寄存器1的第7位,第5位,第4位,第3位,第2位) 以及QE,SRP1(状态寄存器2的第9,第8位)是可写的。其他只能的状态寄存器位不受写状态寄存器影响。

         在第8个或者第16个时钟后,必须拉高片选信号。如果不这样操作,将不执行写状态寄存器指令。如果第8个时钟后片选信号被拉高,则QE和SRP1位将清0。在片选信号被置为高电平时,自计时写寄存器循环将着手一个tw(参见AC特性)的时间间隔。写状态寄存器循环在执行时,然后可以检查寄存器BUSY位。BUSY为1,则表示正在写寄存器;为0,表示写循环完成或在准备接收其他指令。写寄存器指令完成后WEL位将被清0。

         写状态寄存器指令可以设置块保护位(SEC,TB,BP2,BP1以及BP0),用来保护擦除和编程写指令时的内存。被保护区变成只读。  它也可以设置状态寄存器保护位(SRP0,SRP1)。这些位与写保护引脚(/WP)连接,锁起或者一次性编程(OTP)特性来禁止写状态寄存器。所有状态寄存器位的出厂默认设置都为0。

11.2.9 读数据(03h)

         这个指令可以按顺序从内存中读出一个或多个数据字节。这个指令通过拉低片选信号,提取指令码”03h”加上一个24-bits地址(A23-A0) 放到DI引脚中来初始化。指令码和地址位在时钟信号的上升沿载入。当地址接受后,按照MSB原则在时钟信号下降沿将指定地址上的内存数据将被提取到DO引脚。当一个字节取出后,地址自增长,从而组成一个连续数据流。这意味着整个内存读可以通过单一的指令来访问,只要时钟一直继续。片选信号为高电平时该指令结束。

         当正在擦除指令、编程写、或者写循环(BUSY = 1)时,读数据指令将被忽略并且在当前循环中不起作用。读数据指令允许时钟速率从D.C. 到 fR的最大值(参见AC电子特性)

11.2.10 快速读(0Bh)

         快速读类似于 在较高的FR频率下执行读数据指令。它通过在24-bit地址后面加入8个空时钟来实现的。如图9所示。空时钟可以让设备内部电路补充时间来设置初始地址。在这空时钟,DO引脚上的数据是无用的,可以不关注。

        

11.2.11 快速读双倍输出(3Bh)

快速读双倍输出指令类似于 标准快速读指令(0Bh),用IO0 和IO 1两个引脚输出。这样数据就可以在W25Q16BV上以标准SPI设备两倍的速率传递。快速读双倍输出指令可以从Flash里快速下载代码到RAM去执行。

         类似于快速读指令,快速读双倍输出指令可以在Fr高频率下操作。通过在24-bit地址后面加入8个空时钟来实现的。空时钟可以让设备内部电路补充时间来设置初始地址。空时钟期间,DO引脚上的数据是无用的,可以不关注。但是,IO 0引脚在第一个数据输出时钟的下降沿时必须是高阻抗。

12.2.12快速读四倍输出(6Bh)

         快速读四倍输出 同快速读双倍输出(3Bh)类似,只是通过IO 0 、IO1、IO2、IO3四个引脚输出。在接受快速读四倍输出指令前,状态寄存器2中的四倍使能必须启用(QE =1)。

         其他同快速读双倍输出(3Bh)。

11.2.13 快速读 双倍I/O (BBh)

快速读 双倍I/O指令可以提升随机访问同时维护2个IO引脚,IO 0 和IO 1。它类似于快速读双倍输出(3Bh),但是每个时钟读入2个地址(A23-0)。在某些程序中这种减少指令开销可以直接在双倍SPI上执行代码(XIP)。

         快速读 双倍I/O 之 持续读模式

         快速读 双倍I/O指令通过在输入地址位(A23-0)后设置”连续读取模式”

  • 5
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
众所周知,人工智能是当前最热门的话题之一, 计算机技术与互联网技术的快速发展更是将对人工智能的研究推向一个新的高潮。 人工智能是研究模拟和扩展人类智能的理论与方法及其应用的一门新兴技术科学。 作为人工智能核心研究领域之一的机器学习, 其研究动机是为了使计算机系统具有人的学习能力以实现人工智能。 那么, 什么是机器学习呢? 机器学习 (Machine Learning) 是对研究问题进行模型假设,利用计算机从训练数据中学习得到模型参数,并最终对数据进行预测和分析的一门学科。 机器学习的用途 机器学习是一种通用的数据处理技术,其包含了大量的学习算法。不同的学习算法在不同的行业及应用中能够表现出不同的性能和优势。目前,机器学习已成功地应用于下列领域: 互联网领域----语音识别、搜索引擎、语言翻译、垃圾邮件过滤、自然语言处理等 生物领域----基因序列分析、DNA 序列预测、蛋白质结构预测等 自动化领域----人脸识别、无人驾驶技术、图像处理、信号处理等 金融领域----证券市场分析、信用卡欺诈检测等 医学领域----疾病鉴别/诊断、流行病爆发预测等 刑侦领域----潜在犯罪识别与预测、模拟人工智能侦探等 新闻领域----新闻推荐系统等 游戏领域----游戏战略规划等 从上述所列举的应用可知,机器学习正在成为各行各业都会经常使用到的分析工具,尤其是在各领域数据量爆炸的今天,各行业都希望通过数据处理与分析手段,得到数据中有价值的信息,以便明确客户的需求和指引企业的发展。
要模拟SPI(Serial Peripheral Interface)与W25Q16(一种常见的闪存芯片)的通信过程,你可以按照以下步骤进行操作: 首先,我们需要了解W25Q16芯片与主机之间的通信协议。W25Q16支持SPI接口,通过发送和接收数据来与主机进行通信。SPI接口有四条线:时钟线(CLK)、主线输出(MISO)、主线输入(MOSI)和片选线(CS)。 接下来,我们需要配置IO口以模拟SPI接口。选择四个IO口,分别连接到CLK、MISO、MOSI和CS。确保在连接时IO口的方向设置为输入或输出正确,并设置适当的电平(高电平或低电平)。 在通信开始前,需要对CS线进行初始化设置。将CS线拉高,表示不选中W25Q16芯片。然后,设置CLK信号的频率,以指定通信速率。 接下来,可以开始模拟SPI通信过程。假设要发送一个命令给W25Q16芯片,可以按照如下步骤进行操作: 1. 将数据发送至MOSI线,逐位地进行发送,首先发送最高位。 2. 发送完成后,通过拉低CLK线,触发W25Q16芯片读取MOSI上的数据。 3. 通常,W25Q16芯片会立即返回一些数据给主机。可以使用MISO线读取返回的数据,也是逐位读取。 通信完成后,可以通过拉高CS线来结束通信。 以上就是模拟SPI与W25Q16芯片通信的基本过程。需要注意的是,实际的SPI通信可能还涉及到其他方面,如校验位、读写保护等,具体操作还需根据W25Q16芯片的数据手册进行详细了解和配置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值