NOR Flash的原理与操作

本文详细介绍了NOR Flash存储器的原理,包括其支持XIP执行的特点,以及最小访问单元和扇区结构。此外,文章还探讨了NOR Flash与S3C2440芯片的连接,特别是16位数据宽度的错位连接,并解析了读写擦除操作的时序配置。最后,通过实例展示了NOR Flash的扇区擦除和写操作的步骤。
摘要由CSDN通过智能技术生成

学习目标:

1、了解nor flash存储芯片的概念和特性

2、掌握使用s3c2440芯片对外挂的nor flash进行读写擦除操作


1、NOR Flash的简单介绍

NOR Flash最早是由Intel公司于1988年开发出的,是现在市场上两种主要的非易失性存储器之一,它的出现彻底改变了存储器市场上由EPROM(Erasable Programmable Read-Only-Memory电可编程序只读存储器)和EEPROM(电可擦只读存储器Electrically Erasable Programmable Read - Only Memory)一统天下的局面。NOR Flash最大特点是支持XIP(Execute On Chip),既程序可以直接在NOR flash的片内执行,在NOR Flash中的代码运行时不需要重定位复制到RAM内。NOR Flash的地址线和数据线分开,数据的读取和RAM很类似,只要能够提供数据地址,数据总线就能正确给出数据。不过不能直接对它进行写操作,执行写操作之前需要先发送固定的命令序列,然后发送写操作的地址和数据。

NOR Flash存储器的最小访问单元一般分为8位和16位的,也有一些NOR Flash器件同时支持8位和16位模式,这种Flash的位宽可以在设计硬件时选择,当芯片的BYTE#引脚接为高电平,芯片工作在位宽16位模式,BYTE#引脚设为低电平时,芯片工作在位宽8位模式。

NOR Flash一般有多个扇区,扇区是NOR Flash擦除的最小单位,Nor Flash中每个扇区的大小也不是固定的,扇区的排放一般分为两种模式Top Boot part 和Bottom Boot part 。这两种形式的区别是小块的扇区在NOR Flash芯片中放置的位置不同,Bottom Boot类型的NOR Flash小块地址位于芯片0地址,而Top Boot part类型的NOR Flash小块地址位于芯片的高地址上。

2、NOR Flash引脚介绍(以MX29LV60DBTI芯片为例)

MX29LV60DBTI是16M-BIT的NOR Flash芯片,它的引脚如下图所示:

引脚描述表

符号 管脚名 功能
A0~A19 地址输入 地址信号,表示要读写数据的地址信息
Q0~Q15 数据输入/输出 数据输入/输出引脚,读周期内输出数据,写周期内输入数据
CE# 芯片使能 CE#为低电平时,芯片被选中,后续执行的操作才会有效
WE# 写使能 配合CE#和OE#以及地址引脚和数据引脚一起使用,当CE#低电平,OE#高电平,WE#为低电平时,Q0~Q15上数据被写入到A0~A19表示地址中
BYTE# 字或字节选择输入 当其为高电平时,数据输出为16bit模式;低电平时,数据输出为8bit模式
RESET# 硬件复位/扇区保护解锁引脚 硬件复位引脚,当输入信号为低电平时,芯片复位
OE# 输出使能 配合CE#和WE#以及地址引脚和数据引脚一起使用,当CE#低电平,WE#高电平,OE#为低电平时,将地址A0~A19内存中的数据传送到Q0~A15上
RY/BY#  RY/BY#输出引脚 用于输出Ready和Busy信号,实际用时可以不接,可以用命令查询NOR Flash状态代替
VCC 电源供应引脚(2.7v~3.6v) 芯片供电电源
GND 地引脚 芯片电源地
WP#/ACC 硬件写保护/加速引脚 硬件写保护引脚,低电平有效
NC 不连接内部引脚 不用连接

3、NOR Flash于S3C2440连接图

NOR Flash的数据宽度是16位的,与2440处理器的连接时,地址线必须错位进行连接。s3c2440的地址线A0悬空,A1连接NOR Flash的地址线A0,A2连接NOR Flash的地址线A1,依次排序。需要错位连接的原因是:2440处理器的每个地址对应的是一个BYTE 的数据单元,而 16-BIT 的 NOR FLASH 的每个地址对应的是一个HALF-WORD(16-BIT)的数据单元。为了保持匹配,所以必须错位连接。这样,从2440处理器发送出来的地址信号的最低位A0对16-BIT FLASH来说就被屏蔽掉了。

上面的描述过程太过抽象了,下面通过画图来解释错位连接的原因:

①、ARM处理器需要从地址0x0读取一个BYTE

  1. ARM处理器在地址线An-A0上送出信号0x0;
  2. 由于2440的A1连接NOR Flash A0,16-BIT FLASH在自己的地址信号An-A0上看到的地址是0x0,然后将地址0x0对应的16-BIT数据单元输出到D15-D0上;
  3. ARM处理器知道访问的是16-BIT的FLASH,从D7-D0上读取所需要的一个BYTE的数据。

②、ARM处理器需要从地址0x1读取一个BYTE

  1. ARM处理器在地址线An-A0上送出信号0x1;
  2. 由于2440的A1连接NOR Flash A0,16-BIT FLASH在自己的地址信号An-A0上看到的地址依然是0x0, 然后将地址0x0对应的16-BIT数据单元输出到D15-D0上;
  3. ARM处理器知道访问的是16-BIT的FLASH,从D15-D8 上读取所需要的一个BYTE 的数据。

注意:有些ARM处理器内部可以设置地址的错位。对于支持软件选择地址错位的处理器,在连接16-BIT FLASH的时候,硬件上不需要把地址线错位。在设计的时候,应该参考芯片的数据手册,以手册为准,以免造成不必要的麻烦(如stm32连接是A0~A0)。

4、S3C2440驱动NOR Flash时序配置

 s2c2440内

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值