用户登陆 用户注册
您的位置:首页> 技术文章>内容正文
串行E2PROM的类型及应用
[正文]:串行e2prom的类型及应用heshw99 发表于 2007-4-6 8:46:00 串行e2prom是可在线电擦除和电写入的存储器,具有体积小、接口简单、数据保存可靠、可在线改写、功耗低等特点,而且为低电压写入,在单片机系统中应用十分普遍。
    串行e2prom按总线形式分为三种,即i2c总线、microwire总线及spi总线三种。
本文将以microchip公司的产品为例对以上三种串行e2prom进行介绍。
一、i2c总线型   i2c总线,是inter integrated circuit  bus 的缩写,即“内部集成电路总线”。
i2c总线采用时钟(scl)和数据(sda)两根线进行数据传输,接口十分简单。
microchip公司的24xx系列串行e2prom存储容量从128位(16×8)至256k位(32k×8),采用i2c总线结构。
24xx中,xx为电源电压范围。
  1引脚 图1是24aa00/24lc00/24c00型128位i2c总线串行e2prom的引脚图。
  sda是串行数据脚。
该脚为双向脚,漏极开路,用于地址、数据的输入和数据的输出,使用时需加上拉电阻。
  scl是时钟脚。
该脚为器件数据传输的同步时钟信号。
sda和scl脚均为施密特触发输入,并有滤波电路,可有效抑制噪声尖峰信号,保证在总线噪声严重时器件仍能正常工作。
在单片机系统中,总线受单片机控制。
单片机产生串行时钟(scl),控制总线的存取,发送strat和stop信号。
  2总线协议 仅当总线不忙(数据和时钟均保持高电平)时方能启动数据传输。
在数据传输期间,时钟(scl)为高电平时数据(sda)必须保持不变。
在scl为高电平时数据线(sda)从高电平跳变到低电平,为开始数据传输(start)的条件,开始数据传输条件后所有的命令有效;scl为高电平时,数据(sda)从低电平跳变到高电平,为停止数据传输(stop)的条件,停止数据传输条件后所有的操作结束。
开始数据传输start后、停止数据传输stop前,scl高电平期间,sda上为有效数据。
字节写入时,每写完一个字节,送一位传送结束信号ack,直至stop;读出时,每读完一个字节,送一位传送结束信号 ack,但stop前一位结束时不送ack信号。
    3器件寻址 start后,单片机发送一个控制字,该控制字包括start位(s)、受控地址(7位,对24xx00来说前四位为1010,后三位无关系)、读写(r/w)选择位(“1”为读,“0”为写)及传送结束位ack。
24xx00的控制字格式如下: s 1 0 1 0 x x x r/w ack 24xx00随时监视总线上是否为有效地址,若受控地址正确且器件未处在编程方式下,则产生传送结束位ack。
  4写操作  单片机送出开始信号后,接着送器件码(7位)、r/w位,表示ack位后面为待写入数据字节的字地址和待写入数据字节,然后结束一个字节的写入。
