GE IS200TBTCH1CBB
0 引言
随着数据处理系统智能化程度的越来越高,经常需要在无人干预的情况下,自动加载某些数据或参数到系统工作单元,以保证系统的正常工作。这些数据或参数通常都以数据文件形式保存在大容量、低功耗、可快速重复擦写的存储器中,而且掉电后数据不丢失,以便用户根据需要随时读取。S29AL016D70能很好的满足这些需求。
1 闪存S29AL016D简介
1.1 主要性能
S29AL016D70是Spansion公司生产的容量为2Mx8 bit/1 Mx16 bit的闪存器件,该器件采用3 V供电,访问时间为70 ns,工作温度范围为-40℃~125℃,静态电流200 nA,读数据电流为9 mA,擦写数据电流为20 mA可擦写次数在一百万次以上,具有存储容量大,速度快,功耗低等优点。S29AL016D的芯片逻辑图如图1所示。其中,A0~A19和D0~D15分别为地址线和数据线,CE为片选信号,低有效;OE为输出使能信号,低有效;WE是写选通信号,低有效;BYTE为8位或16位数据模式选择端,低电平为8位,高电平为16位。采用8位模式时,DO~D7为有效数据线,D15为地址线:RY/BY为准备好和忙状态输出。S29AL016D70内部包括35个数据段(Sector),其中段0到段30为64 KB,段31为32KB,段32、33为8 KB,段34为16 KB。
1.2 操作模式
S29AL016D70的操作模式如表1所列,实际工作中,经常用到的操作包括片擦除、段擦除、写入数据、读出数据等。
2 应用设计
2.1 硬件设计
根据设计需要,可利用数字信号处理器DSP通过双口RAM和232串行通信获得数据,并将数据保存在FLASH对应地址。
FLASH的数据读写有8位数据读写和16位数据读写两种方式。
利用232串口通信时,收发的数据大多都是8位。若在16位数据工作模式下,直接写入要浪费一半存储区,否则需将两个8位字节数据拼成一个16位字数据再写入,也会消耗很多工作时间,而采用8位数据工作模式,则不需要进行数据拼接,使用比较方便。因此,实际工作中,大多采用8位数据工作模式。同样,双口RAM也采用8位数据的双口RAM,设计中可使用IDT7132。图2所示是其硬件连接原理图。
工作中,若采用16位数据工作模式,只需将FLASH芯片的BYTE脚接至高电平即可。
S29AL016D的操作模式
2.2 操作模式
要向FLASH写入数据,必须先对FLASH进行擦除操作。擦出操作可通过给FIASH芯片写入擦除指令时序来完成,擦除的结果是将FLASH存储区中所有数据变为0ff(8位)或0ffff(16位),这样,可以方便地写入数据。
擦除操作分为片擦除和段擦除两种。片擦除为整片擦除,段擦除只擦除指定段。为使用方便,在擦除某段数据时,应保证其他段数据不受影响。因此,软件多采用段擦除模式。其代码如下:
段擦除函数(flash基地址为0b0000000);
void erase_flash(unsigned int sector_num)//sector为段号片擦除函数可参照编写
{
将数据保存在FLASH中后,若要对擦除后的段数据地址执行写操作,也可以通过给芯片写入编程操作时序来完成。写操作的结果是将地址总线指定地址的数据相应位1变为0,通俗的说
进行擦除和写入操作时,应在进行写入时序操作时,对寄存器的偏移地址左移一位进行操作,这是因为8位数据工作模式下,芯片地址线的最低位为A-1,而处理器地址线的最低位为A0;若是16位数据操作模式,寻址寄存器时,则不需要进行移位操作。
此外,16位数据操作模式和8位数据操作模式在编写指令时序时也有区别,即写入寄存器的指令的位数要和数据位数相同,如8位指令为:*(int*)(Oxb0000000+(0555<<1))=080,而16位指令应为:*(int*)(0b0000000+0555)=08080。
3 结束语
应用本文的设计可以成功地完成对FLASH的各种操作,实现向FLASH中保存数据的功能。事实上,各厂家生产的FLASH在性能上和使用方法都有所不同,S29AL016D除了速度快、容量大之外,还有一个特点就是可选择性地进行8位或16位数据操作。但在软硬件设计上要做些相应改变,笔者根据工作实践写出一点体会,希望能给同行提供帮助。
,就是擦除后的数据各位都为1,写操作是将待写入数据的不为1的位变为0。其写操作函数如下:07AI91C
TB511-ETH
PM581B1
TU516 TU516A
DI524
AX522A
AI523 AI523B4
86AR230
07KR91B
07SK90R1
23KT92 RTU510
07DO90-S
07KP90
07DC91
07DC91
07MK92
07KT94
07KT94D
07KT94K
07KT94i
07KT94
07DC92
07DC92E
07DC92F
07DC92B
07AC91
07DI92
07KT95
07KT95
07KT97F1
07KT97C
07KT97D
07KT97B
07KT97C
07KT97
07KT97B
07KT97B
07KT97B
07KT97B
07KT98E2
07MK92
TC50
ICFC16l1
ICSF08D1
ICSK20F1-120
ICSK20F1-230
ICSK20F1-24
ICSK20N1
ICSA04B5
ICSE08B5
07KR31
07KR31
07KT31
07MK62
35NE90
35GS91
35GS91
35DS91
35AB94B
35AA92C-E
35EK90
35EK91
35TP90
35SK96R1
35ST90
35EB92
35ZE94
35CS91
07ET40R1
07ET83B
07YS82***********************************************************************
07KR91
07KR91
07KR91
07KT92
07KT92
07KT92
07KP90
07KT93
07KT93
07KT93
ICDG32L1
07KT94
PM30
PMM44
POT31
POT32
POT71
POT72
PVM01
PVM02
PVM03
PVM04
PVM31
RK01
RK04 RK04
RL01
RMG19
SL04 SL04
SL11
SL12
SL13
SL14 SL14
SS01 SS01
SS11 SS11
SS15 SS15
SS6 SS16
SS21 SS21
PBK10
PBK20
PBM070
PCM01
PCM03
PCM14
PCM15
PCP02
PCP04
PCP06
PCP36
PCV02
PCV24
PCZ01
PCZ10
PCZ20
PCZ25
PCZ28
PDD02
PDK01
PDK02
PDS01
PDV01
PE01
PEA01
PEA02
PEA03
PEB02
PEB03
PGM01
LL02
LL03
LM01
LM21
LT02
LZ01
LZ02
MA01
MA02
MA03
MA12
MB01
MB02
MB11
MB12
MB21
MR01
MS01
MT01
MV01
MV03
MZ01
MZ03
DPW02
DRA02
EP07
HA01
HA02
HH01
HH03
HH04
HH11
HM01
HM11
HM21
HP01
HP03
HP21
HS01
HS11
HV01
HV12
HW81
HW91
LL01
AV02
AV05
AV06
AV08
AV31
AV41
AV42
AV43
AV97
AV98
AW01
AW02
AW03
AW05
DAI01
DAI04
DAI05
DAO01
DCO01
DCP02
PAA02
PAB02
PAR01
DDO02
XN05
XN06
XP01
XU01
XU02
XU03
XU04
XU12
XU13
XU14
XX02
SS25
SS41
SV01
TET106
TET106-EX.D
TEU315-EX.B
TEU320
TEU325-EX.B
TEU411
TEU421
TEU310
TZF12
TZIF3
TZN124-EX
VE93
VV01
VV03
VV11
XB01
XI01
XI91
XK11
XK12
XK15
XK16
XM01
XM02
XM03
XN01
XN03
PGM03
PGM09
PGM35
PGM48
PMK24
DFC01
DFE01
DFI01
DFM11
DFP01
DLM01
DPW01
DCP10
DDI01
DDO01
07KR264dR1
07KR220dR1
07KR228d
07KR240R2
IV0790
07SK90R1 GJR5250200R0001
GJR5251600R0202 07AI91C
GJR5253200R1161
23WT90RTU510
07KR51 07KR51-U3.6
07 KR 51-P30; 07 KR 51-F12
07KT51 07KT51-U3.6
07KR51-A3.6
07CR41-c12
ICMK14F1-H08
XI16E1-b10 XI16E1-E4.0, XI16E1-D02
XO08R1 XOO8R1-B04
XK08F1 XK08F1-A3.0 XK08F1-A30
XO16N1-b20 XO16N1-C3.0
XC32L1 XC32L1-B4.0
ICMK14F1 ICMK14F1-I09
LM012 LM012-CXE18RAC
492897301
492897601************************************************************
492897801
492897701
492898801
TK520V030
TK576V050
TK576V115
PM510V08
PM510V16
3BHT300005R1
3BHT300036R1
3BHT300008R1, 3BSE018184R1
3BSE000566R1
3BSE012869R1
3BSE012790R1
3BSE018283R1
3BSE018453R1
3BSE006085R1
3BSE003827R1
3BSE003829R1
3BSE001077R1
3BUC98002R0001
3BSE001440R1
3BHT300003R1
3BSE000756R1
3BSE011000R1
3BSE011002R1
3BHT300017R1
3BSE020520R1
3BSE013202A1
3BUR980009R1
3BSE000435R1
3BSE004773R1
3BSE055760R1
3BHT300012R1
3BHT00006R1
3BHT300007R1
57120001-PS
57120001-DP
57120001-P
5712001-HA
3BSE007949R1
57120001-HZ
3BSE014162R1
57120001-AT
57120001-FG
57120001-EY
3BSE018293R1
57120001-PC/5, 57120001-PC/6
3BSE018291R1
4898 0002-A
57310001-KD/5
57310001-KH
3BSE005883R1
3BSE012211R1
57520001-EV
57160001-A/13,57160001-A
57160001-AAA
57160001-AK
57160001-K
57160001-GF
3BSE003859R1
3BSE018297R1
5716075-P
57310303-A
3BSE000355R1
3BSE004382R1
3BSE004383R1
3BSE004985R1
3BSE014452R1
3BSE019299R1
48990001-PC
3BSE005003R1
57120001-PX
3BSE018316R1
3BSE018317R1
57120001-CV
3BNP000177R1
3BSE018331R1
57520001-A/2, IN5752-1001-E/03
57520001-ER/1,IN5752-1001-BP/01
57520001-DX/1
5751017-A/2
57160001-ABD
3BSE004723R1
3BSE004726R1
3BUR980025R1
3BSE001248R1
3BSE018795R1
3BSE003210R1
3BSE001252R1
3BSE001253R1
3BSC640001R1
3BSE003641R1
492943601
3BSE000270R1
3BSE008373R1
3BSE008358R1
3BSE011180R1
3BSE011181R1
