当前位置:首页 > 单片机 > 单片机
[导读]硬件原理1.1.NorFlash简介NORFlash是Intel在1988年推出的一款商业性闪存芯片,它需要很长的时间进行抹写,大半生它能够提供完整的寻址与数据总线,并允许随机存取存储器上的任何区域,而且它可以忍受一万次到一百万次


硬件原理

1.1.NorFlash简介

NORFlash是Intel在1988年推出的一款商业性闪存芯片,它需要很长的时间进行抹写,大半生它能够提供完整的寻址与数据总线,并允许随机存取存储器上的任何区域,而且它可以忍受一万次到一百万次擦写,是早期的闪存媒体的基础。

1.2.处理器连接

从处理器的角度来看,每个地址对应的是一个BYTE的数据单元。而NorFlash的每个地址有可能对应的是一个BYTE的数据单元,也有可能对应的是一个HALF-WORD的数据单元。所以在硬件设计中,连接ARM处理器和NorFlash时,必须根据实际情况对地址信号做特别的处理。如果ARM处理器外部扩展的是8-BIT的NORFlash,数据线和地址线的连接应该如图1所示。从图中我们可以看到,处理器的数据信号D0-D7和Flash的数据信号D0-D7是一一对应连接的,处理器的地址信号A0-An和NORFlash的地址信号A0-An也是一一对应连接的。

如果ARM处理器外部扩展的是16-BIT的NorFlash,数据线必须要错位连接。图2给了一个ARM处理器和16-BITNORFlash的连接示意图。如图2所示,ARM处理器的数据信号D0-D15和Flash的数据信号D0-D15是一一对应的。而ARM处理器的地址信号和NorFlash的地址信号是错位连接的,ARM的A0悬空,ARM的A1连接Flash的A0,ARM的A2连接Flash的A1,依次类推。需要错位连接的原因是:ARM处理器的每个地址对应的是一个BYTE的数据单元,而16-BIT的Flash的每个地址对应的是一个HALF-WORD(16-BIT)的数据单元。为了保持匹配,所以必须错位连接。这样,从ARM处理器发送出来的地址信号的最低位A0对16-BITFlash来说就被屏蔽掉了。

补充说明:

1、一般来说,ARM处理器内部要设置相应的寄存器,告诉处理器外部扩展的Flash的位宽(8-BIT/16-BIT/32-BIT)。这样,处理器才知道在访问的时候如何从Flash正确的读取数据。

2、有些ARM处理器内部可以设置地址的错位。对于支持软件选择地址错位的处理器,在连接16-BITFlash的时候,硬件上可以不需要把地址线错位。

3、如果处理器支持内部设置地址错位,在实际访问的时候,送出的地址实际上是在MCU内部做了错位处理,其作用是等效于硬件连接上的错位的。

2.芯片手册

2.1.特性

容量2MB

扇区分布

