AT93C06/46串行存储器的接口使用方法

  串行EEPROM是在各种串行器件应用中使用较频繁的器件,本文主要介绍AT93系列和AT89接口的方法,24C系列的已经在本站的相关网页介绍,欢迎光临单片机与电子制作网。
  AT93C06/46分别是256位,1024位的EEPROM。内部存储方式为16*16位、64*16位,也就是以16位为一个字来存储。也就是说AT93C06内有16个16位的数据字;AT93C46内部有64个16位的数据字。
  封装主要是8引脚的DIP或SOIC;由于采用串行接口,所以,指令、地址及写入数据在数据输入端DI输入;读出的数据及芯片状态在数据输出端DO输出;所有的数据输入输出都是以串行时钟SK同步,并且在SK的上升沿时起作用的。
  AT93C06/46有7种操作指令,它们分别是:读指令,察/写启动指令,察/写屏蔽指令,写指令,察除指令,全写指令,全察除指令。

  AT93C06/46在执行写指令或全写指令之前,不需要执行察除。其察除指令,全察除指令只是为了保持和NMOS工艺的9346的读及编程的兼容性。为了简化执行过程,所有的编程周期都是自定时的。在DO端输出的“忙”状态指明芯片在执行编程。在出厂时芯片已被察除,即所有储存单元为“1”态。

  AT93C56,AT93C66分别是2K位和4K位的EEPROM。它们的引脚和AT93C06/46兼容。不过AT93C56和AT93C66所需的存取地址要比AT93C06/46多2位,即用8位地址。

 (1)封装及引脚意义

  AT93C06/46的外形封装和引脚如图所示。
  
 在8条引脚中,有2条是无用引脚NC,其它的6条引脚分别是Vcc,GND,CS,SK,DI,DO。

  AT93CO6/46的引脚意义分别介绍如下。

  1 Vcc;电源引脚,+5V。

  2 GND;地线

  3 CS:片选信号。当CS=1时,选中芯片;当CS=0时,不选中芯片且强迫芯片进入备用方式。一旦编程周期启动,则不管CS的输入信号是否变为0,编程周期都会继续执行直到结束,在编程周期结束之前,如果CS为0,则编程一结束芯片马上进入备用方式。
  在两条相临指令执行中,CS必须最少产生500NS的低电平,以指明前条指令的结束。在CS 处于0时,内部控制逻辑处于复位状态。
  在读指令中,当读出指令完全输出之后,CS会产生不少于500NS的低电平。
  在擦写启动指令中,当指令的起始位、操作码、及地址部分送出后,CS会产生一个低电平脉冲。
  在擦写屏蔽指令中,当指令的起始位、操作码、及地址部分送出后,CS会产生一个低电平脉冲。
  在写指令中,当指令内容及写入数据发出后,CS产生一个低电平脉冲。

 在全写指令中,和写指令一样,当指令内容及写入数据发出之后,CS产生一个低电平脉冲

 在擦除指令中,当指令的起始位,操作码及地址部分送出后,CS产生一个低电平脉冲。

 在全擦除指令中,和擦除指令一样,当指令内容即起始,操作码及地址部分送出之后,CS产生一个低电平脉冲。

 CS的低电平脉冲宽度不同厂家有所区别。一般为100-500nS以上。

4 SK:串行时钟。串行时钟SK用于在单片机和AT93C06/46之间的数据通信同步。

 操作码,地址和写入数据在SK的上升沿同步下输入到AT93C06/46内部。读出数据同样在SK的上升沿同步下从AT93C06/46输出。

 串行时钟SK可以在任何位置停在当时的电平状态,也可以在任何时候继续发送。这一特点给单片机在准备操作码,地址和写入数据时以很大的自由度。

 当选择信号CS=0时,串行时钟SK状态可以不加考虑;当CS=1,但起始条件尚未被检测时,任何数量的时钟周期都不会改变AT93C06/46的当时状态;在起始条件检测之后,必须提供一定数量的时钟周期,以把所需的操作码,地址和写入数据同步送入AT93C06/46内部,然后执行相关指令。在执行指令时,串行时钟SK和数据输入端DI的状态无关紧要。芯片等待的是新的起始状态。

5DI:数据输入端DI用于在串行时钟SK的同步下输入起始位,操作码地址和写入数据。

6 DO:数据输出端。数据输出端DO用于在读方式中,在串行时钟SK的同步下输出读出的数据。

 DO端同样在擦除或写入周期中提供就绪/忙信息。

 在擦除指令时,如果串行时钟已把地址AO接收芯片,则其下降沿表明已完成了指令的最后一位的接收,同时,擦除操作开始。在CS产生一个低电平之后,接着从低变高,在DO端输出就绪/忙信号。在执行写指令时,情况相同。

 CS信号从高电平下降到低电平,然后有上升到高电平,这一过程才会使DO端输出就绪/忙信号。如果在擦除或写入的整个时间中,CS保持低电平或高电平,则就绪/忙信号不会在DO端出现。

 如果在擦除或写入周期之后需要检测就绪/忙信号,则应在DO端接上拉电阻,以便检测处于高电平的就绪信号。

 DO和DI可以连接在一起组成DI/DO线,并和CS,SK信号一同组成3线的接口。

 在读指令被检测之后,从DO输出的数据的首都有一位为“0”信号,这一点是要小心注意到,切不可把这位为“0”信号作为数据的高位。

 如果在擦除或写周期,AT93C06/46输出就绪/忙状态,被选中的芯中的芯片不能使用DI/DO方式的3线接口。

(2)指令操作说明

在AT93C06/46的工作中,有7种不同的指令操作。这7种指令及其含义如表所列。
   

(3)接口接线的方式示意图
 
     
    

(4)一种典型4线的连接方法和应用实例
    
    在上图中,ORG接高电平,故选择16位字的方式工作;而ORG接低电平时为选择8位字的方式工作。在选择8位时,其指令格式中的地址部分要在高位多加1位A6,这一点和16位字的工作方式有所区别。当然数据的串行写入和读出也是位的。具体区别看下表:
  
 本实例的ORG端接+5V,其软件流程如图:
   

 在程序框图中,采用了R0、R1、R2共3个暂时寄存器。定义如下:
 R0:写入的数据寄存器,存放是写入的字节数。
 R1:AT93C46的写指令寄存器,它存放写指令的指令操作码“101”,以及地址码A5-A0。地址码为AT93C46内部存储阵列的地址。
 R2:被写数据的地址指针,这是AT89C2051内部待写入到AT93C46中的数据的地址指针。
 在流程图中可以看出就是将R2中数据写入R1所指的地址空间里。



                                        返回单片机与电子制作首页