W25Q128FV译文(一)[通俗易懂]

该文章包括W25Q128FV译文的前六章内容,第7章状态寄存器翻译及第八章指令部分翻译链接:https://blog.csdn.net/z123canghai/article/details/88726856第八章指令剩余部分及第九章相关时序翻译链接:https://blog.csdn.net/z123canghai/article/details/88726856目录一、概述…

大家好,又见面了,我是你们的朋友全栈君。

该文章包括W25Q128FV译文的前六章内容,

第7章状态寄存器翻译及第八章指令部分翻译链接:https://blog.csdn.net/z123canghai/article/details/88726856

第八章指令剩余部分及第九章相关时序翻译链接:https://blog.csdn.net/z123canghai/article/details/88726856

欢迎关注微信公众号,回复“flash”可获取verilog编写的FLASH接口的程序及相关文档,绝对测试过可用的

W25Q128FV译文(一)[通俗易懂]

 


目录

一、概述

二、特征

三、封装类型和引脚配置

四、引脚分配

4.1 片选 (/CS)

4.2 串行数据输入、输出及IO (DI, DO and IO0IO1, IO2, IO3)

4.3 写保护 (/WP)

4.4 HOLD(/HOLD)

4.5 串行时钟(CLK)

4.6复位(/RESET)

五、框图

六、功能描述

6.1.1 标准SPI模式指令

6.1.2 Dual SPI 模式指令

6.1.3 Quad SPI模式指令

6.1.4 QPI 模式指令

6.1.5 Hold 功能

6.1.6 软复位和硬件复位引脚

6.2 写保护

6.2.1写保护功能


 

  • 一、概述

        串行闪存W25Q128FV(128M-bit)对有空间、引脚或功率限制的系统提供了一个存储解决方案。25Q系列所提供的灵活性和性能远远超过普通的串行闪存设备。它非常适用于RAM的编码映射,可直接通过(两线/四线)SPI接口执行代码、存储语音、文本和数据。该器件可采用一个2.7V至3.6V的单端电压工作运行,工作状态电流消耗可低致4mA,休眠模式低至1uA。所有设备都采用节省空间的封装。

       W25Q128FV阵列分布为65536个可编程页面,每页可大小为256字节。一次最多写256字节,也就是一页。数据擦除可以以16页为一组(4KB扇区擦除)、128页为一组(32KB块擦除)、256页为一组(64KB块擦除)或者整片擦除(片擦除)方式进行数据擦除。W25Q128FV有256个可擦除块也可以说是4096个可擦除扇区。支持最小4KB扇区的数据、参数存储为应用设计提供了更大的灵活性。

       W25Q128FV支持标准串行外设接口(SPI)、双线/四线IO接口以及双时钟周期指令(译者注:发送指令也是采用四线模式)的四线外围接口(QPI)。外围接口有串行时钟、片选、串行数据接口I/O0(标准SPI模式下作为输入引脚DI)、I/O1(标准SPI模式下作为输出引脚DO)、I/O2(根据指令的模式选择可用做数据线或写保护)、I/O3(根据指令的模式选择可作为数据线、保持或复位)。标准SPI模式下串行时钟频率可高达104M(译者注:读指令“03H”除外),当用于双通道快速读指令时双通道IO等效时钟速率为208Mhz(104*2),四通道IO模式下等效时钟频率为416MHz。这些模式的传输速率可以胜过标准的异步8和16位并行闪存。连续读取模式允许高效的访问存储器,只需8个时钟的指令周期即可读取24位地址(W25Q128FV寻址范围0到FFFFFF),从而实现真正的XIP(execute in place)操作。

        保持引脚,写保护引脚和可编程写保护,具有顶部或底部阵列控制,提供进一步的控制灵活性。此外,该设备支持JEDEC标准制造商和器件ID和SFDP寄存器,64位唯一序列号和3个256字节安全寄存器。


  • 二、特征

W25Q128FV大小为128Mbit,即16Mbyte。标准模式(SPI)引脚定义为CLK,/CS,DI,DO,/WP,/Hold;双通道SPI模式引脚定义为CLK,/CS,IO0,IO1,/WP,/Hold;四通道SPI模式引脚定义为CLK,/CS,IO0,IO1,IO2,IO3;四线模式引脚定义为CLK,/CS,IO0,IO1,IO2,IO3。支持硬复位和软复位操作。

它是最高性能的串行闪存。SPI、D/Q SPI模式时钟频率可达104Mhz(译者注:读指令“03H”除外)、50MB/S的数据传输速率、超过十万次的擦除和读写操作、超过20年的数据保持时间。

