首页 | 期刊简介 | 编辑部 | 广告部 | 发行部 | 在线投稿 | 联系我们 | 产品信息索取
2024年11月21日星期四
2011年第01期
 
2010年第12期
 
2010年第11期
2010年第11期
 
2010年第10期
2010年第10期
 
2010年第09期
2010年第09期
 
2010年第09期
2010年第08期
 
2010年第07期
2010年第07期
 
2010年第06期
2010年第06期
 
2010年第05期
2010年第05期
 
2010年第04期
2010年第04期
 
2010年第03期
2010年第03期
 
2010年第02期
2010年第02期
 
2010年第01期
2010年第01期
 
2009年第12期
2009年第12期
 
2009年第11期
2009年第11期
 
2009年第10期
2009年第10期
 
2009年第9期
2009年第9期
 
2009年第8期
2009年第8期
 
2009年第7期
2009年第7期
 
2009年第6期
2009年第6期
 
2009年第5期
2009年第5期
 
2009年第4期
2009年第4期
 
2009年第3期
2009年第3期
 
2009年第2期
2009年第2期
 
2009年第1期
2009年第1期
 
2008年第12期
2008年第12期
 
2008年第11期
2008年第11期
 
2008年第10期
2008年第10期
 
2008年第9期
2008年第9期
 
2008年第8期
2008年第8期
 
2008年第7期
2008年第7期
 
2008年第6期
2008年第6期
 
2008年第5期
2008年第5期
 
2008年第4期
2008年第4期
 
2008年第3期
2008年第3期
 
2008年第2期
2008年第2期
 
2008年第1期
2008年第1期
新型大容量闪存AT45DB041
AT45DB041: New High capability Flash Memory
■北方交通大学 现代通信研究所 熊磊 张鹏 姚冬苹
AT45DB041是ATMEL公司的新型FLASH芯片。该芯片具有容量大、读写速度快、外围电路少等诸多优点,更为重要的是该芯片可最低工作在2.5V,工作电流仅为4mA,因此在移动通信、便携等场合得到了广泛的应用。


芯片工作原理与硬件连接


AT45DB041中的数据按页存放,主存共2048页,每页264字节,所以总容量为528K字节(约4M比特)。存放在主存中的数据掉电不丢失。除了主存以外,AT45DB041还有两个容量为264字节的数据缓存。缓存可以用作主存与外部进行数据交换时的缓冲区域,也可以暂存一些临时数据。缓存读写方便迅速,但掉电数据会丢失。AT45DB041数据读写采用串行方式,读写速度快,从页到缓存的传输时间为80 s左右,并且兼容CMOS和TTL输入和输出。

AT45DB041通过片选管脚/CS使能,通过串行输出(SO)和串行输入(SI)进行数据读和写。由串行时钟(SCK)对读写进行控制。
设备运行受微处理器的指令控制。一条有效的指令起始于/CS管脚的下降沿,并跟随相应的8位操作码和指定的缓存或主存地址码。当/CS管脚为低时,轮换时钟管脚(SCK)控制操作码和指定的缓存或主存地址码通过SI口的载入。所有的指令、地址和数据都从高字节开始传送。

数据读取

读缓存:通过不同的操作码可选择读取两个缓存中的其中一个(操作码54H用作读缓存1,而操作码56H用作读缓存2)。为了实现读缓存的操作,在8位操作码后必须跟有15位任意码,9位地址码和8位任意码。其中9位地址码(BFA8-BFA0)被用作指定要读取的首字节。在轮换时钟SCK的控制下,从SI载入操作码、地址码、任意码。当载入结束后,在SCK轮换时钟的控制下,缓存中的数据就可以从SO读出。当读到缓存的末尾时,设备将继续从缓存的开端重读。在这整个过程中/CS必须保持低电平。读缓存结束后,/CS上一个从低到高的电平跳变将终止读操作。

主存页到缓存的传送:一页数据可以从主存传至缓存1或2。8位操作码(53H用于缓存1,55H用于缓存2)后跟有4位保留位,11位用于指定目的页的地址位(PA10-PA0),和9位任意码,在轮换时钟SCK的控制下从SI载入。在这一过程中/CS管脚必须保持低电位。当载入结束后,在/CS上检测到一个由低到高的电平跳变后,主存页中的数据开始传送至缓存。在数据传送的过程中,状态寄存器将指示状态忙。

