首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于ARM920T的FLASH的读写(2)

基于ARM920T的FLASH的读写(2)

void 29lv160db_EraseSector(int targetAddr)
{


printf("Sector Erase is started!\n");



_RESET();


_WR(0x555,0xaa);


_WR(0x2aa,0x55);


_WR(0x555,0x80);


_WR(0x555,0xaa);

_WR(0x2aa,0x55);
_WR(BADDR2WADDR(targetAddr),0x30);

return
_WAIT(BADDR2WADDR(targetAddr);


}






                 


图5

Erase Operation
   


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

如上图5所示,擦除操作时还要有一个关键的操作擦除查询算法,即等待Flash擦除的过程,并返回擦除是否成功的结果。算法如右图6所示

****************/
Int
_WAIT(void)

{
unsigned int state,flashStatus,old;
old=_RD(BADDR2WADDR(0x0));
while(1)

{



flashStatus=_RD(BADDR2WADDR(0x0));


if( (old&0x40) == (flashStatus&0x40) )


break;


if( flashStatus&0x20 )



{


//printf("[DQ5=1:%x]\n",flashStatus);


old=_RD(BADDR2WADDR(0x0));


flashStatus=_RD(BADDR2WADDR(0x0));


if( (old&0x40) == (flashStatus&0x40) )



return 0;


else return 1;



}



//printf(".");



old=flashStatus;


}
//printf("!\n");


return 1;

}

图6
Toggle Bit Algorithm



以上的方法为查询数据线上的一个特定位Toggle位。此外还有2种检测方法,一种为提供额外的Busy信号,处理器通过不断查询Busy信号来得知Flash的擦除操作是否完成,一般较少应用;一种为查询Polling位。


3)
NOR Flash 的编程操作

int 29lv160db_ProgFlash(U32 realAddr,U16 data)

{


_WR(0x555,0xaa);


_WR(0x2aa,0x55);


_WR(0x555,0xa0);



_WR(BADDR2WADDR(realAddr),data);



return
_WAIT(BADDR2WADDR(realAddr);



}

对擦除过的Flash进行编程比较简单,但仍然用到以上提到的查询算法,速度比较慢,一般为20uS,最长的达到500uS 。

二.NAND FLASH
NAND FLASH 在对大容量的数据存储需要中日益发展,到现今,所有的数码相机、多数MP3播放器、各种类型的U盘、很多PDA里面都有NAND FLASH的身影。
1.
Flash的简介

NOR Flash
u
程序和数据可存放在同一片芯片上,拥有独立的数据总线和地址总线,能快速随机地读取,允许系统直接从Flash中读取代码执行,而无需先将代码下载至RAM中再执行
u
可以单字节或单字编程,但不能单字节擦除,必须以块为单位或对整片执行擦除操作,在对存储器进行编程之前需要对块或整片进行预编程和擦除操作。

NAND FLASH
u
以页为单位进行读写操作,1页为256B或512B;以块为单位进行擦除操作,1块为4KB、8KB或16KB。具有快编程和快擦除的功能
u
数据、地址采用同一总线,实现串行读取。随机读取速度慢且不能按字节随机编程

u
芯片尺寸小,引脚少,是位成本(bit cost)最低的固态存储器
u
芯片存储位错误率较高,推荐使用 ECC校验,并包含有冗余块,其数目大概占1%,当某个存储块发生错误后可以进行标注,并以冗余块代替
u
Samsung、TOSHIBA和Fujistu三家公司支持采用NAND技术NAND Flash。目前,Samsung公司推出的最大存储容量可达8Gbit。NAND 主要作为SmartMedia卡、Compact Flash卡、PCMCIA ATA卡、固态盘的存储介质,并正成为Flash磁盘技术的核心。
继承事业,薪火相传
返回列表