W25Q128FV具备高效的“连续读取”功能及QPI模式。可以以8/16/32/64字节为包进行连续读取。QPI模式可降低指令开销,只需8个时钟即可读取存储器地址;允许真正的XIP,其性能优于X16并行闪存

W25Q128FV具有低功率,宽温度范围的特点,2.7至3.6V单电源、4mA有功电流,<1μA的待机电流(典型值)支持-40°C至+85°C的工作范围。

W25Q128FV灵活的架构,支持扇区/块擦除(4K / 32K / 64K字节)、每个可编程页面可连续写入1到256个字节、支持删除、写操作的暂停和恢复

W25Q128FV具备高级安全功能,支持软件和硬件写保护、电源锁定和OTP保护、顶部/底部,补充阵列保护、独立的块/扇区阵列保护。每个设备的64位唯一ID,具有OTP锁的3X256字节安全寄存器、易失性和非易失性状态寄存器位。

W25Q128FV节省空间的封装。8引脚SOIC / VSOP 208mil、8引脚PDIP 300 mil、8-pad WSON 6×5-mm / 8×6-mm。16引脚SOIC 300mil(附加/ RESET引脚)、24球TFBGA 8×6毫米。
 


  • 三、封装类型和引脚配置

封装和引脚配置只阐述译者所用芯片的封装类型,各种封装基本差不多,可查看文档。

W25Q128FV译文(一)[通俗易懂]

W25Q128FV译文(一)[通俗易懂]

W25Q128FV译文(一)[通俗易懂]


  • 四、引脚分配

  • 4.1 片选 (/CS)

SPI片选(/CS)引脚用于使能和禁止操作器件。当/CS为高电平时,器件被取消选择,串行数据输出(DO或IO0、IO1、IO2、IO3)引脚处于高阻态。取消选择后,器件功耗将处于待机(睡眠)状态,除非内部擦除、编程或写状态寄存器周期正在进行中。当/CS变为低电平时,将选择器件,功耗将增加到工作(激活)状态,可以写入指令并从器件读取数据。上电后,/CS在接受新指令之前必须从高电平转换为低电平。/CS输入在上电和断电时必须跟踪VCC电源电平(参见“写保护”和图58)。如果需要,可以使用/CS引脚上的上拉电阻来实现此目的。

  • 4.2 串行数据输入、输出及IO (DI, DO and IO0IO1, IO2, IO3)

W25Q128FV支持标准SPI,Dual SPI(两线SPI)和Quad SPI(四线SPI)工作模式。标准SPI模式使用单向DI(输入)引脚在串行时钟(CLK)输入引脚的上升沿串行写入指令、地址或数据,使用单向DO(输出)引脚在CLK下降沿读取器件的数据或状态。

Dual SPI和Quad SPI模式使用双向IO引脚在CLK的上升沿将指令、地址或数据串行写入器件,并在CLK的下降沿从器件读取数据或状态。其中,四SPI指令要求设置状态寄存器-2中的非易失性四线使能位(QE)。当QE=1时,/WP引脚变为IO2,/HOLD引脚变为IO3。

  • 4.3 写保护 (/WP)

写保护(/WP)引脚可用于防止状态寄存器被写入。与状态寄存器的块保护(CMP,SEC,TB,BP2,BP1和BP0)位和状态寄存器保护(SRP)位一起使用时,小到4KB扇区的大到整个存储器阵列可以被硬件保护。/WP引脚为低电平有效。当状态寄存器-2的QE位设置为四线I/O模式时,/WP引脚功能不可用,因为该引脚作为IO2。有关Quad I/O操作的引脚配置,请参见图1a-c。

  • 4.4 HOLD(/HOLD)

/HOLD引脚拉低后器件将处于暂停状态。当/HOLD变为低电平时,即便/CS为低电平,DO引脚将处于高阻态,DICLK引脚上的信号将被忽略(无需关注)。当/ HOLD变为高电平时,器件可以恢复操作。当多个设备共享相同的SPI信号时,/HOLD功能非常有用。/HOLD引脚为低电平有效。当状态寄存器-2QE位设置为四I/O时,/HOLD引脚功能不可用,因为该引脚用于IO3。有关Quad I/O操作的引脚配置,请参见图1a-c

  • 4.5 串行时钟(CLK)

SPI串行时钟输入(CLK)引脚提供串行输入和输出操作的时序。(“参见SPI操作”)

  • 4.6复位(/RESET)