数据写入

写缓存:在SCK的控制下,8位的操作码(84H用于缓存1,87H用于缓存2)后面跟着15位任意码和9位地址码(BFA8-BFA0)由SI载入,其中9位地址码指定了缓存中被写的首字节,数据紧随着地址码输入。/CS上一个由低到高的跳变,将结束写缓存操作。

带有内置擦除的缓存至主存页的传送:8位的操作码(83H用于缓存1,86H用于缓存2)后跟有4位保留位,11位指定要写入的主存页的地址码(PA10-PA0),和9位任意码,在轮换时钟SCK的控制下从SI载入。当/CS上检测到一个由低到高的跳变时,器件将首先擦除被选中的主存页,然后将储存在缓存中的数据写入该页。擦除和写入的过程都是自动进行的,这一进程不超过20ms。在这个时间里,状态寄存器将指示状态忙。 状态寄存器值读取:读状态寄存器的值可以用来确定设备的忙闲状态。忙闲状态通过寄存器的第7位指示。如果第7位为1,则设备位于空闲状态并可接收下一条指令。如果为0,则设备忙。在载入8位操作码57H后,从SO上可以读出1字节的状态寄存器的值。

写保护(/WP) B041具有的写保护功能仅对主存的前256页有效。当/WP管脚为低电平时,FLASH禁止对主存的前256页进行写操作(只读),但主存的其它页并不受影响,仍然可以进行读写。AT45DB041的选择性写保护功能为用户的使用提供了很大的便利,用户可以将非常重要的数据,如系统参数、密码和身份信息等存入主存的前256页,并将/WP置低,使这些数据处于写保护状态,以保证这些数据不会被误擦除。而与此同时,用户仍能对其它地址进行读写。如果用户将/WP管脚悬空或接地,FLASH将不具备写保护功能,所有的主存页都可进行读写。

复位(/RESET) B041采用低电平复位,即当/RESET管脚出现低电平(<0.6V)时,芯片停止工作,待/RESET管脚的电平被拉高(>2.0V)后,恢复正常工作。为了避免接通电源时,由于电压不稳可能会对芯片正常工作造成影响,所以在使用时,最好在系统开机后延时10ms,再对FLASH进行操作。


与微处理器的接口


B041外围电路非常简单,可以很方便地与微控制器连接。SO、SI、SCK、/CS,/WP分别与微处理器的通用I/O相连即可。


软件设计


下面主要对AT45DB041的数据读写作简要介绍。

AT45DB041进行数据读写主要包括操作码、保留位、地址码、任意码、用户数据的载入和用户数据和状态字的读出两部分。

数据载入子程序

要载入的数据(操作码、保留位、地址码、任意码和用户数据)寄存从R0开始的地址单元里
;数据个数放在R6中 DADAIN:PUSH  ACC
   CLR  CS   ;使能R0
TRSMIT:MOV A,@R0
MOV R7,#08H 1字节=8比特
LOOPT: RLC A ;将要发送的数据由高位到低位依次移出
CLR SCK
MOV SI, 将1比特的数据送入SI
NOP
SETB SCK ;在SCK的上升沿AT45DBO41从SI上取数
DJNZ R7,LOOPT ;一字节的数据发送完毕
INC R0
DJNZ R6,TRSMIT
SETB CS ;所有数据发送完毕
POP ACC
RET

数据读取子程序:

;将取出的数据(用户数据和状态字)寄存从R1开始的地址单元里

;数据个数放在R6中
DATAOUT:PUSH ACC
CLR, A
CLR C
CLR CS ;使能
RECEIVE:CLR SCK
MOV R7,#08H
LOOPR: SETB SCK 在SCK的上升沿AT45DB041将数据放在S0上
MOV C,SO ;将1比特的数据取出
NOP
SETB SCK
RLC A
DJNZ R7,LOOPR ;一字节的数据接收完毕
MOV @R1,A
INC R1
DJNZ R6,RECEIVE
SETB CSp ;所有数据接收完毕
POP ACC
RET

         
版权所有《世界电子元器件》杂志社
地址:北京市海淀区上地东路35号颐泉汇 邮编:100085
电话:010-62985649
E-mail:dongmei@eccn.com