导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→单片机与闪速存储器的程序设计应注意的问题[原创][sz20120406]

 *第30841篇: 单片机与闪速存储器的程序设计应注意的问题[原创]

  
楼 主:sz20120406 2012年4月11日12:51
 单片机与闪速存储器的程序设计应注意的问题[原创]
单片机与闪速存储器的程序设计应注意的问题
(1)不同厂家的闪速存储器使用不同的操作命令集,软件要根据不同厂家的闪速存储器使用不同的操作命令集。
(2)很多闪速存储器内部存储结构和时间参数是不同的。由于闪速存储器内部都是分成不目的地小存储块,在对闪速存储器进行擦除操作时,软件要根据不同型号的闪速存储器调整被擦除存储块的大小等参数。同时,由于不同型号的闪速存储器时间参数是不同,软件要根据闪速存储器的时间参数来调整读写和擦除操作的时间。
针对上面遇到的问题,我们从硬件和软件两个方面来考虑单片机与闪速存储器应用系统中应解决的关键技术问题。
1 单片机与闪速存储器硬件接口的关键技术
生产闪速存储器的半导体公司主要有美国的INTEL AMD公司和日本的Sharp、Fujitus公司,这四家公司生产的闪速存储器的市场占有份额相当大。表1列出了四家公司生产的主要型号的闪速存储器的性能指标。
 
从表1中可以看出,不同厂家的闪速存储器的工作电压编程擦除电压是不一样的,同数据位的长度也是不一样的。由于目前国内应用最广泛的单片机仍然是8位的MCS-51系列单片机,16位的单片机种类比较少,而且工作电压在低电压(2.7~3.6V)的单片机又是廖廖无几。能否用市场上常见的普通8位单片机来设计一个与大多数闪速存储器接口的电路呢?答案是肯定的。我们用普通的8位单片机AT89C52设计了一个与闪速存储器TE28F160B3的接口电路,AT89C52是ATMEL公司生产的与MCS-51系列单片机兼容的8位单片机,它内部有一个16K的E2PROM程序存储器,它的工作电压是5V.TE28F160B3是INTEL公司生产的容量为16M位、数据总线宽度为16位的闪存存储器,它的工作电压为2.7~3.6V。需要指出的是,虽然TE28F160B3的工作电压为2.7~3.6V,但是其各引脚的最大工作电压范围却在-0.5V~5.0V,各引脚高电平最高工作电压不能超过5.5V,这样就使得我们可以使用AT89C52来设计与TE28F160B3的接口电路。
表1 Intel、AMD、SHarp、Fujitsu闪速存储器的性能指标表
 工作电压(Vcc)擦除电压(Vpp)容量/数据位长度
28F008SA(Intel)5V12V8Mbit/8
28F016SA(Intel)5V12V16Mbit/8
28F008S3(Intel)2.7/3.3V2.7/3.3V或12V8Mbit/8
28F008S5(Intel)5V5/12V8Mbit/8
28F016SC(Intel)2.7/3.3V或5V3.3/5V或12V16Mbit/8
28F008BC/BE(Intel)2.7/3.3V/5V5/12V8Mbit/8
28F800BC/CV/CE(Intel)2.7/3.3V/5V5/12V8Mbit/16
28F008B3(Intel)2.7~3.6V2.7~3.6V或12V8Mbit/8
28F400B3(Intel)2.7~3.6V2.7~3.6V或12V4Mbit/16
28F160B3(Intel)2.7~3.6V2.7~3.6V或12V16Mbit/16
28F400B5(Intel)5V5/12V4Mbit/16
29LV008(AMD)2.7~3.6V2.7~3.6V8Mbit/8
29LV160(AMD)2.7~3.6V2.7~3.6V16Mbit/16
LH28F008SC(SHarp)3.3/5V3.3/5V或12V8Mbit/8
LH28F400BG(SHarp)2.7V/3.3V或5V2.7V/3.3V/5V或12V4Mbit/16
LH28F160S3(SHarp)2.7V或3.3V2.7V/3.3V或5V16Mbit/16
MBM29LV008(FUJITSU)2.7~3.6V2.7~3.6V8Mbit/8
MBM29LV800(FUJITSU)2.7~3.6V2.7~3.6V8Mbit/16
由于AT89C52是8位单片机,而TE28F160B3是16位数据总线,我们使用了两片74HC244和两片74HC373来完成8位和16位的数据转换。当AT89C52往TE28F160B3写数据时,首先单片机将高8位数据写入到锁存器74HC373-1中。其中74HC373-1锁存信号W373由译码器GAL 16V8输出,然后单片机开始执行对TE28F160B3写数据操作,低8位数据由AT89C52的P0口直接写入TE28F160B3,而锁存在74HC373-1中的高8位数据通过缓冲器74HC244-1写入到TE28F160B3的DQ8~DQ15总线上。当AT89C52从TE28F160B3读数据时,读出的高8位数据先锁存到74HC373-2上,然后通过缓冲器74HC244-2读入到AT89C52中。TE28F160B3的存储容量为16M位,有20根地址线A0~A19,而AT89C52一共才有16根地址线。因此利用AT89C52的地址线A15、A14和A13经译码作为两片74HC244、两片75HC373和TE28F160B3的锁存信号和片选信号。这样地址线只剩下A0~A12,为此利用一片计数器74HC4040作为地址线A13~A19,从而就解决了AT89C52的寻址问题。
 
TE28F160B3的供电电源Vcc与AT89C52一样,均接+5V直流电源。但是TE28F160B3的编程电压和擦除电压Vpp必须接+12V。

单片机使用了市场上常见的AT89C52,但在设计中我们推荐使用宽电夺范围工作的单片机AT89LV52和工址译码器ATF16LV8,这样就可以使用+3V左右的供电电源。
在生产闪速存储器的半导体公司Intel、AMD、Sharp和Fujitsu中,Intel和Sharp公司的闪存存储器的引脚是一样的,AMD和Fujitsu公司的闪存存储器的引脚是一样。所以Intel和AMD公司的闪速存储器是不能互换的,如果要互换必须经过一个接口板进行转接。
(本文由Cogo商城-IC元器件在线采购平台搜集整理,浏览 了解更多详细信息)


>>>>>>对该主题发表你的看法

本主题贴数1,分页: [第1页]


[上一篇主题]:非易失性存储器的介绍

[下一篇主题]:传统的驱动程序结构简介