/RESET引脚允许控制器复位器件。对于八引脚封装,当QE=0时,IO3引脚可配置为/HOLD引脚或/RESET引脚,具体取决于状态寄存器设置。当QE=1时,/HOLD或/RESET功能不适用于8引脚配置。在16引脚SOIC封装上,提供专用/RESET引脚,它与QE位设置无关。


  • 五、框图

W25Q128FV译文(一)[通俗易懂]


  • 六、功能描述

6.1 SPI/QPI 模式切换

W25Q128FV译文(一)[通俗易懂]

6.1.1 标准SPI模式指令

W25Q128FV通过一个兼容SPI总线进行访问,该总线由四个信号组成:串行时钟(CLK),片选(/CS),串行数据输入(DI)和串行数据输出(DO)。标准SPI指令使用DI输入引脚在CLK的上升沿将指令、地址或数据以串行方式写入器件,使用DO输出引脚在CLK下降沿读取器件的数据或状态。

支持SPI总线操作模式0(0,0)和3(1,1)(译者注:根据SPI时钟极性(CPOL)和时钟相位(CPHA)配置的不同可分为4种模式)。模式0和模式3之间的主要区别在于SPI总线主机处于待机状态且数据未传输到串行闪存时CLK信号的正常状态。对于模式0,CLK信号在/CS的下降沿和上升沿,通常为低电平。 对于模式3,CLK信号在/CS的下降沿和上升沿,通常为高电平。

6.1.2 Dual SPI 模式指令

当使用“快速读取双输出(3Bh)”和“快速读取双I/O(BBh)”等指令时,W25Q128FV支持Dual SPI模式操作。这些指令允许数据以普通串行闪存设备速率的两到三倍的速率传输到设备或从设备传输。双SPI读指令非常适合在上电(代码遮蔽)时快速将代码下载到RAM或直接从SPI总线(XIP)执行非速度关键代码。使用双SPI指令时,DI和DO引脚变为双向I/O引脚:IO0和IO1。

6.1.3 Quad SPI模式指令

当使用诸如“快速读取四路输出(6Bh)”、“快速读取四I/O(EBh)”,“字读取四I/O(E7h)”和“八字读取四字形”等指令时,W25Q128FV支持四线SPI操作 I/O(E3h)。这些指令允许数据以普通串行闪存速率的四到六倍的速率传输到设备或从设备传输。四路读取指令显着提高了连续和随机访问传输速率,允许快速代码遮蔽到RAM或直接从SPI总线(XIP)执行。使用Quad SPI指令时,DI和DO引脚变为双向IO0和IO1,/WP和/HOLD引脚分别变为IO2和IO3。四SPI指令要求设置状态寄存器-2中的非易失性四线使能位(QE)。

6.1.4 QPI 模式指令

仅当器件使用输入QPI38h指令从标准//四线SPI模式切换到QPI模式时,W25Q128FV才支持四线外设接口(QPI)操作。典型的SPI协议需要8个串行时钟方可将字节指令通过DI引脚移入器件。QPI模式利用四个IO引脚输入指令代码,因此只需要两个串行时钟即可完成指令的发送。显着减少SPI指令开销并提高XIP环境中的系统性能。标准//SPI模式和QPI模式是独有的。在任何给定时间只能激活一种模式。输入QPI38h退出QPIFFh指令用于在这两种模式之间切换。上电或使用“Reset99h指令进行软件复位后,器件的默认状态为标准//SPI模式。要启用QPI模式,需要设置状态寄存器-2中的非易失性四线使能位(QE)。使用QPI指令时,DIDO引脚变为双向IO0IO1/WP/HOLD引脚分别变为IO2IO3。有关器件操作模式,请参见图3

6.1.5 Hold 功能

对于标准SPI和Dual SPI操作,/HOLD信号允许对W25Q128FV的操作暂停(当/CS为低电平时)。在与其他设备共享SPI数据和时钟信号的情况下,/HOLD功能就显得很有用。例如,考虑在优先级中断需要使用SPI总线时是否仅部分写入页缓冲区。在这种情况下,/HOLD功能可以将指令的状态和数据保存在缓冲区中,当总线再次可用,编程就可以从停止的地方恢复。/HOLD功能仅适用于标准SPI和双SPI操作,而不适用于Quad SPI或QPI。状态寄存器-2中的四线使能位QE用于确定引脚该是用作/HOLD引脚还是数据I/O引脚。当QE=0(出厂默认值)时,引脚为/HOLD,当QE=1时,引脚将成为I/O引脚,/HOLD功能不再可用。

