74HC373与闪速存储器AT29C010A及其应用
关键词:闪速存储器;接口;AT29C010A;数据?;?/p>
引言
FLASH存储器是一种电擦除与再编程的快速存储器,又称为闪速存储器。它可以分为两大类:并行FLASH和串行FLASH。串行产品能节约空间和成本,但存储量小,又由于是串行通信,所以速度较慢,开发编程较复杂;并行产品具有存储量大,速度快,使用方便等特点。ATMEL公司生产的29系列存储器是一种并行、高性能、大容量闪速存储器。
AT29C010A的主要特点
ATMEL公司生产的29系列CMOSFlash存储器分为电池电压型AT29BV系列(2.7V-3.6V操作),低电压型AT29LV系列(3.0-3.6V操作),标准电压型AT29C(5V操作)。AT29C010A是一种5V在线闪速可电擦除的存储器,具有掉电?;すδ?;方便的在线编程能力不需高的输入电压,指令系统在5V电压下即可控制AT29C010A。AT29C010A具有1M位的存储空间,分成1024个分区,每一分区有128个字节。从AT29C010A中读取数据与E2PROM的操作相似,再编程能力是以每一分区为单位的,128字节的数据装入AT29C010A的同时完成编程。在一个再编程周期里,存储单元的寻址和128字节数据通过内部锁存可释放地址和数据总线,这样可为其他操作提供地址和数据总线。编程周期开始,AT29C010A会自动擦除分区的内容,然后对锁存的数据在定时器的作用下进行编程。编程周期的结束是通过查询I/O7的有效时实现的,一旦编程周期结束,就可开始一个新的读或编程操作。
图1 AT29C010A内部结构图
AT29C010A具有以下主要特性:可电擦除、可编程的闪速存储器;快速读取时间—70ns;内部程序和定时器控制;2个8K的可锁定的自举??椋环智绦虿僮?,擦除、编程单向循环方式,可超过10000次,1024个分区(128字节/分区),内部地址和128位数据锁存;硬件和软件数据?;?;快速的的分区编程周期—10ms;数据轮询检测编程是否结束;低功率消耗—50mA有效电流,100mACMOS维持电流;单一5V±10%电源供电;CMOS和TTL可兼容的输入输出;有商用和工业用的温度可选范围。
AT29C010A的内部结构如图1所示。
器件操作
读操作
AT29C010A的存取类似于E2PROM,当和为低电平、WE为高电平时,由A0-A16寻址的内存单元中的数据会读到I/O0-I/O7输出管脚;若和为高电平,则I/O0-I/O7输出管脚为高阻态。这种双向控制的方式为使用者提供了避免总线竞争的灵活性。
字节装载
AT29C010A的字节装载是用于装入每一分区待编程的128K字节数据或是用于进行数据?;さ娜砑嗦?。每一字节的装载是通过或各自有低电平,为高电平时实现的,数据是在或在一个上升沿时锁存的。
编程
AT29C010A以分区为单位进行再编程,如果某一分区中的一个数据需要改变,那么这一分区中的所有数据必须重新装入。一旦某一分区中的字节被装入,这些字节将同时在内部编程时间内进行编程,在此时间内若有数据装入,则会产生不确定的数据;当**字节数据装入AT29C010A之后,接着其余字节将以同一方式依次装入,字节不需按顺序装载,可以任意方式装载。每一新装载的数据若要被编程,必须有(或)由高到低的跳变,这一跳变需在150ms内完成,同时前面字节的(或)由低到高的跳变时间也是150ms。如果一个由高到低的跳变在*后一个由低到高的150ms内没有被检测到,那么字节装载的时间段将结束,此时内部编程时间段开始。A7-A16提供分区地址,分区地址只在每一个(或)由高到低的跳变时才有效;A0-A6提供分区中每一字节的地址。一旦编程时间段开始,在写周期的维持时间内,读操作实际上是一种查询。
软件数据?;?br>AT29C010A具有软件控制数据?;さ奶匦?,这一特性在ATMEL公司出厂时没有开启,用户可根据需要开启或关闭。一旦开启,在未执行关闭指令之前这一特性始终有效;供电情况的改变不会重新设置这一特性,但需警惕在供电情况改变时随机的编程周期可能改变这一特性。若要开启软件数据?;ぃ匦胫葱腥跽攵源娣庞刑厥馐莸奶厥獾刂返ピ某绦蛑噶?。当开启软件数据?;ぶ螅璧某绦蛉粢鱿?,也必须执行同样的三条程序指令。软件?;な鼓艿娜砑惴ū匦朐诔绦蚩赡苤葱兄胺⑺偷紸T29C010A,所有的软件程序指令要按照分区程序的时序要求进行。在给出软件数据?;さ闹噶畲胫蟊憧山凶纸诘淖霸?。图2给出了软件数据保护使能或撤销软件算法的流程图。
图2 软件数据?;な鼓芑虺废鞒掏?/p>
图3 工业智能检测仪器框图
硬件数据?;?br>AT29C010A硬件?;び幸韵录钢址椒ǎ?br>·VCC自动检测—如果VCC低于3.8V(典型值),程序的运行将中止。
·VCC供电延迟—如果VCC达到自动检测水平,AT29C010A将自动在编程前暂停5ms。
·编程禁止—当为低电平时,或为高电平时禁止编程。
·噪声滤波—当或输入脉宽少于15ns(典型值),则不启动编程周期。
数据轮询
AT29C010A采用数据轮询来识别程序是否结束。在编程周期内,试图读数据的操作将在装载*后一字节时在I/O7上产生装载数据完成的信号;一旦编程周期结束,有效的数据将送到输出端,并且开始下一编程周期,数据轮询可以在编程周期的任何时间进行。
重复位
另外,除数据轮询方式外,AT29C010A还提供另一种决定编程、擦除周期的方法。编程和擦除操作周期,连续的试图从AT29C010A中读数据的操作在I/O6上出现1和0,一旦编程周期结束,I/O6位将重复并且读取有效数据;检测重复位可在编程周期任何时间进行。