文章目录
- 写在前面的话:
这是最近在调试8MB 的 nor flash芯片时,遇到一些问题后,去翻阅flash英文芯片手册,了解到了一些不同于网络上一些高赞文章所了解到的知识,本文会更关心flash内部的工作机制、三种工作模式以及状态寄存器。
这边也给看到这里的你一些建议,也许没遇到问题的时候,调用驱动库的接口可以实现功能,而去了解驱动库的运行逻辑以及flash芯片内部的控制和实现是一件更有意思的事情。
此文章以现在市售的华邦winboud,GD,XMC等厂商的芯片手册为参考资料,遵循大部分flash通用的协议和规定,但是自己确实有遇到过同一款flash的不同系类,有不一样的状态寄存器的定义,当然是很个别的情况,建议在看完文章后,根据自己的芯片手册,进行查阅。文章是自己去查阅多款英文手册总结的,也许有一些错误,希望各位大佬们可以帮我指出。😋
1.简介
-
W25Q64颗粒单位
- page:256 Bytes :写单位
- sector: 4k =16 page : 擦除单位
- block:32k = 128page
The W25Q64BV array is organized into 32,768 programmable pages of 256-bytes each. Up to 256 bytes can be programmed at a time. Pages can be erased in groups of 16 (sector erase), groups of 128 (32KB block erase), groups of 256 (64KB block erase) or the entire chip (chip erase). The 25Q64BV has 2,048 erasable sectors and 128 erasable blocks respectively.
2.工作模式
-
SPI的三种工作模式:Standard, Dual or Quad SPI
-
Standard SPI:CLK, /CS, DI, DO, /WP, /Hold,
标准SPI,也就是我们常说的四线模式:片选 (/CS),时钟 (CLK),输入数据 (DI),输出数据 (DO)。另外配有写保护 (/WP) 和维持 (/HOLD) 功能。
-
Dual SPI: CLK, /CS, IO0, IO1, /WP, /Hold
双线SPI,这种工作模式就是对标准SPI进行了改进,将DO,DI改成IO1和IO2,变成了双向IO口,这样一个时钟周期可以读写2位数据。写保护(/WP)和维持(/HOLD)功能仍然保留。
-
Quad SPI: CLK, /CS, IO0, IO1, IO2, IO3
四线SPI,这种工作模式是对Dual SPI模式进行改进,就是上面讲的,将写保护 (/WP) 和维持 (/HOLD) 引脚复用为IO口,标记为IO3,IO4,这样总共就是四个IO口,数据传送速度更快。
-
不得不说,很多文章都没有详细的介绍,并且还千篇一律的把这三种模式单纯的介绍为2倍的速率和4倍的速率,这不仅没有消除我的疑惑,还让我更加怀疑了😡。这边澄清下,Dual和Quad,并不是单纯的2倍和4倍的关系!!!! ,在两线和四线模式的时候,也要考虑在传输地址还是在传输数据的时候复用,又是以什么为标志开启复用的,这部分的内容会在第六章的时候结合时序图具体介绍。
3.引脚图
4.引脚功能表格
Pin Name | FUNCTION |
---|---|
/CS | Chip Select |
DO (IO1) | Data Output (Data Input Output 1)*1 |
/WP (IO2) | Write Protect Input ( Data Input |