要启动/HOLD条件,必须在/CS为低电平时选择器件。如果CLK信号已经为低电平,则该功能将在/HOLD信号的下降沿激活。如果CLK尚未为低电平,则在CLK的下一个下降沿之后将激活该功能。如果CLK信号已经为低电平,该功能将在/HOLD信号的上升沿终止。如果CLK尚未为低电平,则/HOLD条件将在CLK的下一个下降沿之后终止。在/HOLD条件期间,串行数据输出(DO)为高阻抗,并且忽略串行数据输入(DI)和串行时钟(CLK)。

片选(/CS)信号应在/HOLD操作的整个持续时间内保持有效(低电平),以避免复位器件的内部逻辑状态。

6.1.6 软复位和硬件复位引脚

W25Q128FV可以通过软件复位序列将其复位到初始上电状态,无论是SPI模式还是QPI模式。该序列必须包含两个连续命令:启用复位(66h)和复位(99h)。如果成功接受命令序列,则器件将需要大约30uS(tRST)才能复位。重置期间不接受任何命令。

对于WSON-8和TFBGA封装类型,W25Q128FV也可以配置为使用硬件/RESET引脚。状态寄存器-3中的HOLD/RST位是/HOLD引脚功能或RESET引脚功能的配置位。当HOLD/RST=0(出厂默认值)时,引脚作为/HOLD引脚,如上所述;当HOLD/RST=1时,引脚用作/RESET引脚。将/RESET引脚驱动为低电平至少1us(tRESET*)将使器件复位至其初始上电状态。任何正在进行的编程/擦除操作都将被中断,并且可能会发生数据损坏。当/RESET为低电平时,器件不接受任何命令输入。

如果QE位设置为1,则/HOLD或/RESET功能将被禁止,该引脚将成为四个数据I/O引脚之一。

对于SOIC-16封装,W25Q128FV除了/HOLD(IO3)引脚外还提供专用/RESET引脚,如图1b所示。将/RESET引脚驱动为低电平至少1us(tRESET *)将使器件复位至其初始上电状态。状态寄存器中的HOLD/RST位或QE位不会影响该专用/ RESET引脚的功能。

硬件/RESET引脚在所有输入信号中具有最高优先级。无论其他SPI信号(/CS,CLK,IO,/WP和/HOLD)的状态如何,驱动/RESET为低电平至少1us(tRESET *)的时间将中断任何正在进行的外部/内部操作。

注意:

1.虽然更快/RESET脉冲(短至几百纳秒)通常会重置设备,但建议最小1us以确保可靠运行。

2. SOIC-16封装的专用/RESET引脚有一个内部上拉电阻。如果不需要复位功能,该引脚可以悬空。

6.2 写保护

使用非易失性存储器的应用必须考虑可能危及数据完整性的噪声和其他不利系统条件的可能性。为了解决这个问题,W25Q128FV提供了几种保护数据免受无意写入的方法。

6.2.1写保护功能

  1. 当VCC低于阈值时,设备将重置
  2. 上电后延迟写禁用
  3. 擦除或编程后写入启用/禁用指令和自动写入禁用
  4. 使用状态寄存器进行软件和硬件(/WP引脚)写保护
  5. 用于阵列保护的附加单独块/扇区锁
  6. 使用掉电指令进行写保护
  7. 锁定状态寄存器的写保护,直到下一次上电
  8. 使用状态寄存器对阵列和安全寄存器进行一次性编程(OTP)写保护。

上电或掉电时,W25Q128FV将保持复位状态,同时VCC低于VWI的阈值,(参见上电时序和电压电平,图43)。重置时,所有操作都被禁用,并且不会识别任何指令。在上电期间以及在VCC电压超过VWI之后,所有编程和擦除相关指令在tPUW的时间延迟中被进一步禁用。这包括写使能、页编程、扇区擦除、块擦除、芯片擦除和写状态寄存器指令。请注意,芯片选择引脚(/CS)必须在上电时跟踪VCC电源电平,直到达到VCC-min电平和tVSL时间延迟,并且还必须在掉电时跟踪VCC电源电平以防止不良命令序列。如果需要,可以使用/CS上的上拉电阻来实现此目的。

上电后,器件自动进入写禁止状态,状态寄存器写使能锁存(WEL)设置为0。必须在页编程、扇区擦除、块擦除、芯片擦除之前发出写使能指令或写入状态寄存器指令将被接受。完成写数据、擦除或写入指令写入使能锁存器(WEL)将自动清除为写入禁用状态0。

