当前位置:首页 > 单片机 > 单片机
[导读]硬件原理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

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

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