用单片机实现对SST39VF040的操作_第1页
用单片机实现对SST39VF040的操作_第2页
用单片机实现对SST39VF040的操作_第3页
用单片机实现对SST39VF040的操作_第4页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、AT89C51 对 SST 之 FLASH的编程操作详述Flash 又名闪存,属于EEPROM,即电可擦除可编程的存储器。由于具有电可擦除的特性, 并且其数据可保留上百年,所以它的应用围非常广泛。 非常适用于作为 MicroChip 以及 DSP 的外部程序存储器,或者作为需要存储大量数据的外部 EEPROM。SST 公司设计之 39 系列 Multi-Purpose Flash,按照其存储的空间主要分以下几种: 64K x8/128K x8/256K x8/512K x8 Byte ,各自代表的芯片型号有:39 系列 Flash 之特性 : SST39LF512/010/020/040 工作

2、电压为 3.0-3.6V;SST39VF512/010/020/040工作电压为 2.7V3.6V;数据保留时间 >100 年;工作电流典型值为 10mA ,待机电流为 1uA;快速擦除芯片时间为 70ms,字节编程时间为 14us。对芯片有如下操作: chip Erase operation ; sector Erase operation; byte program operation ; byte read operation ; write operation status detection 。通过软件对芯片的操作可以访问到 SST 制造商的 ID;以及芯片的 ID ,各芯片

3、ID 如下表:TABLE 1: P RODUCT IDENTIFICATIONAddressDataManufacturer s ID0000HBFHDevice IDSST39LF/VF5120001HD4HSST39LF/VF0100001HD5HSST39LF/VF0200001HD6HSST39LF/VF0400001HD7H注意:当通过软件访问了 Product Identification后,必须采用软件命令退出该模式才能对芯片进行擦除、读写的操作 .下面给出各软件操作指令的时序图:1. WE 控制的字节编程时序:2.CE 控制的字节编程时序图:3. 编程操作的状态检测时序图:4.

4、WE 控制的扇区擦除时序图:5. WE 控制的芯片擦除时序图:6. 软件访问 ID 的时序图:7. 退出软件访问 ID& 复位命令的时序图:根据上面的时序图,下面给出各种软件指令操作的流程图:1字节编程流程图:2读取 ID 流程图:3复位命令流程图:4芯片擦除命令流程图:5扇区擦除命令流程图:下面以SST39VF040为列,给出AT89C51对其做编程动作的source code :SST39VF040 地址线为A0A18 ,数据线为DQ0DQ7,片选线CE,数据写使能线WE,数据读使能线OE。#define uchar unsigned char#define uint unsign

5、ed int#define ulong unsigned longsfr DataOut=0x80; sfr Address7_0=0x90; sfr Address15_8=0xa0; sbit Address16=P32; sbit Address17=P33; sbit Address18=P34;/定义 / 定义/定义/定义/定义/定义P0 口接 SST39VF040 的数据线P1 口接 SST39VF040 的地址线P2 口接 SST39VF040 的地址线P3.2 接 SST39VF040 的地址线P3.3 接 SST39VF040 的地址线P3.4 接 SST39VF040 的地

6、址线A0A7A8A15A16A17A18sbit Sst39vf040_Ce=P35;/定义 P3.5 接 SST39VF040 的片选线线 CEsbit Sst39vf040_We=P36;/ 定义 P3.6 接 SST39VF040 的写使能线 WEsbit Sst39vf040_Oe=P37;/定义 P3.7 接 SST39VF040 的读使能线 OEstruct Flashuchar manufacturer_id;uchar device_id;ulong address; Sst39vf040;/读 FLASH ID 的函数,入口参数:FLASH 的 manfacturer_ID

7、,device_ID ,出口参数返回1,0uchar Read_Id(uchar manfa_id,uchar devi_id)Sst39vf040_Ce=1;Sst39vf040_We=1;Address7_0=0x55;Address15_8=0x55;Sst39vf040_Oe=1;Sst39vf040_Ce=0;Sst39vf040_We=0;DataOut=0xaa;Sst39vf040_We=1;Address7_0=0xaa;Address15_8=0x2a;Delay10us();Sst39vf040_We=0;DataOut=0x55;Delay10us();Sst39vf0

8、40_We=1;Address7_0=0x55;Address15_8=0x55;Delay10us();Sst39vf040_We=0;DataOut=0x90;Sst39vf040_We=1;Sst39vf040_Ce=1;Delay10us();Address7_0=0x00;Address15_8=0x00;Sst39vf040_Ce=0;Sst39vf040_Oe=0;DataOut=0xff;Sst39vf040.manufacturer_id=DataOut;Address7_0=0x01;Delay10us();Sst39vf040.device_id=DataOut;Sst3

