视频链接
Nor Flash硬件电路设计01_哔哩哔哩_bilibili
NOR FLASH电路设计
1、NOR FLASH介绍
NOR Flash最早是由Intel公司于1988年开发出的。
NOR Flash虽容量小但速度快,最大特点是支持芯片内执行(XIP),即程序可以直接在NOR flash的片内执行,不必再把代码读到系统RAM中。
鉴于NOR Flash 擦写速度慢,成本高等特性,NOR Flash主要应用于小容量、内容更新少的场景,嵌入式系统中经常将NOR芯片做启动芯片使用。例如启动程序的bootloader,PC主板BIOS、路由器系统存储等。
NOR Flash根据与CPU端接口的不同,可以分为Parallel NOR Flash和Serial NOR Flash两类。
Serial NOR Flash的成本比Parallel NOR Flash低,主要通过SPI接口与 Host连接。
主要厂家:三星、美光、赛普拉斯、华邦(台企)、旺宏以及兆易创新。
2、串行SPI NOR闪存VS并行NOR闪存区别
NOR闪存由于其可靠的数据存储且在嵌入式设备中广泛使用了很长时间。对于某些低功耗应用,串行SPI NOR闪存变得比并行NOR闪存设备更受欢迎。
与串行SPI NOR闪存相比,并行NOR闪存具有并行性,因此吞吐量更高。
3、NOR Flash与FPGA的配置
NOR闪存广泛用作FPGA的配置设备,主要常用于系统启动代码的存储。
上电后的FPGA会立即加载已存储在NOR器件中的配置位流。传输完成后的FPGA转换为活动(已配置)状态。FPGA包含许多配置接口选项,通常包括并行的NOR总线和串行外围设备接口(SPI)总线。
4、NOR FLASH介绍(整版以S29WS512P为例)
4.1、Nor Flash命名规范
4.2、Nor Flash封装(不同厂家封装、结构尺寸都不一样的)
对于选用一款芯片来说,同样可以实现的功能,优先选用可以手工焊接的,尽量避免选用BGA封装。
注意:不同的厂家封装都是不一样的
下面两个是旺宏的。
5、Nor Flash框图
6、NOR FLASH管脚定义
电源线
|------|--------|----------------------------------------------------------------------------------------|
| 管脚符号 | 类型 | 描述 |
| VCC | Supply | Device Power Supply |
| VCCQ | Supply | Device Input/Output Power Supply (Must be ramped simultaneously with VCC) (必须与VCC同步提升) |
| VSS | Supply | Ground |
信号线、地址线、控制线
|---------|----------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 管脚符号 | 类型 | 描述 |
| DQ0~15 | I/O | Data input/output. 输入/输出。 |
| Amax-A0 | Input | Address lines 址线地;地址信号,表示要读写数据的地址信息 不同厂家的地址线也是不一样的(注意看手册) |
| CE# | Input | Chip Enable. Asynchronous relative to CLK. 芯片使能。相对于CLK是异步的。 CE#为低电平时,芯片被选中,后续执行的操作才会有效。 |
| OE# | Input | Output Enable. Asynchronous relative to CLK. 输出使能。相对于CLK是异步的。 |
| WE# | Input | Write Enable |
| WP# | Input | Write Protect:At VIL, disables program and erase functions in the four outermost sectors. Should be at VIH for all other conditions. 写保护。在VIL,在最外面的四个扇区禁用程序和擦除功能。如有其他情况,应在VIH。 (硬件写保护引脚,低电平有效) |
| RY/BY | Output | Ready/Busy. Indicates when valid burst data is ready to be read. 就绪/繁忙。指示何时可以读取有效的突发数据。 |
| RESET# | Input | Hardware Reset. Low = device resets and returns to reading array data. 硬件复位。 |
| ACC | Input | Acceleration Input. At VHH, accelerates programming; automatically places device in unlock bypass mode. At VIL, disables all program and erase functions. Should be at VIH for all other conditions. 加速输入。 在VHH,加速编程;自动将设备置于解锁旁路模式。 在VIL,禁用所有程序和擦除功能。其他情况应该在VIH |
| RFU | Reserved | Reserved for future use |
| NC | | No Connect |
有的芯片有,有的芯片没有
|-------|-------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ADV# | Input | Address Valid. Indicates to device that the valid address is present on the address inputs. When low during asynchronous mode, indicates valid address; when low during burst mode,causes starting address to be latched at the next active clock edge. When high, device ignores address inputs. |
| CLK | Input | Clock Input. In burst mode, after the initial word is output, subsequent active edges of CLK increment the internal address counter. |
| BYTE# | Input | 字或字节选择输入;当其为高电平时,数据输出为16bit模式;低电平时,数据输出为8bit模式 |
DAT[15:0] 16根
Amax[24:0] 25根
CE: 1根
OE: 1根
WE: 1根
WP: 1根
RDY: 1根
CLK: 1根
ADV: 1根
RESET: 1根
ACC: 1根
BYTE: 1根
7、NOR FLASH硬件电路设计要点
8、硬件实战设计
8.1 ZYNQ7020硬件电路实战
8.2 其他
9、NAND Flash和NOR Flash的区别
|---------------|---------------------------|------------------------------------|
| 特性 | Nor | Nand |
| XIP(代码可以直接运行) | 支持 | 不支持 |
| 性能(擦除) | 非常慢(5s) | 快(3ms) |
| 可靠性 | 较高,位反转的比例小于NAND Flash的10% | 比较低,位反转比较常见,必须有校验措施,比如TNR必须有坏块管理措施 |
| 可擦除次数 | 10000 ~ 100000 | 100000 ~ 1000000 |
| 生命周期 | 低于NAND Flash的10% | 是Nor Flash的10倍以上 |
| 接口 | 与RAM接口相同 | I/O接口 |
| 易用性 | 容易 | 复杂 |
| 主要用途 | 常用于保存代码和关键数 | 用于保存数据 |
| 价格 | 高 | 低 |
| 集成度 | 较低 | 较高 |
| 地址线和数据线 | 独立分开 | 共用 |
| 擦除单元 | 以"扇区/块"擦除 | 以"扇区/块"擦除 |
| 坏块 | 较少 | 较多 |
| 读写单元 | 可以基于字节读写 | 必须以"块"为单元读写 |
| 性能(写) | 较低 | 较高 |
| 性能(读) | 较高 | 较低 |