一个16K,两个8K,一个32K,31个64K(BoottomBootDevice

2.2.引脚描述

2.3.逻辑图

2.4.设备总线操作

字节还是半字选择,BYET#引脚高,半字;低,字节。

开机或复位自动进入读状态。

写命令序列,绕过解锁模式UnlockBypass只需要2个周期,而不是4个周期

编程和擦除需要轮询状态位。

自动选择模式:读ID,扇区组保护,硅扇区。两种方法进入自动选择模式,编程器电压方式,写命令方式。

2.5.CFI

2.6.指令集

见数据手册

2.7.读

NorFlash上电后处于数据读取状态(ReadingArrayData)。此状态可以进行正常的读,这和读取SDRAM/SRAM/ROM一样。(要是不一样的话,芯片上电后如何从NorFlash中读取启动代码)。

2.8.读ID

一般再对Flash进行操作前都要读取芯片信息比如设备ID号。这样做的主要目的是为了判断自己写的程序是否支持该设备。NorFlash支持2种方式获取ID号:一种是编程器所用的方法需要高电压(8.5V-12.5V);另一种方法就是所谓的in-system方法,就是在系统中通过NorFlash的命令寄存器来完成。本文中只对in-system方法进行说明,此时需要切换到自动选择(AutoselectCommand),这要通过发送命令来完成。注意:进入自动选择(AutoselectCommand)模式后需要发送复位命令才能回到数据读取状态(ReadingArrayData)。

2.9.擦除

在完成信息获取后一般就要擦除数据。NorFlash支持扇区擦除(SectorErase)和整片擦除(ChipErase),这2种模式都有对应的命令序列,在完成擦除命令后会自动返回到数据读取(ReadingArrayData)状态,在返回前可查询编程的状态。

2.10.编程

完成擦除后就需要对芯片进行写入操作也就是编程,这就需要进入编程(Program)状态。在完成编程命令后会自动返回到数据读取(ReadingArrayData)状态,在返回前可查询编程的状态,注意:编程前一定要先擦除.因为编程只能将'1'改写为'0',通过擦写可以将数据全部擦写为'1'。

2.11.等待操作

NorFlash提供几个数据位来确定一个写操作的状态,它们分别是:DQ2、DQ3、DQ5、DQ6、DQ7、andRY/BY#。如上图所示。其中DQ7,RY/BY#引脚,和DQ6中的每一个都提供了一种方法来判断一个编程或者擦除操作是否已经完成或正在进行中。实际编程中只需要使用其中的一种。
DQ7:Data#Pollingbit,DQ7在编程时的状态变化。在编程过程中从正在编程的地址中读出的数据的DQ7为要写入数据的补码。比如写入的数据为0x0000,及输入的DQ7为'0',则在编程中读出的数据为'1';当编程完成时读出的数据又变回输入的数据即'0'。在擦除过程中DQ7输出为'0';擦除完成后输出为'1';注意读取的地址必须是擦除范围内的地址。
RY/BY#:高电平表示'就绪',低电平表示'忙'。
DQ6:轮转位1(ToggleBit1)。
在编程和擦除期间,读任意地址都会导致DQ6的轮转(0,1间相互变换)当操作完成后,DQ6停止转换。
DQ2:轮转位2(ToggleBit2)。当某个扇区被选中擦除时,读有效地址(地址都在擦除的扇区范围内)会导致DQ2的轮转。
注意:DQ2只能判断一个特定的扇区是否被选中擦除。但不能区分这个快是否正在擦除中或者正处于擦除暂停状态。相比之下,DQ6可以区分NorFlash是否处于擦除中或者擦除状态,但不能区分哪个快被选中擦除。因此需要这2个位来确定扇区和模式状态信息。
DQ5:超时位(ExceededTimingLimits),当编程或擦除操作超过了一个特定内部脉冲计数是DQ5=1,这表明操作失败。当编程时把'0'改为'1'就会导致DQ5=1,因为只有擦除擦做才能把'0'改为'1'。当错误发生后需要执行复位命令(见图1-1)才能返回到读数据状态。
DQ3:(扇区擦除计时位)SectorEraseTimer,只在扇区擦除指令时起作用。当擦除指令真正开始工作是DQ3=1,此时输入的命令(除擦除暂停命令外)都被忽略。DQ3=0,是可以添加附加的扇区用于多扇区擦除。
以上讲了这些状态为,实际只需要使用几个就行,比较简单的就是选择DQ5,DQ6/DQ2。

3.mini2440电路图

4.S3C2440寄存器


/*******************************************************************

*Copyright(C),2011-2012,XXX.

*FileName:nand.h

*Author:HuangYinqing

*Version:1.0

*Date::2012-04-22

*Description:norflash驱动.

*FunctionList:

*History:

******************************************************************/

#ifndef__NOR_H__

#define__NOR_H__

/*norflash调试等级*/

#defineDBG_NOR_LEVEL1

#defineNOR_TYPE_S29AL016J0x00012249

/*norflash信息*/

#defineNOR_MAIN_SECT_SIZE(64*1024)//==1页2k

#defineNOR_SIZE(2*1024*1024)//==容量256M

#defineNOR_FLASH_BASE0x00000000//==nor基地址0

/*命令地址*/

#defineNOR_CMD_ADDR1(*(volatileunsignedshort*)(NOR_FLASH_BASE+(0x00000555<<1)))

#defineNOR_CMD_ADDR2(*(volatileunsignedshort*)(NOR_FLASH_BASE+(0x000002AA<<1)))

/*操作命令*/

#defineNOR_CMD_UNLOCK10x000000AA

#defineNOR_CMD_UNLOCK20x00000055

#defineNOR_CMD_RESET0xF0

#defineNOR_CMD_AUTOSELECT0x90

#defineNOR_CMD_PROGRAM0xA0

#defineNOR_CMD_ERASE_SETUP0x80

#defineNOR_CMD_CHIP_ERASE0x30

#defineNOR_CMD_SECTOR_ERASE0x10

/*函数*/

void NorTe

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

西班牙塞维利亚,2024年3月12日 — Teledyne Technologies旗下公司、全球成像解决方案创新者Teledyne e2v宣布扩展其Flash™ CMOS图像传感器系列,推出Flash 2K LSA,该...

关键字: 图像传感器 Flash 摄像机

在这篇文章中,小编将为大家带来JTAG接口与Flash的相关报道。如果你对本文即将要讲解的内容存在一定兴趣,不妨继续往下阅读哦。

关键字: JTAG Flash

近日,第11届EEVIA年度中国硬科技媒体论坛暨产业链研创趋势展望研讨会在深圳召开,兆易创新Flash事业部产品市场经理张静在会上发布了主题为“持续开拓,兆易新一代存储产品助力行业创新”的演讲。

关键字: 兆易创新 Flash 闪存

随着信息技术的快速发展,存储器的需求日益增长。Flash存储器作为一种非易失性存储器,具有重要的应用价值和广泛的应用领域。本文将详细介绍Flash存储器的基本原理、工作方式和作用,帮助读者更好地了解这一重要的存储器技术。

关键字: Flash 汽车 电子设备

随着信息时代的到来,数据存储成为了一项基本需求。Flash存储器成为了一种常见的存储设备,用于存储各种类型的数据,如文档、图片、视频等。本文将详细介绍如何使用Flash存储器以及如何写入数据,帮助读者了解Flash存储器...

关键字: Flash 存储器 数据

随着科技的不断发展,Flash存储器已经成为存储设备中最常用的一种类型。它具有非易失性、高密度、低功耗和快速读写等特点,广泛应用于各种领域,如移动设备、嵌入式系统和存储芯片等。本文将介绍Flash存储器的编程设计以及一些...

关键字: 存储器 Flash 嵌入式

(全球TMT2023年7月28日讯)2023年7月28日,江波龙上海总部项目封顶仪式在中国(上海)自由贸易试验区临港新片区举行。江波龙上海总部位于临港新片区滴水湖科创总部湾核心区,项目于2021年启动建设,占地面积约1...

关键字: 存储芯片 数据中心 芯片设计 Flash

昨天下午,中国市场监管总局附加限制性条件批准了美国半导体公司迈凌(MaxLinear)对全球最大 NAND Flash 控制芯片供应商慧荣科技(SMI)的收购。

关键字: 迈凌 慧荣 芯片 NAND Flash

Flash存储器,也称为闪存存储器,是一种非易失性存储器(Non-Volatile Memory,NVM),用于在设备断电后仍然能够保持存储的数据。它的名称来源于一种称为“闪存技术”的特殊电子存储技术。Flash存储器的...

关键字: Flash 存储器 电荷贮存器

据业内信息统计数据,2023 年第一季度 NAND-Flash 存储市场的营收或将持续下滑,除了传统的淡季影响之外,还和过去两年的市场影响以及双边制裁等因素有关。据悉,NAND-Flash 存储市场去年不断下跌,最后一个...

关键字: NAND Flash 闪存 三星 美光 SK 海力士 铠侠
关闭
关闭