




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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工作电压为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,各芯片ID如下表: TABLE 1: PRODUCT IDENTIFICATIONAddressDataManufacturers ID0000HBFHDevice IDSST39LF/VF512SST39LF/VF010SST39LF/VF020SST39LF/VF0400001H0001H0001H0001HD4HD5HD6HD7H注意:当通过软件访问了Product Identification后,必须采用软件命令退出该模式才能对芯片进行擦除、读写的操作.下面给出各软件操作指令的时序图:1. WE控制的字节编程时序:2.CE控制的字节编程时序图:3. 编程操作的状态检测时序图: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 unsigned int#define ulong unsigned longsfr DataOut=0x80; /定义P0口接SST39VF040的数据线sfr Address7_0=0x90; /定义P1口接SST39VF040的地址线 A0A7sfr Address15_8=0xa0; /定义P2口接SST39VF040的地址线A8A15sbit Address16=P32; /定义P3.2接SST39VF040的地址线A16sbit Address17=P33; /定义P3.3接SST39VF040的地址线A17sbit Address18=P34; /定义P3.4接SST39VF040的地址线A18sbit Sst39vf040_Ce=P35; /定义P3.5接SST39VF040的片选线线CEsbit Sst39vf040_We=P36; /定义P3.6接SST39VF040的写使能线WE sbit Sst39vf040_Oe=P37; /定义P3.7接SST39VF040的读使能线OE struct Flash uchar manufacturer_id; uchar device_id; ulong address; Sst39vf040;/读FLASH ID的函数,入口参数:FLASH的manfacturer_ID,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();Sst39vf040_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;Sst39vf040_Ce=1; if(Sst39vf040.manufacturer_id=manuf_ID)&(Sst39vf040.device_id=devi_ID) return 1;else return 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(); 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_Ce=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; DataOut=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(); Sst39vf040_We=1; Address7_0=0x55; Address15_8=0x55; Delay10us(); Sst39vf040_We=0; DataOut=0x10; Delay10us(); Sst39vf040_We=1; while(!Wait_Data_Pulling();/检测FLASH编程,擦除操作过程中是否完成的函数,完成后返回值1 uchar Wait_Data_Pulling(void) uchar outdata; Sst39vf040_Ce=1; Sst39vf040_We=1; Sst39vf040_Oe=1; Delay10us(); Sst39vf040_Ce=0; Sst39vf040_Oe=0; Delay10us(); DataOut=0xff; outdata=DataOut; Sst39vf040_Ce=1; Sst39vf040_Oe=1; if(outdata&0x80)=0x80) return 1; else return 0; /字节编程函数,入口参数:( byte_address:AmsA0 = A18A0 ,待写的数据:byte_data ), void We_Byte_Program(ulong byte_address,uchar byte_data) ulong temp_address; Sst39vf040_Ce=1; Sst39vf040_Oe=0; Sst39vf040_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_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; else Address16=0; temp_address=byte_address; if(temp_address&0x020000)!=0) Address17=1; else Address17=0; temp_address=byte_address; if(temp_address&0x040000)!=0) Address18=1; else Address18=0; Delay10us(); Sst39vf040_We=0; DataOut=byte_data; Delay10us(); Sst39vf040_We=1; while(!Wait_Data_Pulling();/字节读函数 入口参数:待读的字节地址byte_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; else Address16=0; temp_address=byte_address; if(temp_address&0x00020000)!=0) Address17=1; else Address17=0; temp_addre
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《出轨一方承担违约责任及离婚赔偿的协议书》
- 文化传媒集团首席运营总监版权合作与授权劳动合同
- 土地租赁合同终止及土地用途变更及补偿协议
- 倍速链安全培训内容课件
- 水产养殖基地经营权转让及养殖技术升级合作合同样本
- 项目管理合同国际工程合同谈判与签订指导
- 2025年学历类自考公共课计算机应用基础-政治经济学(财)参考题库含答案解析(5卷)
- 2025年学历类自考公共课数量方法(二)-物理(工)参考题库含答案解析(5卷)
- 2025年学历类自考专业(电子商务)电子商务概论-市场营销(三)参考题库含答案解析(5卷)
- 2025年学历类自考专业(电子商务)市场营销(三)-电子商务安全导论参考题库含答案解析(5卷)
- 电力金具选型手册输电线路金具选型
- 初中开学第一课安全课件
- 2025年企业知识产权管理高效执行方案全面贯标体系实操模板集锦
- 鼻咽通气管日常护理
- 湖北省武汉市汉阳区2024-2025 学年上学期期中质量检测八年级英语试卷(含笔试答案无听力原文及音频)
- 有害物质过程管理系统HSPM培训教材
- DB11T 1649-2019 建设工程规划核验测量成果检查验收技术规程
- 电磁场与电磁波(第五版)完整全套教学课件
- 《吴文化教程(活页版)》 课件全套 模块1-12 历史特征- 吴地产业经济
- 江苏省徐州市2023-2024学年七年级上学期期中语文试题
- 3.3 场域与对话-公共空间里的雕塑 课件-高中美术人美版(2019)美术鉴赏
评论
0/150
提交评论