本文以旺宏 MX25L6433F 芯片为例加以说明,该芯片为64Mb serial Nor flash。理解本文时可能需要对照其datasheet,
一、名词解释
Serial: 相对parallel而言,只有#CE、SCLK、DI、DO、#WP、#HOLD等信号线。
Nor: Not or,或非,与Nand相对的flash的架构,基本结构如下图所示。
二、器件操作
在SCLK上升沿采数据SI,在SCLK下降沿推数据SO。
mode 0:idle时SCLK低电平。mode 3:idle时SCLK高电平。
备注:SPI有4中mode,0~3。
三、地址映射
另外,1 page = 256 Byte
四、操作命令
1、Read Operation(读)
A、Read Data Bytes (READ)(03h)
操作步骤: #CS拉低,SI上在SCLK的上升沿送进24 bit的任意地址后,SO在CLK的下降沿推出以Byte为单位的data,地址自动增加,只要#CS一直为低,地址直到结束后仍会回到地址0继续推出data。
B、Read at Higher Speed (FAST_READ) Sequence (Command 0Bh)
与Read Data Bytes(03h)的区别在于,在24 bit address之后需要1 byte的dummy cycle,03h的最高速率是fR=50MHz,0Bh的最高速率是fC=133MHz。
C、Dual Read Mode (Command 3Bh)和Quad Read Mode (Command 6Bh)
与FAST_READ(0Bh)的区别在于,3Bh的data从SIO1和SIO0同时推出来,而6Bh的data从SIO0~3同时推出来。下图为DREAD时序图。
D、2 x I/O Read Mode (Command BBh)和4 x I/O Read Mode(Command EBh)
与Dual Read Mode (3Bh)和Quad Read Mode (6Bh)的区别在于,BBh和EBh的24 bit address从SIO0~1或SIO0~3同时送进。另外,EBh支持Performance Enhance Mode。下图为2 x I/O Read时序图。
E、Burst Read
在burst read之前需要设置burst长度,Set Burst Length(C0h或77h)来设置burst长度wrap depth,wrap around指的是到了结束地址后会从开始的地址重新开始。一旦设置了burst长度,今后的read命令都将遵守burst read mode,取消burst read只要重新下Set Burst Length,将data写入1xh即可。
Set Burst Length(C0h或77h)时序图如下:
2、Program Operation(写)
写操作需要WRITE ENABLE (06h)命令将WEL bit置起来,然后PAGE PROGRAM (02h) 将data经过SI信号线写入。由于写的速度是比较慢的,所以在一次写入之后,必须等待,通过WIP bit可以查看写入完成与否。
A、Page Program (PP) (Command 02h)
针对同一个page(256 byte)操作,
情况1: 超出256 byte写入的话,只取最后的256 byte data写入,前面的丢弃。
情况2:24 bit address的[7:0]是page地址,当[7:0]都为0的话,可以写入整个page的data,即256 byte的data;当[7:0]不为0的话,超过该page的data将会回到该page的起始地址写入。
情况3:可以写入小于page边界的data,data最少为1 byte,那就是byte写入了。
B、4 x I/O Page Program (4PP) (Command 38h)
与Page Program的区别在于,38h的地址和数据通过SIO0~3送入和推出,与4 x I/O Read Mode(Command EBh)相对应。
3、Erase(擦)
在Erase之前必须WREN,SE、BE、BE32K和CE全部需要WREN。
A、Sector Erase (20h)、Block Erase (D8h)和Block Erase 32KB (52h)
sector、Block 64KB和Block 32KB参见地址映射。
B、Chip Erase (CE) (Command 60h or C7h)
五、常见封装
- SOP8 150mil:150mil指的是body的宽度
- SOP8 208mil:208mil指的是body的宽度,GigaDevice(兆易创新)喜欢这种描述
- SOP8 200mil:与SOP8 208mil完全相同,MXIC(旺宏)喜欢这种描述
- SOIC8 208mil:与SOP8 208mil完全相同,Microchip(微芯)/ Winbond(华邦)喜欢这种描述
SOIC8 200mil:与SOP8 208mil完全相同,不常见- SOP16 300mil:300mil指的是body的宽度
总结:在SPI Nor Flash中,SOP封装和SOIC封装是一个概念;200MIL和208MIL也是一个概念。
SOP8 200MIL | MXIC(旺宏) MX25V4035F: |
SOP8 208MIL | GigaDevice(兆易创新) GD25Q16C: |
SOIC8 208MIL | Winbond(华邦) W25Q128JV: |
3-Byte地址模式和4-Byte地址模式
3-Byte和4-Byte模式,其实就是地址空间不同,对应的空间大小不同
- 3-Byte空间最大只达到128Mbit(
)
- 4-Byte空间最大只达到128Mb(
)
4-Byte模式的Nor Flash默认兼容3-Byte模式:
总结:
1、Nor flash的read和write(program)的操作都要比Nand flash的操作要简单,对Nor flash的读写操作可以做到byte级别。
2、Nor flash本身还有很多其他操作,本文没有涉及到,需要查看其datasheet。