1 引言
自1984年第一块闪速存储器问世以来,闪速存储器就以其eprom的可编程能力和eeprom的电可擦除性能,以及在线电可改写特性而得到了广泛的应用和发展。随着制造工艺和材料的改进,闪速存储器比eprom和eeprom、sram及dram等存储器的优势越来越明显。
atmel公司于1998年推出了新一代大容量快闪存储器at29c040,由于它采用了fowler-nordheim隧道效应技术,使编程电流比第一代闪存降低了一个数量级。该芯片只需要+5v电源并支持分页编程,此外,还具有硬件数据保护、软件数据保护、数据查询和自举模块等其他功能。根据笔者的使用情况,本文对at29c040闪速存储器的结构特点、使用方法等作了简要介绍,并以笔者开发的某测试仪器为例说明at29c040与单片机的接口及使用方法。
2 芯片简介
2.1 芯片的结构与特点 at29c040的结构类似于sram,它有8条数据线(d0~d7)、19条地址线(a0~a18)、3条控制线(/oe、/ce、/we)以及电源、地线共32个引脚,具体引脚分布如图所示。
at29c040闪速存储器有如下几个特点:
(1)用5v单一电源供电,读、写操作使用同一电源,省去了一个12v的编程电源vpp ;
(2)编程前不需要附加的擦除操作,在编程期间,擦除操作会在芯片内部自动进行;
(3)在单个编程周期内,每次写一个扇区的数据,大大缩短了编程时间。at29c040的扇区编程时间为10ms,而其他扇区的编程时间为数百 ms;
(4)扇区容量小,减少了写数据时对系统内存资源的要求;
(5)软件数据保护sdp(software data protect)功能。为了避免人为疏忽或者系统上电、掉电等因素引起对闪速存储器的误写操作, at29c040设置了软件数据保护功能。其原理是对闪速存储器写操作前,必须按一定顺序送入三个字节的命令码,然后才能写入数据,否则数据不能被写入。
2.2 芯片操作
2.2.1 读写操作
对at29c040的读操作非常简单,类似于sram,不再赘述。这里主要讨论一下对它进行写操作的方法。首先在系统ram区为at29c040产生一个扇区的数据映像,即先将待写入的数据放入 ram中,接着送三字节的命令码到at29c040中;然后将事先放在ram中的数据传送到at29c040指定的扇区中;最后还要等待闪速存储器的写周期时间(10ms),以便将数据写入存储器中。其“写” 操作时序如图所示。
2.2.2 数据轮询
在编程周期期间,如果读取最后装入的字节将使i/o7上出现所装入数据的补码,一旦编程周期结束,所有输出线上的真数据有效,可以开始下一个编程周期。数据轮询可以在编程周期的任何时刻开始,数据轮询时序如图3所示。图中,各时间参数的含义分别是:tdh是数据保持时间; toeh是oe信号保持时间;twr 是写信号恢复时间。
2.3 软件数据保护
软件数据保护是通过一连串地向2个特殊地址写入3个特殊数据来完成的。关闭软件数据保护也是通过一连串地向2个特殊地址写入6个特殊数据来完成。如果不执行这样的操作,对29c040的访问将不能正常进行。该软件保护算法可由用户开启或关闭。图4和图5分别是是软件保护和关闭软件保护的流程图。
有关29c040芯片其他特性以及一些相关参数在其芯片手册里有很详细的说明,这里不再描述,下面就其应用作一介绍。
3 与单片机的接口
3.1 硬件设计
at29c040和微处理器接口很简便,和我们经常扩展的数据存储器基本相似。稍微有所不同的是,由于它相当于8个普通的64k字节空间的 ram,所以地址最高3位分别由3根处理器地址线来控制,访问的范围是0 0000~7 ffff。接口如图。
在硬件设计中,笔者使用的微处理器是80c51。由于扩展的芯片较多,在各器件的片选时,没有使用138译码器,而是采用了一个可编程逻辑器件(pld)。在图6中,选中29c040时, p13,p14的状态是00,选中rom和ram则分别是01和10(为简单起见,假设扩展芯片仅是以上几个)。
3.2 软件设计
在掌握了该芯片的主要特性之后,对它的使用就比较简单了。下面我们提供了16进制数0x45写到29c040里的c语言程序。
#include
#include
void delay(unsigned int l_time);
void protect();
void select_segment(unsigned char seg);
unsigned char data cdat;
void write_data(unsigned int m_addr,unsigned int s_sector,u
摘要:介绍了atmel公司的新一代大容量快闪存储器at29c040的使用方法,并以笔者开发的某测试仪器为例,给出了实际应用的硬件电路及软件设计。
关键词:快闪存储器;数据轮询;数据保护;单片机接口
中图分类号:tp334.7 文献标识码:a 文章编号:1003-353x(2003)05-0075-04
|
1 引言
自1984年第一块闪速存储器问世以来,闪速存储器就以其eprom的可编程能力和eeprom的电可擦除性能,以及在线电可改写特性而得到了广泛的应用和发展。随着制造工艺和材料的改进,闪速存储器比eprom和eeprom、sram及dram等存储器的优势越来越明显。
atmel公司于1998年推出了新一代大容量快闪存储器at29c040,由于它采用了fowler-nordheim隧道效应技术,使编程电流比第一代闪存降低了一个数量级。该芯片只需要+5v电源并支持分页编程,此外,还具有硬件数据保护、软件数据保护、数据查询和自举模块等其他功能。根据笔者的使用情况,本文对at29c040闪速存储器的结构特点、使用方法等作了简要介绍,并以笔者开发的某测试仪器为例说明at29c040与单片机的接口及使用方法。
2 芯片简介
2.1 芯片的结构与特点 at29c040的结构类似于sram,它有8条数据线(d0~d7)、19条地址线(a0~a18)、3条控制线(/oe、/ce、/we)以及电源、地线共32个引脚,具体引脚分布如图所示。
at29c040闪速存储器有如下几个特点:
(1)用5v单一电源供电,读、写操作使用同一电源,省去了一个12v的编程电源vpp ;
(2)编程前不需要附加的擦除操作,在编程期间,擦除操作会在芯片内部自动进行;
(3)在单个编程周期内,每次写一个扇区的数据,大大缩短了编程时间。at29c040的扇区编程时间为10ms,而其他扇区的编程时间为数百 ms;
(4)扇区容量小,减少了写数据时对系统内存资源的要求;
(5)软件数据保护sdp(software data protect)功能。为了避免人为疏忽或者系统上电、掉电等因素引起对闪速存储器的误写操作, at29c040设置了软件数据保护功能。其原理是对闪速存储器写操作前,必须按一定顺序送入三个字节的命令码,然后才能写入数据,否则数据不能被写入。
2.2 芯片操作
2.2.1 读写操作
对at29c040的读操作非常简单,类似于sram,不再赘述。这里主要讨论一下对它进行写操作的方法。首先在系统ram区为at29c040产生一个扇区的数据映像,即先将待写入的数据放入 ram中,接着送三字节的命令码到at29c040中;然后将事先放在ram中的数据传送到at29c040指定的扇区中;最后还要等待闪速存储器的写周期时间(10ms),以便将数据写入存储器中。其“写” 操作时序如图所示。
2.2.2 数据轮询
在编程周期期间,如果读取最后装入的字节将使i/o7上出现所装入数据的补码,一旦编程周期结束,所有输出线上的真数据有效,可以开始下一个编程周期。数据轮询可以在编程周期的任何时刻开始,数据轮询时序如图3所示。图中,各时间参数的含义分别是:tdh是数据保持时间; toeh是oe信号保持时间;twr 是写信号恢复时间。
2.3 软件数据保护
软件数据保护是通过一连串地向2个特殊地址写入3个特殊数据来完成的。关闭软件数据保护也是通过一连串地向2个特殊地址写入6个特殊数据来完成。如果不执行这样的操作,对29c040的访问将不能正常进行。该软件保护算法可由用户开启或关闭。图4和图5分别是是软件保护和关闭软件保护的流程图。
有关29c040芯片其他特性以及一些相关参数在其芯片手册里有很详细的说明,这里不再描述,下面就其应用作一介绍。
3 与单片机的接口
3.1 硬件设计
at29c040和微处理器接口很简便,和我们经常扩展的数据存储器基本相似。稍微有所不同的是,由于它相当于8个普通的64k字节空间的 ram,所以地址最高3位分别由3根处理器地址线来控制,访问的范围是0 0000~7 ffff。接口如图。
在硬件设计中,笔者使用的微处理器是80c51。由于扩展的芯片较多,在各器件的片选时,没有使用138译码器,而是采用了一个可编程逻辑器件(pld)。在图6中,选中29c040时, p13,p14的状态是00,选中rom和ram则分别是01和10(为简单起见,假设扩展芯片仅是以上几个)。
3.2 软件设计
在掌握了该芯片的主要特性之后,对它的使用就比较简单了。下面我们提供了16进制数0x45写到29c040里的c语言程序。
#include
#include
void delay(unsigned int l_time);
void protect();
void select_segment(unsigned char seg);
unsigned char data cdat;
void write_data(unsigned int m_addr,unsigned int s_sector,u
热门点击
推荐技术资料
| |