【FLASH存储器系列五】SPI NOR FLASH芯片使用指导之一 |
您所在的位置:网站首页 › 2594芯片引脚定义 › 【FLASH存储器系列五】SPI NOR FLASH芯片使用指导之一 |
👉个人主页:
highman110
👉作者简介:一名硬件工程师,持续学习,不断记录,保持思考,输出干货内容
目录 1芯片简介 2引脚定义 3功能框图 4器件操作 4.1操作框图 4.2标准SPI 4.3DaulSPI 4.4QaudSPI 4.5QPI 4.6DTR(W25Q128不支持) 4.73-字节/4-字节地址模式(W25Q128只支持3字节) 4.8保持功能 4.9软复位和硬复位 4.10XIP
当下的norflash芯片外部一般都是采用SPI串行接口,并口的用的比较少,后续有机会再分享。下面以常用的华邦W25Q128FV为例,分享下这颗spinorflash的相关特性。 1芯片简介这是一片128Mbitnorflash,整片包括65536个256字节的可编程page,支持4KB的sector扇区(16个page组成)擦除、32KB(128个page组成)/64KB(256个page组成)的block区块擦除或整片擦除。外部接口支持SPI、DaulSPI、QuadSPI、DPI。 2引脚定义芯片有多种不同封装形式,这个不列了,大家自行查阅数据手册。常用的是宽体SOIC-8208mil,引脚定义如下: No. PINNAME I/O FUNCTION 1 CS# I 片选使能 2 DO(DQ1) I/O 串行数据输出(数据输入输出端口DQ1)(1) 3 WP#(DQ2) I/O 写保护输入(数据输入输出端口DQ2)(2) 4 VSS - 地 5 DI(DQ0) I/O 串行数据输入(数据输入输出端口DQ0)(1) 6 CLK I 串行时钟输入 7 HOLD#/RESET#(DQ3) I/O 保持/复位(数据输入输出端口DQ3)(2) 8 VCC - 电源输入 注: 1、DQ1~0在DualSPI指令有效。 2、DQ3~0在QuadSPI/QPI指令有效。 3功能框图1、SPIcommand&controlLogic:进行SPI串行数据解析,得到得到页地址(可以理解为选中字线)、字节地址(业内偏移地址,可以理解为选中位线)、数据、命令; 2、StatusRegister:片内的状态寄存器; 3、WriteControlLogic:写保护控制逻辑; 4、HighVoltageGenerators:电荷泵生成内部高压,用于存储单元的擦除和读写; 5、PageAddressLatch:页地址锁存 6、ByteAddressLatch:字节地址锁存 7、WriteProtectLogicandrowdecode:写保护逻辑和行解码,行即为字线。 8、Columndecodeand256bytepagebuffer:列解码和256KB页buffer,列即为位线,从这可以看出flash内部的读写是以page为单位。我理解为一页即为一根字线下挂的256*8个存储单元,也即256*8根位线。 9、存储阵列:一共256个64KBblock,每个block有16个4KB的sector。 10、SFDPregister:256字节串行Flash可发现参数(SFDP)寄存器,包含器件配置信息、可用指令和其他特性。 11、Securityregister:芯片提供3个256字节的安全寄存器,用于存储制造信息或其他重要信息,此寄存器可以单独编程或擦除。 4器件操作 4.1操作框图这是从另一款芯片手册上截下来的图,W25Q128这款不支持4字节地址模式,所以换了这个图能更全面的说明spinorflash的操作特性。 4.2标准SPI标准SPI接口总线通过CLK、CS#、DI和DO进行访问。W25Q128支持SPI模式0和模式3的操作。当SPI总线控制器处于待机状态不传送数据时,模式0下的时钟信号SCK为低,而模式3下的时钟信号CLK为高。在两种模式下,DI上的数据都是在时钟上升沿被采样,DO上的数据在时钟下降沿输出。如下图所示: 支持DualSPI操作指令包括“双口输出快速读(3Bh)”、“双口I/O快速读(BBh)”、“4-字节双口输出快速读(3Ch)”、“4-字节双口I/O快速读(BCh)”、“双口输出DTR快速读(3Dh)”、“双口I/ODTR快速读(BDh)”、“4-字节双口输出DTR快速读(3Eh)”、“4-字节双口I/ODTR快速读(BEh)”。这些指令允许数据输入或输出达到普通SPI两倍的速度。双口读指令是快速下载数据到RAM或直接从SPI总线上本地执行非关键速度代码的理想操作。当使用双口SPI指令时,DI和DO引脚成为双向I/O引脚DQ0和DQ1。 以上4字节命令和DTR命令,W25Q128不支持。 4.4QaudSPI支持QuadSPI操作指令包括“四口输出快速读(6Bh)”、“四口I/O快速读(EBh)”、“4-字节四口输出快速读(6Ch)”、“4-字节四口I/O快速读(ECh)”、“四口输出DTR快速读(6Dh)”、“四口I/ODTR快速读(EDh)”、“4-字节四口输出DTR快速读(6Eh)”、“4-字节四口I/ODTR快速读(EEh)”。QuadSPI读指令在连续和随机访问速度有极大提高,允许快速代码映射到RAM或直接从SPI总线上执行代码(XIP)。当使用QuadSPI指令时,DI、DO、WP#和HOLD#引脚成为双向I/O引脚DQ0、DQ1、DQ2、DQ3。QuadSPI模式要求状态寄存器2中的“QE位”必须设置为1。 以上4字节命令和DTR命令,W25Q128不支持。 4.5QPI支持完全的四口模式(QuadPeripheralInterface-QPI),即所有指令、地址输入、数据输入输出都为四口。“启用QPI(35h)”指令可以使器件从标准/Dual/QuadSPI模式切换到QPI模式,SPI模式和QPI模式不会同时生效。由于QPI模式下只需要2个时钟输入指令,在XIP应用中可提升系统性能。SPI和QPI模式间通过“启用QPI(35h)”指令和“禁用QPI(35h)”进行切换,也可以通过NVCR和ENVCR寄存器中的“QPI模式位”进行设置.上电、硬件复位或软件复位后,器件的默认模式受NVCR寄存器中的“QPI模式位”控制。当使用QPI指令时,DI、DO、WP#和HOLD#引脚成为双向I/O引脚:DQ0、DQ1、DQ2、DQ3。QPI模式要求状态寄存器2中的“QE位”必须设置为1。 4.6DTR(W25Q128不支持)为了在不增加时钟频率时有效提高读操作数据带宽,支持标准/Dual/QuadSPI和QPI模式的DTR读操作。DTR读操作时的指令输入和正常的SPI/QPI模式一样,只在时钟上升沿采样指令,一旦DTR指令生效,地址输入和数据输出同时在时钟上升沿和下降沿有效。 4.73-字节/4-字节地址模式(W25Q128只支持3字节)3-字节地址模式用于兼容256M位容量以下串行SPINORFLASH存储器。为了在3-字节地址模式访问128M位容量以上地址,必须联合使用“扩展地址寄存器(ExtendedAddressRegister)”。4-字节地址模式可以支持256M位到32G位容量,而不需要设置“扩展地址寄存器(ExtendedAddressRegister)”。器件在上电后由“NVCR寄存器”中的“ADP位”确定地址模式处于3-字节地址模式或4-字节地址模式。如果ADP=0,器件工作在3-字节地址模式;如果ADP=1,器件工作在4-字节地址模式。出厂时ADP=0。可通过“进入4-字节地址模式”或“退出4-字节地址模式”进行3-字节和4-字节地址模式切换。标志寄存器(FlagRegister)中的“ADS位”表示器件当前所处的地址模式,“ADS=0”指示3-字节地址模式,“ADS=1”指示4-字节地址模式。 4.8保持功能在标准/DualSPI模式下,HOLD#信号允许在片选有效时(CS#=0)暂停操作。HOLD功能可以用于器件的数据和时钟管脚与其它器件共享的情况。比如,执行页编程指令过程中仅将部分数据写入缓冲区时,系统中产生了一个更高优先级的中断要求使用SPI总线。在这种情况下,HOLD#功能可以保存当前指令的执行状态以及缓冲区中的数据,当总线可用时恢复指令写入。要进入HOLD状态,CS#必须为低。如果此时CLK信号为低,则芯片会在HOLD#的下降沿进入HOLD状态,否则芯片在下一个时钟的下降沿进入HOLD状态。如果HOLD#的上升沿时CLK为低,则芯片结束HOLD状态,否则芯片在下一个下降沿时结束HOLD状态。在HOLD状态下,串行数据输出脚(DO)为高阻态,串行数据输入脚(DI)和串行时钟脚(CLK)被忽略。片选信号(CS#)在整个HOLD期间必须为低以避免芯片内部逻辑状态被复位。 在SPI或QPI模式下,都可以通过软复位指令序列(包含2个连续指令:使能复位指令“66h”和复位指令“99h”)、硬件复位(HOLD#/RESET#引脚)可以把器件初始化成上电状态。复位过程中除了读状态寄存器,其他指令无效。状态寄存器2中的“HOLD/RST位”可以把HOLD#引脚配置为HOLD#功能或者硬件复位功能。当HOLD/RST=0(出厂默认),HOLD#已经作为HOLD功能引脚;当HOLD/RST=1时,HOLD#作为硬件复位RESET#引脚。维持RESET#低约1us可以把器件复位为上电后的初态。复位可以终止任何的编程、擦除操作,如果编程、擦除中被复位,被操作区域的数据可能会被破坏,需要重新进行编程或擦除操作。当RESET#维持低时,器件不接受任何指令。如果状态寄存器2中的“QE位”为1时,HOLD#将作为DQ3,“HOLD/RST位”无意义。 注意: 1.当RESET#维持低电平小于1us时(几百ns),也可能会触发复位,但是为了稳定可靠复位,建议RESET#维持低电平不小于1us。 2.当器件在擦除、编程过冲中或挂起时接受到复位操作,数据可能会收到破坏。建议复位前先检查状态寄存器1的“WIP位”和标志寄存器中的编程和擦除“SUS位”。 4.10XIPXIP模式只需要输入地址(不需要指令)就可访问特定地址读出数据,减少随机访问时间,所有的快速读操作都支持XIP操作。为了灵活性,支持多种进入、退出XIP模式。如果需要上电后立即进入XIP模式,需要设置NVCR寄存器中的“XIP模式位”。 为了启用XIP模式,需要2个步骤。首先设置VCR寄存器的“XIP位”(bit3)为0,然后在读操作阶段设置“XIP确认位”(bX)为0,之后XIP模式生效。一旦进入XIP模式,CS#变低后马上跟随地址(不接受指令)。通过设置“XIP确认位”为1退出XIP模式。退出XIP模式时,VCR寄存器的“XIP位”(bit3)会自动恢复到默认状态1。JFM25QL256/EFM25QL256支持上电立即进入XIP模式,需要通过NVCR的“上电XIP位”(bit[11:9])设置,只支持QuadIO模式。跟正常读操作XIP模式一样,上电后进入的XIP模式可通过“XIP确认位”(bX)维持或退出XIP模式。 注:bX是XIP确认位,设置为0保持XIP模式,设置为1则退出XIP模式回到标准的读操作模式(CS#变低后需要读指令进行读操作)。 “XIP确认位”在设置为0或1后可进入或退出XIP模式,位于快速读操作的DUMMY时钟阶段第一拍DQ0数据,时钟上升沿锁存XIP配置。 XIP确认位说明: XIP确认位 说明 0 进入或维持XIP,即下次读操作仍在XIP模式,不需要指令。 1 退出XIP模式,即下次读操作需要在CS#变低后,输入读指令 不同协议下,XIP的影响: 协议 说明 DualSPI DUMMY时钟阶段第一拍DQ1无意义。 QuadSPI或QPI DUMMY时钟阶段第一拍DQ3~1无意义。 在控制器或存储器复位后退出XIP模式: 如果控制器或存储器异常复位,且存储器是否处于XIP模式,为了退出XIP模式回到待机状态,需进行以下操作: 在QuadSPI或QPI模式下,CS#变低后维持DQ0=1至少7个时钟(3-字节地址模式)或9个时钟(4-字节地址模式),之后CS#变高回到待机状态。 在DualSPI模式下,CS#变低后维持DQ0=1至少13个时钟(3-字节地址模式)或17个时钟(4-字节地址模式),之后CS#变高回到待机状态。 在标准SPI模式下,CS#变低后维持DQ0=1至少25个时钟(3-字节地址模式)或33个时钟(4-字节地址模式),之后CS#变高回到待机状态。 这些序列可以设置“XIP确认位”为1,从而退出XIP模式,器件回到待机状态。 下一讲继续分享这款芯片的寄存器、写保护操作、指令集等内容,敬请期待! |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |