常用串行EEPROM的编程应用.DOC

上传人:国*** 文档编号:988086 上传时间:2018-11-11 格式:DOC 页数:9 大小:327KB
下载 相关 举报
常用串行EEPROM的编程应用.DOC_第1页
第1页 / 共9页
常用串行EEPROM的编程应用.DOC_第2页
第2页 / 共9页
常用串行EEPROM的编程应用.DOC_第3页
第3页 / 共9页
常用串行EEPROM的编程应用.DOC_第4页
第4页 / 共9页
常用串行EEPROM的编程应用.DOC_第5页
第5页 / 共9页
点击查看更多>>
资源描述

1、常用串行 EEPROM 的编程应用(二)作者:温正伟 原载:磁动力电子本文所提供的实例程序和 EEPROM 读写器程序:cdle070004.rarMicrowire 总线Microwire 总线是美国国家半导体公司研发的一种简单的串行通讯接口协议,该总线是采用三线进行数据传输。Microwire 总线和 SPI 总线一样数据输入输出分别使用一根引线,同样可以提供同步数据传输方式,可以适用在多种微控制器、EEPROM 或 ADC 等场合。常用 EEPROM 的 93 系列芯片就是采用该总线的芯片,采用 COMS 技术,体积小巧,和24、25 系列芯片一样也是一种理想的低功耗非易失性存储器。常见

2、的 93 系列 EEPROM 存储器容量从 256 位到 16K 位。 93 芯片广泛使用在各种家电、通讯、交通或工业设备中,通常是用于保存设备或个人的相关设置数据。如最常见到网卡上的 93 芯片就是用于保存网卡的 MAC 物理地址、供应商名称以及相关配置。生产 93 系列芯片的公司也有很多。如ATMEL 公司生产的 93C46 芯片是该公司生产的 93 系列芯片的一种,它有 1K 位的存储空间,93 系列有二种数据输入输出模式,分别为 8 位和 16 位数据模式,1K 位的存储位就可以分为 1288 和 6416,它的电压范围是 2.7V 到 5.5V 和 1.8V 到 5.5V,可以适应低

3、电压的应用,在 5V 的电压下最高时钟频率可以达到 2M,芯片可以进行一百万次的擦写,数据可以保存一百年。图一是 93C46 的 PID 封装和用于网卡的 93LC46 芯片。图 1图 2图二是 ATMEL 公司的 93C46 的 PID 封装引脚图。CS 引脚为片选引脚,高电平为有效,用于同一总线上不同芯片的选择。在执行每一个指令之前先要把 CS 拉高,指令完成后把 CS 拉低使芯片进入复位休眠状态,CS 为低时,芯片保持复位状态。在连续操作多个指令时,指令与指令间,CS 必须要有不小于一个 TCS 时间的低电平保持,使芯片复位。ATMEL 公司的 93C46 芯片工作电压 2.7V5.5V

4、 的型号 TCS 不能小于 250ns,工作电压1.8V5.5V 的型号 TCS 不能小于 1000ns。SK 是串行时钟输入引脚。DI 是串行数据输入引脚,接收微控制器传向芯片的数据、地址和命令数据。DO 是串行数据输出引脚。ORG 引脚是内部数据结构选择输入引脚,该脚为高电平时数据结构为16,低电平时数据结构为8,DC 是空脚。图 3(点击看大图)图三是 93C46 芯片的 MicroWire 总线时序图。在编写驱动程序前,先要分析一下这个时序图。从图中可以看到,在 CS 被拉高至少 tCSS 时间(CS 初始时间)后,才能开始在 SK上传送时钟信号,时钟的正半周和负半周时间不能小于 tS

5、KH 和 tSKL。最后一个时钟的正半周发送完后 CS 仍要保持 tCSH 时间(CS 保持时间)后才可以拉低 CS,tCSH 的最小值可为0。指令输入时数据在 SK 的负半周低电平时开始设置,图中的 tDIS(DI 设置时间) ,在 SK的高电平时至少保持 tDIH 时间 (DI 保持时间)。在图中第四条时序线图中则可以看到在芯片读操作时 DO 输入 1 或 0 时的时序,可以看出在 SK 上升沿开始后 tPD0 或 tPD1 时,DO 才输出数据,在编写驱动时就要注意读 DO 时可在 SK 拉高好延时 tPD0(tPD1)后才读取 DO的值,否则会造成误读。第五条时序线图则时指芯片编程时在

6、 CS 上升沿开始 tSV 时间后DO 输出状态值,tDF 是指 CS 下降沿开始到 tDF 时间后才进入高阻态。因为不同的芯片型号、工作电压和工作频率这么参数值都会有所不同,93C46 的具体参数可以参看光盘中的芯片资料。93C46 有 7 个操作指令,微处理器就是靠发送这几个指令来实现芯片的读写等功能。表一是 93C46 的指令表。在 93C 的其它型号中指令基本是一样,所不同的是地址位的长度,在使用时要查看相关芯片资料,得知地址位长度后再编写驱动程序。因为 93C 的数据结构有两种,所以地址位和数据位会有 x8x16 两种模式,这在编程时也是要注意的。在ERASE、WRITE、ERAL、