即s+写控制字(r/w位为+ack+字地址+ack+写入数据+ack+stop。
    5读操作 读操作有三种,读当前地址的内容、读指定地址的内容、读指定起始地址后的若干字节的内容。
读当前地址的内容为:s+读控制字(r/w位为+ack+读出数据+no ack+stop 读指定地址的内容为:s+写控制字(r/w位为+ack+写入数据+ack+读控制字(r/w位为+ack+读出数据+no  ack+stop 读指定起始地址后的若干字节的内容为:s+写控制字(r/w位为+ack+写入数据+ack+读控制字(r/w位为+ack+读出数据(1)+ack+……+读出数据(n+x)+noack+stop 24xx系列串行e2prom存储芯片与单片机硬件接口只有scl和sda两根线,非常简单。
  二、microwire总线型     microwire 总线采用时钟(clk)、数据输入(di)、数据输出(do)三根线进行数据传输,接口简单。
microchip公司的93xxx系列串行e2prom存储容量从1k bit(×8/×16)至16k bit(×8/×16),采用microwire总线结构。
产品采用先进的cmos技术,是理想的低功耗非易失性存储器器件。
1引脚 93xx系列串行e2prom的产品很多,附图是93aa46型1k 1.8v microwire总线串行e2prom的引脚图。
cs 是片选输入,高电平有效。
cs端低电平,93aa46为休眠状态。
但若在一个编程周期启动后,cs由高变低,93aa46将在该编程周期完成后立即进入休眠状态。
在连续指令与连续指令之间,cs必须有不小于250ns(tcsl)的低电平保持时间,使之复位(reset),芯片在cs为低电平期间,保持复位状态。
  clk是同步时钟输入,数据读写与clk上升沿同步。
对于自动定时写周期不需要clk信号。
  di是串行数据输入,接受来自单片机的命令、地址和数据。
  do是串行数据输出,在do端需加上拉电阻。
org是数据结构选择输入,当org为高电平时选×16结构,org为低电平时选×8结构。
[page_break]2工作模式 根据单片机的不同命令,93aa46有7种不同的工作模式,附表给出在org=1(×16结构)时的命令集(表中“s”为start位)。
org=0(×8 结构),除在地址前加a6位或在地址后加一位“x”外,其余与附表相同。
  除了读数据或编程操作期间检查ready/busy状态时外,do脚均为高阻状。
在擦除/写入过程中,do为高电平表示“忙”,低电平表示“准备好”。
在cs下降沿到来时,do进入高阻态。
若在写入和擦除转换期间,cs保持高电平,则do端的状态信号无效。
3功能 start(起始)条件 cs和di均为高电平后clk的第一个上升沿,确定为start。
若紧随 start条件后di端输入满足7种工作模式中的一种所需的命令码、地址及数据位的组合,指令将被执行。
执行完一条指令后,未检测到新的start条件, di、clk信号不起作用。
数据保护 上电时,vcc未升到14v前,所有操作方式均被禁止。
掉电时,一旦vcc低于14v,源数据保护电路启动,所有操作方式均被禁止。
芯片上电时自动进入擦写禁止状态,保护芯片不被误擦写。
ewen命令也可以防止误擦写,详见擦写禁止和擦写使能。
  读操作read  当cs为高电平时,芯片在收到读命令和地址后,从do端串行输出指定单元的内容(高位在前)。
写操作write 当cs为高电平时,芯片收到写命令和地址后,从di端接收串行输入16位或8位数据(高位在前)。
在下一个时钟上升沿到来前将cs端置为(低电平保持时间不小于250ns),再将cs恢复为 "1",写操作启动。
此时do端由“1”变成“0”,表示芯片处于写操作的“忙”状态。
芯片在写入数据前,会自动擦除待写入单元的内容,当写操作完成后, do端变成“1”,表示芯片处于“准备好”状态,可以接受新命令。
擦写禁止和擦写使能(ewds/ewen) 芯片收到ewds命令后进入擦写禁止状态,不允许对芯片进行任何擦或写操作,芯片上缡弊远氩列唇棺刺4耸保粝攵孕酒胁列床僮鳎匦胂确wen命令,因而防止了干扰或其它原因引起的误操作。
芯片接受到ewen命令后,进入擦写允许状态,允许对芯片进行擦或写操作。
读read命令不受ewds和ewen的影响。
擦除、片擦除、片写入操作(erase/eral/wral) 擦除erase指令擦除指定地址的内容,擦除后该地址的内容为“1”;片擦除eral指令擦除整个芯片的内容,擦除后芯片所有地址的内容均为“1”;片写wral命令将特定内容整片写入。
片擦除和片写入时,在接受完命令和数据,cs从“1”变成 “0”再恢复为“1”(低电平保持时间不小于250ns)后,片擦除或片写入启动,擦除、写入均为自动定时方式。
自动定时方式下不需要clk时钟。
93aa46与单片机的接口电路及数据传输程序此处不再一一写出。
  内容:serial peripheral interface)总线,即“串行外围设备接口总线”。
microchip公司的25xx系列串行 e2prom采用简单的spi兼容串行总线结构,用时钟(sck)、数据输入(si)、数据输出(so)三根线进行数据传输,片选信号(cs)控制器件的选通。
当今流行的带spi口的微控制器,如microchip公司的pic16c6x/7x微控制器等,均可与25aa040直接接口。
片内无spi口的微控制器,也可用普通i/o口通过软件编程的方式实现与25xx040间的接口。
25xx系列采用先进的cmos技术,是理想的低功耗非易失性存储器器件。
25xx系列串行e2prom存储容量从4k位(512×8)至64k位(8k×8),附图是25aa040型4k位spi总线串行e2prom的引脚图。
1引脚说明 cs 是片选输入脚,低电平有效。
cs端为高电平,25aa040处于休眠状态。
cs的变化不影响已经初始化或正在处理的编程的完成。
也就是说若在一个编程周期启动后,cs由低变高,25aa040将在该编程周期完成后立即进入休眠状态。
一旦cs为高电平,so引脚立即变成高阻态,允许多器件共用spi总线。
在有效的写入序列输入后cs端由低转高,启动对内部的写序列。
上电后,cs端要先加低电平对所有操作序列初始化。
sck是同步时钟输入脚。
来自si脚的地址或数据在sck的上升沿被锁存,so脚的数据在sck的下降沿时输出。
si是串行数据输入脚,接受来自单片机的命令、地址和数据。
so是串行数据输出脚,在读周期,输出e2prom存储器的数据。
wp是写保护输入脚。
wp为低电平时禁止对存储阵列或状态寄存器的写操作,其它操作功能正常;wp为高电平,非易失性写在内的所有功能都正常。
任何时候将wp置为低电平都将复位写允许锁存器。
若一次内部写已经开始,wp置成低电平不影响这次写。
hold 是保持输入脚,低电平有效,用于在数据传送中途暂停向25aa040传送。
不用暂停功能时,hold必须保持高电平。
芯片被选中,正在串行传送时,可将 hold置为低电平,暂停进一步的传送。
方法是在sck为低电平时,将hold引脚变成低电平,不然在下一个sck由高转低前不能暂停传送。
此间,cs必须保持低电平。
25aa040处于暂停时,si、so、sck脚均为高阻态。
要恢复串行传送,必须在sck为低电平时将hold置为高电平。
任何时候只要 hold为低电平,so脚将处于高阻态。
[page_break]2工作原理 25xx040片内有一个8位指令寄存器,指令通过si脚接收,在sck的上升沿串行输入。
指令输入时,cs脚必须为低电平,hold脚必须为高电平。
wp必须保持高电平,允许写存储器阵列。
表1是25xx040的指令集,指令字节中包含地址位a8,传输时最高位在前,最低位在后。
cs置为低电平后sck的第一个上升沿开始数据采样。
如果与spi总线上的其它外围器件共用sck,可改变hold引脚电平将25aa040设置成“保持”方式。
释放hold后,再从hold信号确认处继续传送。
---读序列 cs 降至低电平25aa040被选中。
包括a8地址在内的8位读指令被传送到25aa040,接着是低8位地址(a7~a0)。
在接收到正确的读指令及低8位地址后,选定地址的内容由so口串行输出。
而下一地址单元的内容将随着时钟脉冲继续输出。
每当一个字节的数据传送完毕,25aa040片内的地址指针自动加1,指向下一个地址。
当最高位地址(01ffh)内容读出后,地址指针指向0000h,下一个读出周期将继续。
cs脚转为高电平读操作终止。
---写序列 在着手向25aa040写数据之前,必须先发出wren指令,置位写允许锁存器,其操作为:先将cs置为低电平,然后按时钟节拍将wren指令送至 25aa040,当指令的8位数全部传送完毕后,再将cs端置为高电平置位写允许锁存器。
发出wren指令后未将cs端置为高电平前,写允许锁存器并没有置位,向25aa040传送的数据将不会被写入存储器阵列。
写允许锁存器置位后,再将cs端置为低电平,发出包括a8地址在内的8位写指令及低8位地址(a7~a0),然后送要写入的数据。
一次写序列最多可以连续写16个字节的数据,且所有要写入的数据的地址必须在同一页。
一页的首址为xxxx  0000,末址为xxxx 1111。
若内部地址计数器已到xxxx 1111,时钟仍在继续,内部地址计数器将重新指向该页的首址xxxx 0000,原写入到该地址的内容就会被覆盖。
为将数据真正写入到25aa040中,须在字节写入或页写入数据的第n个字节的最后一个有效位(d0)送出后将cs置为高电平。
若在此外的其它时间将cs置为高电平,写操作就不能完成。
在写操作进行时,可以读状态寄存器来检查wip、wel、bp1和bp0位的状态。
在写周期内是不可能读存储器阵列位置的。
一旦写周期完成,写允许锁存器也就被复位了。
---写允许(wren)和写禁止(wrdi) 25aa040片内有一个写允许锁存器。
表2为写保护功能表。
在任何写操作将完成之前必须立即置位写允许锁存器。
写允许锁存器由wren指令置位,由wrdi指令复位。
满足以下条件之一,写允许锁存器将被复位: 1)上电;2)wrdi指令成功地执行;3)wrsr指令成功地执行;4)write指令成功地执行;5)wp引脚为低电平。
---状态寄存器读(rdsr) rdsr指令读状态寄存器。
状态寄存器可在任何时候读出。
状态寄存器的格式如下: 7  6  5  4 3   2  1   0 x x x x bp1 bp0 wel wip 其中,写入保护位(wip)指示25aa040是否正忙于写入操作,是只读位。
wip为“1”,表示写入正在进行;wip为“0”,表示未进行写入操作。
写允许锁存器状态位(wel)指示写允许锁存器的状态,是只读位。
wel为“1”,允许写阵列;wel为“0”,锁存器禁止写阵列。
wel位的状态由执行wren或wrdi指令确定,与状态寄存器是否写保护无关。
块保护位(bp0和bp1)指示当前保护的块地址。
块保护地址由用户发出的wrsr指令设定。
一旦该块地址的内容被保护,就只能读出而不能写入。
---状态寄存器写(wrsr) wrsr指令允许用户通过写状态寄存器bp1、bp0位的方法选择对存储器的保护区,bp0、bp1与块保护地址的关系见表3。
---数据保护 25aa040 采取用多种措施保证存储器阵列不被误写入。
1)上电时复位写允许锁存器;2)必须发出写允许指令方可置位写允许锁存器;3)在单字节写入、页写入或状态寄存器写入后,写允许锁存器被复位;4)对芯片写入时,在接收了定数量的时钟周期之后,必须将cs端置为高电平,芯片内部的写周期才开始;5)在内部写周期期间,对存储器阵列的存取无效;6)wp引脚为高电平时,复位写允许锁存器。
---芯片上电时的状态 25aa040上电时的状态如下:器件处于低功耗待机方式(cs=1);写允许锁存器被复位;so引脚为高阻态;必须将cs引脚置为低电平方可进入工作状态。



网站首页 培训课程 维修指南
技术文章 家电专栏 供应信息
求购信息 培训资讯 展会信息
电脑专栏 教程下载 资料下载
常用软件 PLC教程 PLC资料
变频伺服 低压电器 维修资料
人机界面 自控仪表 工控机类
文章标题: 搜文章
中国工控资源网手机版 2012
电话:010-67577139 13811659603
培训咨询QQ:657167934 471895637 销售咨询QQ:623769457
联系邮箱:zggkzyw@163.com
 京ICP备11002135号
报时(2026-04-02 21:01:48) 流量统计