使用写状态寄存器指令并设置状态寄存器保护(SRP0,SRP1)和块保护(CMP,SEC,TB,BP [2:0])位,便于软件控制写保护。这些设置允许将部分或整个存储器阵列配置为只读。与写保护(/WP)引脚配合使用,可以在硬件控制下启用或禁用对状态寄存器的更改。请参阅状态寄存器部分以获取更多信此外,掉电指令提供额外级别的写保护,因为除释放掉电指令外,所有指令均被忽略。

W25Q128FV还使用单独块锁提供另一种写保护方法。每个64KB块(顶部和底部块除外,总共510个块)和顶部/底部块(总共32个扇区)中的每个4KB扇区配备一个单独的块锁定位。当锁定位为0时,可以擦除或编程相应的扇区或块;当锁定位设置为1时,将忽略发送到相应扇区或块的擦除或编程命令。当器件上电时,所有单独的块锁定位都为1,因此整个存储器阵列都受到保护,不会被擦除/编程。必须发出“单独块解锁(39h)”指令以解锁任何特定扇区或块。

状态寄存器-3中的WPS位用于决定应使用哪种写保护方案。当WPS=0(出厂默认值)时,器件将仅使用CMP,SEC,TB,BP[2:0]位来保护阵列的特定区域;当WPS=1时,器件将利用单独的块锁进行写保护。


 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/124780.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • oracle删除表时索引是否删除_oracle索引类型

    oracle删除表时索引是否删除_oracle索引类型DML性能低下,其中最严重的原因之一是无用索引的存在。所有SQL的插入,更新和删除操作在它们需要在每一行数据被改变时修改大量索引的时候会变得更慢。许多Oracle管理人员只要看见在一个SQL查询的WHERE语句出现了一列的话就会为它分配索引。虽然这个方法能够让SQL运行得更快速,但是基于功能的Oracle索引使得数据库管理人员有可能在数据表的行上过度分配索引。过度分配索引会严重影响关键Oracl…

  • Android 11 应用兼容性适配,看这篇就够了

    Android 11 应用兼容性适配,看这篇就够了本文档基于谷歌Android11DeveloperPreview4(DP4)版本的变更输出一、兼容性调试工具Android11引入了新的工具,用于针对最新版平台中的行为变更来测试和调试应用。这些工具属于新的兼容性框架的一部分,可让应用开发者单独开启和关闭各项变更。有了这种灵活性,您可以关闭单项变更,然后继续针对平台中的其他变更测试应用;也可以每次单独针对一项行为变更测试应用。不管是影响所有应用的行为变更还是只影响以Android11为目标平台的应用的行为变更,您都可以随意开启或关

  • javaScript-touch事件详解(touchstart、touchmove和touchend)-滑动事件案例

    javaScript-touch事件详解(touchstart、touchmove和touchend)-滑动事件案例HTML5中新添加了很多事件,但是由于他们的兼容问题不是很理想,应用实战性不是太强,所以在这里基本省略,咱们只分享应用广泛兼容不错的事件,日后随着兼容情况提升以后再陆续添加分享。今天为大家介绍的事件主要是触摸事件:touchstart、touchmove和touchend。一开始触摸事件touchstart、touchmove和touchend是iOS版Safari浏览器为了向开发人员传达一些信息新添加的事件。因为ios设备既没有鼠标也没有键盘,所以在为移动Safari浏览器开发交互性网页的时候,PC端

  • JAVA中使用代码创建多数据源,并实现动态切换(一)

    JAVA中使用代码创建多数据源,并实现动态切换(一)

  • http和tcp的区别和联系_udp协议和tcp协议的区别

    http和tcp的区别和联系_udp协议和tcp协议的区别一、基本概念1、TCP连接手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接。TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在“无差别”的网络之上。建立起一个TCP连接需要经过“三次握手”:第一次握手:客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;…

  • 交叉熵损失函数原理详解[通俗易懂]

    交叉熵损失函数原理详解[通俗易懂]交叉熵损失函数原理详解之前在代码中经常看见交叉熵损失函数(CrossEntropyLoss),只知道它是分类问题中经常使用的一种损失函数,对于其内部的原理总是模模糊糊,而且一般使用交叉熵作为损失函数时,在模型的输出层总会接一个softmax函数,至于为什么要怎么做也是不懂,所以专门花了一些时间打算从原理入手,搞懂它,故在此写一篇博客进行总结,以便以后翻阅。交叉熵简介交叉熵是信息论中的一个…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号