7、WRAL 指令之前必须先发送 EWEN 指令,使芯片进入编程状态,在编程结束后发 EWDS 指令结束编程状态。地址位 数据位指令 起始位 命令代码x8 x16 x8 x16 说明READ 1 10 A6-A0 A5-A0 读取指定地址数据EWEN 1 0 11xxxxx11xxxx 擦写使能ERASE 1 11 A6-A0 A5-A0 擦除指定地址数据WRITE 1 1 A6-A0 A5-A0 D7-D0D15-D0 把数据写到指定地址ERAL 1 0 10xxxxx10xxxx 擦除所有数据,只在 Vcc 为 4.5V-5.5V 有效WRAL 1 0 01xxxxx01xxxxD7-D0D1

8、5-D0 写指定数据到所有地址,只在 Vcc 为 4.5V-5.5V 有效EWDS 1 0 00xxxxx00xxxx 擦写禁止表 1READ(读数据)所有的指令的第一位为 START(起始位),芯片确认起始位的条件是:CS 和 DI 为高电平时,SK 的第一个脉冲高电平时 DI 仍为高电平。微控制器发送完起始位后就可以输入7 种指令所需的命令代码、地址码和数据来完成指令操作。READ 指令在发送完地址码AN-A0 后(地址码位数位要根据型号和所选用的数据结构来确定),DO 从高阻态变为低电平,在随后的一个 SK 脉冲后在 DO 输出 DN-DO 的数据 (数据位数由所选用的数据结构来确定),

9、微控制器在这时读取 DO 取得数据,读取完数据后拉低 CS 结束指令。图 4(点击看大图)EWEN(擦写使能)芯片上电后就进入 EWDS 擦写禁止状态,这时要进行擦写指令,微控制器必须先要发送 EWEN 指令,使能芯片进入允许擦写的状态,否则操作任何擦写指令都是无效的。在完成擦写操作后发送 EWDS 指令,使芯片进入禁止擦写的状态,这样可以防止因干扰或其它原因造成的数据错误。要注意的是:在第一个 EWEN 指令后芯片一直保持在擦写允许状态,直到使用 EWDS 或开断电源,芯片才会重新进入擦写禁止状态。图 5(点击看大图)EWDS(编程禁止) 图 6(点击看大图)WRITE(写入数据)WRITE

10、 指令在发送完数据位后,CS 至少拉低 tCS 时间再拉高,这时 DO 会从高阻态变为低电平来指示芯片正在进行编程,微控制器应在这时检测 DO,当 DO 再次拉高时芯片编程完成芯片进行就绪状态,这时才可以进行下一个指令。芯片编程所需的时间为 tWP,这个时间最大为 10MS,所以微控制器在对芯片编程时最好用一个循环检测 DO,当检测到高电平时,说明写入过程结束,应该退出循环体。如果循环体循环 10MS 后仍然没有检测到高电平时,说明有故障引起操作超时,这时要退出循环体,以免进入死循环。这样的代码在前面文章的例子中也是有使用的。WRAL 指令和 WRITE 指令对写入过程的处理方式是一样的,不一

11、样的是 WRAL 是把数据写入到所有地址中,时间会长点,而且要求电源在4.5-5.5V。图 7(点击看大图)WRAL(全部写入) 图 8(点击看大图)ERASE(擦除数据)ERASE 指令可以说是另一种形式的写入指令,所不同的是它不用发送数据,它会把指定地址的所有数据位都置1,也就是相当于用 WRITE 写入FF 。而 ERAL 指令就是相当于用 WRAL 写入FF,同样 ERAL 也需要工作在 4.5-5.5V 电源下。图 9(点击看大图)ERAL(擦除所有数据)图 10(点击看大图)在这里笔者把上一篇文章的电路更改了一下,使它不但能完成本篇的实验外,还能配合笔者编写的上位机程序,成为一个简

12、单实用的串行 EEPROM 读写器,它不单单可以支持 93C 系列的芯片,同时也可以支持 24C、25 系列等多种芯片。图中的芯片插座 IC2 的 1到 7 脚连接取 AT89C2051 的 P1.1 至 P1.7,因为 P1.2-P1.7 内部是有上位的,所以可以不用在外部加上拉电阻,而 P1.0/P1.1 是需要外部上拉的,所以在 P1.1 上加 R7 进行上拉。如不加这个电阻的话 93C46 的读写实验就无法成功了。 J1 使用 DB9 的孔式接头,连接电脑时可以使用一根串口延长线。图 12 是笔者用万用电路板制作的实验电路,这个电路最大的特点就制作简单、体积小巧、无需外接电源,使用到单

13、片机使其性能稳定,而且可以进行程序的修改使其增加更多的芯片支持。图十二是笔者用万用板制作的实验电路。 图 11(点击看大图)图 12(点击看大图)对 93C46 的串口通讯实验方法和上一篇文章的方法是一样的,这里不再多做介绍了,只是 93C46 多了一个擦除命令的实验,命令代码是 02 00 00 00,发送这个代码后擦除成功后就返回 00,不成功返回 01。要注意的是擦除命令只在 VCC 在 4.55.5V 有效。本文还有一相配套的上位机程序,使用此程序就可以用这个电路读写 24C、93C 、25系列的串行 EEPROM 芯片。首先要把 EEPROM.hex 文件烧写到 AT89C2051 中,连接 PC串口就可以使用 EEPROM.exe 软件进行读写了。软件界面如图十三。图 13后记:因第一篇发在了无线电杂志上,所以软件界面没有改动。后二篇新来的编辑说太深入,所以没有发表在杂志上,呵呵,有点可惜。 20070516 明浩

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 重点行业资料库 > 1

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。