9、9vf040_Ce=1;if(Sst39vf040.manufacturer_id=manuf_ID)&&(Sst39vf040.device_id=devi_ID)return 1;elsereturn 0;/退出读 ID 的状态以及命令FLASH 复位的函数void Read_Id_Exit(void)Sst39vf040_Ce=1;Sst39vf040_Oe=0;Sst39vf040_We=1;Address7_0=0x55;Address15_8=0x55;Sst39vf040_Ce=0;Sst39vf040_Oe=1;Sst39vf040_We=0;Delay10us

10、();DataOut=0xaa;Sst39vf040_We=1;Delay10us();Address7_0=0xaa;Address15_8=0x2a;Delay10us();Sst39vf040_We=0;Delay10us();DataOut=0x55;Sst39vf040_We=1;Delay10us();Address7_0=0x55;Address15_8=0x55;Delay10us();Sst39vf040_We=0;Delay10us();DataOut=0xf0;Sst39vf040_We=1;Sst39vf040_Ce=1;Delay10us();Sst39vf040_C

11、e=0;/芯片擦除函数void Chip_Erase(void)Sst39vf040_Ce=1;Sst39vf040_Oe=0;Sst39vf040_We=1;Address18=0;Address17=0;Address16=0;Address7_0=0x55;Address15_8=0x55;Sst39vf040_Ce=0;Sst39vf040_Oe=1;Sst39vf040_We=0;DataOut=0xaa;Delay10us();Sst39vf040_We=1;Address7_0=0xaa;Address15_8=0x2a;Delay10us();Sst39vf040_We=0;D

12、ataOut=0x55;Delay10us();Sst39vf040_We=1;Address7_0=0x55;Address15_8=0x55;Delay10us();Sst39vf040_We=0;DataOut=0x80;Delay10us();Sst39vf040_We=1;Delay10us();Sst39vf040_We=0;DataOut=0xaa;Delay10us();Sst39vf040_We=1;Address7_0=0xaa;Address15_8=0x2a;Delay10us();Sst39vf040_We=0;DataOut=0x55;Delay10us();Sst

13、39vf040_We=1;Address7_0=0x55;Address15_8=0x55;Delay10us();Sst39vf040_We=0;DataOut=0x10;Delay10us();Sst39vf040_We=1;while(!Wait_Data_Pulling();/检测 FLASH 编程,擦除操作过程中是否完成的函数,完成后返回值1ucharWait_Data_Pulling(void)uchar outdata;Sst39vf040_Ce=1;Sst39vf040_We=1;Sst39vf040_Oe=1;Delay10us();Sst39vf040_Ce=0;Sst39

14、vf040_Oe=0;Delay10us();DataOut=0xff;outdata=DataOut;Sst39vf040_Ce=1;Sst39vf040_Oe=1;if(outdata&0x80)=0x80)return 1;elsereturn 0;/字节编程函数,入口参数:( byte_address: AmsA0 = A18A0,待写的数据:byte_data ),voidWe_Byte_Program(ulong byte_address,uchar byte_data)ulong temp_address;Sst39vf040_Ce=1;Sst39vf040_Oe=0;S

15、st39vf040_We=1;Address7_0=0x55;Address15_8=0x55;Address16=0;Address17=0;Address18=0;Sst39vf040_Ce=0;Sst39vf040_Oe=1;Sst39vf040_We=0;DataOut=0xaa;Delay10us();Sst39vf040_We=1;Address7_0=0xaa;Address15_8=0x2a;Delay10us();Sst39vf040_We=0;DataOut=0x55;Delay10us();Sst39vf040_We=1;Address7_0=0x55;Address15

16、_8=0x55;Delay10us();Sst39vf040_We=0;DataOut=0xa0;Delay10us();Sst39vf040_We=1;temp_address=byte_address;Address7_0=temp_address&0x0000ff;temp_address=byte_address;Address15_8=(temp_address&0x00ff00)>>8;temp_address=byte_address;if(temp_address&0x010000)!=0)Address16=1;elseAddress16=

17、0;temp_address=byte_address;if(temp_address&0x020000)!=0)Address17=1;elseAddress17=0;temp_address=byte_address;if(temp_address&0x040000)!=0)Address18=1;elseAddress18=0;Delay10us();Sst39vf040_We=0;DataOut=byte_data;Delay10us();Sst39vf040_We=1;while(!Wait_Data_Pulling();/字节读函数入口参数:待读的字节地址byte_

18、address,返回参数值:读出的数据uchar Byte_Read(ulong byte_address)ulong temp_address;uchar temp_data;temp_address=byte_address;Sst39vf040_Ce=1;Sst39vf040_Oe=1;Sst39vf040_We=1;Address7_0=temp_address&0x000000ff;temp_address=byte_address;Address15_8=(temp_address&0x0000ff00)>>8;temp_address=byte_address;if(temp_address&0x00010000)!=0)Address16=1;elseAddress16=0;temp_address=byte_address;if(temp_address&0x00020000)!=0)Address17=1;elseAddress17=0;temp_a

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论