M25P3232Mbit,低电压,75MHZ,SPI串行接口的flash存储器特征:32Mbit的flash。单电源供电2.7~3.6V。SPI总线通讯。75M时钟(最大)VPP=9V快速读写电压页操作时间0.6ms擦出一个扇区时间0.6s整块擦除时间:标准23s,快速17s睡眠模式电流1uABP0,BP1,BP2硬件写保护选择位擦写次数可达100000次数据可保存20年目录1描述2信号描述2.1数据输出2.2数据输入2.3时钟2.4片选2.5保护2.6写保护,提高编程电压2.7工作电压2.8电源地3SPI协议4操作方法和时序4.1页操作4.2扇区的擦除和整块的擦写4.3写检测和循环擦除4.4快速编程和擦除操作4.5激活,正常工作,睡眠模式4.6状态寄存器4.7保护方法4.8保持条件5存储组织结构6操作说明6.1写操作使能6.2使能复位6.3读器件ID6.4读状态寄存器6.4.1WIP位6.4.2WEL位6.4.3BP2,BP1,BP0位6.4.4SRWD位6.5写状态寄存器6.6读数据操作6.7快速读数据操作6.8页操作6.9扇区擦除操作6.10整个器件擦除6.11睡眠模式6.12激活器件78原始状态9极限参数10DC和AC参数11硬件结构12编号13修订记录1描述M25P32是32Mbit(4M*8)的串行flash存储器,具有增强写保护结构。存取采用SPI总线协议。一次性可编程1-256个字节(参考页编程操作说明)。增强型快速编程、擦除模式可适用于需要快速存储的场合。当VPPH达到写保护或增强编程电压时即可进入此模式。存储结构分为64个扇区,每个含有256页,每页256字节的宽度,所以整个器件可以看成有16384页组成(或者4194304个字节组成)整个器件的擦除(参考整块擦除说明),一次擦除一个扇区(参考扇区擦除说明)图1表1信号端口功能说明C时钟输入D数据输入输入Q数据输出输出S片选输入W/VPP写保护,高编程电压输入HOLDHold输入VCC电源输入VSS地图22信号描述2.1串行数据输出(Q)2.2串行数据输入(D)图31.DU=Don’tuse2.3串行时钟信号2.4片选()当片选端输入为高时,那么取消选定器件,此时串行数据输出为高阻态,除非内部编程,循环对擦除、写寄存器进行操作,器件将工作在标准电源模式下(非睡眠模式)当器件片选信号拉低使能时,即器件进入正常工作模式。在写入任何指令操作前,必须进行上电,拉低片选端(片选使能)。2.5控制信号控制信号用于终止任何器件与外部的通讯,在控制信号条件下,输出端口(Q)为高阻态(输入端口(D)、时钟信号(C)不用考虑)。2.6写保护、提高编程电压是控制输入和电源的引脚,这两个功能是根据供电电压的范围来选择。如果输入电压在低压范围(0-Vcc)此时作为控制输入功能,这种控制信号保护存储单元(写保护),禁止编程和擦除操作(参考BP2,BP1,BP0位的在状态寄存器中的状态)。3SPI通信协议M25P32与微控制器(单片机等)进行通讯是串口SPI通讯方式,有两种模式:◆CPOL=0,CPAL=0◆CPOL=1,CPAL=1这两种模式,输入信号都是随着时钟信号的上升沿而跳变,输出信号都是时钟信号的下降沿而变化。这两种模式的不同之处是在通信开始和结束时时钟的极性不同(看图5)◆C保持0(CPOL=0,CPAL=0)◆C保持1(CPOL=1,CPAL=1)图4Note:1.写保护和HOLD功能应该设置,是高还是低适当设置这是三个设备与MCU基于SPI总线的连接图,一次只能有一个设备与MCU进行通讯,也就是在Q线上一次只有一个设备在输出数据,其他设备呈高阻态。电阻R确保M25P32在总线中()线呈高阻态时不被选择。当总线进入一种状态—输入和输出端口同时呈高阻态(例如当总线复位时),时钟线(C)必须接一个下拉电阻,原因在于当输入/输出端口变为高阻态时,片选()线拉高同时时钟线(C)拉低,这样就保证()与(C)不同时变高,这样就符合时序要求。R的标准值是100K。冲放电时间常数R*Cp(Cp总线的寄生电容),要小于总线控制器保持SPI总线呈高阻态的时间。例如Cp=50PF,那么R*Cp=5us,那么总线控制器保持SPI总线呈高阻态的时间一定要大于5us。图54器件操作方法4.1页编程去编程一个字节数据,两个指令要求:写指令(WREN),这是一个字节,和页编程(PP)顺序,其中包含四个字节和数据。这是按照内部编程循环周期。页编程指令允许一次编程多大256字节(前提条件:它们是连续地址在同一页上的内存)。优化时序,推荐使用页编程操作指示去对所有指定的连续的字节(在一个单一序列)与使用数个页编程序列(每个只有几个字节)。(见6.8页编程(PP))。4.2扇区擦除、整块擦除4.3页编程允许把bit的状态从1变为0,前提条件是这个bit所在的扇区事先被擦除过(为FFh),一次可以擦除一个扇区。或者你可以擦除整块。详细见扇区擦除操作和整块擦除操作说明(在擦除前要写(WREN)写指令(写使能))。4.4M25P32提供快速编程和擦除模式,使用快速编程和擦除操作要一些特殊的条件(Vcc必须在正常的范围)◆引脚电压必须等于VPPH(见Table10)◆周围环境温度在25℃±10℃◆引脚的电压等于VPPH的累计时间不能超过80小时。4.5有用功率模式,备用功率模式,睡眠模式当片选端(s-)为低时,器件被选中,这时器件工作在有用功率工作模式。当片选端(s-)为高时,器件没被选中,器件退出有用功率工作模式,除非这时内部还有事情在处理(编程,擦除,写状态寄存器)。这时器件进入备用功率工作模式,器件的功耗下降到ICC1。当特殊的指令DP(DeepPowerDownInstruction)z执行时,器件进入睡眠模式,这可以作为一种软件保护装置。如果器件没有被激活,这样可以保护意外的编程,擦写操作。4.6状态寄存器中包含一些状态和控制位,可用于读写和设置。详细操作见6.4。4.7保护模式5存储组织结构存储组织:4194304bytes(8位)64个扇区(每个扇区65536字节,即512k)16384页(每页256bytes)每页可以单独进行编程,但是擦除操作只能针对一个扇区或整块进行,对页不能进行擦除操作。图7表3存储组织结构6指令说明所有的指令控制着数据(地址,数据)输入、输出。当片选端(s-)拉低以后,串行数据输入(D)是在取样第一个上升沿串行时钟,接着一个字节的指令码写入器件,每一位被时钟信号的上升沿锁存。指令说明见表4每个指令时序是从一个字节的指令代码开始,跟着指令码之后,这可能是地址字节,或数据字节,或由两个或无。表46.16.26.36.4读状态寄存器状态寄存器读指令可以对状态寄存器进行读写,状态寄存器在任何时候都可以进行读,甚至在编程,擦除,写状态寄存器时都可以,当器件内部正在执行指令,处理数据时,建议在向器件写入新的指令前应该检测WIP(WriteInProgress)位,可以连续读取状态寄存器,见图11图116.56.66.76.8页编程页编程指令就是向存储器中写数据,第一步先向器件写入写使能指令(WREN),写使能位置1。同样在页编程之前片选端应该为低(s-),接着写入页地址,和器件地址(同时保证写入的地址的每位(A7-A0)都不为0)。最后将数据写入存储单元。在数据传输之前都要进行写入当前页,开始的存储物理单元的地址。而且片选信号在连续数据传输过程中必须保持为低。如果一次传输的数据超过256bytes那么先前的数据将会丢失,最新的256bytes数据将会被保存在同一页。如果传输的数据少于256bytes,它们会被正确地存放在你要求的地址单元,而不会影响同一页中的其他数据。优化时序编程序列(每个只有几个字节)。(见6.8页编程(PP))。片选信号必须等最后8位数据传输结束后才能拉高。否则页编程(PP)指令无效。如果片选信号拉高,而此时页编已经开始(连续周期内),虽然页编程正在进行,状态寄存器可以读取(WIP位),页编程周期内WIP位是1,当页编程结束后变为0。在页编程周期完成之前一个不确定的时间内写使能(WEL位)复位。6.9扇区擦除操作扇区擦除操作是将所选择的扇区所有的为置1(FFh),第一步写入写使能命令(WREN),执行写使能命令以后,硬件将WEL位置1,接着拉低片选信号,然后向串口数据口(D)写入三个地址数据(有效地地址可以参考表3),在写入地址数据期间片选信号必须为0。写入地址时序见图16当三个8位的地址写入完以后,将片选信号拉高,否则扇区擦除指令不会执行,当片选信号拉高以后,即进入擦除周期(擦除时间为tSE,大约为3秒),在扇区擦除周期内可以访问状态寄存器中WIP(WriteInProgress)位,在擦除周期内WIP位为1。擦除结束后WIP位为0。在擦除结束前的不确定时间WEL(WriteEnableLatch)位是复位状态。6.10整块擦除操作整块擦除操作指令是将所有位置1,在执行擦除操作指令之前,第一步先向器件写入写使能指令(WREN)。接着拉低片选信号(s-)、写入擦除命令(BE),在写入擦除命令(BE)期间片要保持选信号(s-)一直为高。写擦除命令时序图如图17图17当擦除操作指令(BE)的第八位写入结束时,要把片选信号(s-)拉高,否则擦除操作不会执行,当片选信号(s-)拉高,接着进入整块擦除时间(擦除时间为tBE,大约80秒),在擦除期间可以访问状态寄存器中WIP(WriteInProgress)位,在擦除周期内WIP位为1,当擦除结束时WIP位为0.在擦除完成之前的不确定时间WEL(WriteEnableLatch)位是复位状态。提醒:英文版叙述更加详细