家电维修论坛

 找回密码
 请使用中文注册

QQ登录

只需一步,快速开始

搜索
新手快速入门友情链接新手学发贴无法收到EMAIL邮件
禁发广告贴旧版论坛老用户无法登录版主申请维修联盟网站大事记
查看: 2011|回复: 0
收起左侧

串行E2PROM的类型及应用(下)(重复,请管理员删除)

[复制链接]
发表于 2003-2-17 23:25:00 | 显示全部楼层 |阅读模式

马上登录【中国家电维修联盟论坛】获取更多更全面的信息!

您需要 登录 才可以下载或查看,没有帐号?请使用中文注册

x
  三、SPI总线型
" [: Y" K" l6 y2 B- _; l$ t% O  SPI(Serial Peripheral Interface)总线,即“串行外围设备接口总线”。Microchip公司的25XX系列串行E2PROM采用简单的SPI兼容串行总线结构,用时钟(SCK)、数据输入(SI)、数据输出(SO)三根线进行数据传输,片选信号(CS)控制器件的选通。当今流行的带SPI口的微控制器,如Microchip公司的PIC16C6X/7X微控制器等,均可与25AA040直接接口。片内无SPI口的微控制器,也可用普通I/O口通过软件编程的方式实现与25XX040间的接口。25XX系列采用先进的CMOS技术,是理想的低功耗非易失性存储器器件。5 P1 w- b& g! X6 l
  25XX系列串行E2PROM存储容量从4k位(512×8)至64k位(8k×8),附图是25AA040型4k位SPI总线串行E2PROM的引脚图。
0 r8 M! }" m) E$ c' H9 i5 X  1?引脚说明
* o1 ^8 B: ^9 a) i" K( \" D9 ^  CS是片选输入脚,低电平有效。CS端为高电平,25AA040处于休眠状态。CS的变化不影响已经初始化或正在处理的编程的完成。也就是说若在一个编程周期启动后,CS由低变高,25AA040将在该编程周期完成后立即进入休眠状态。一旦CS为高电平,SO引脚立即变成高阻态,允许多器件共用SPI总线。在有效的写入序列输入后CS端由低转高,启动对内部的写序列。上电后,CS端要先加低电平对所有操作序列初始化。6 O" l6 B/ ^- M- q1 `, Q
  SCK是同步时钟输入脚。来自SI脚的地址或数据在SCK的上升沿被锁存,SO脚的数据在SCK的下降沿时输出。2 C4 y- U0 c9 ~# v3 W. E
  SI是串行数据输入脚,接受来自单片机的命令、地址和数据。
8 g7 k* t$ Y: A) e: ?  SO是串行数据输出脚,在读周期,输出E2PROM存储器的数据。3 E, n3 B$ O7 F- }. ~* l
  WP是写保护输入脚。WP为低电平时禁止对存储阵列或状态寄存器的写操作,其它操作功能正常;WP为高电平,非易失性写在内的所有功能都正常。任何时候将WP置为低电平都将复位写允许锁存器。若一次内部写已经开始,WP置成低电平不影响这次写。
) _4 J" q/ L$ }  HOLD是保持输入脚,低电平有效,用于在数据传送中途暂停向25AA040传送。不用暂停功能时,HOLD必须保持高电平。芯片被选中,正在串行传送时,可将HOLD置为低电平,暂停进一步的传送。方法是在SCK为低电平时,将HOLD引脚变成低电平,不然在下一个SCK由高转低前不能暂停传送。此间,CS必须保持低电平。25AA040处于暂停时,SI、SO、SCK脚均为高阻态。要恢复串行传送,必须在SCK为低电平时将HOLD置为高电平。任何时候只要HOLD为低电平,SO脚将处于高阻态。
- A" o# |5 Z" Q* m  2?工作原理% Q, i1 w. n% H' S
  25XX040片内有一个8位指令寄存器,指令通过SI脚接收,在SCK的上升沿串行输入。指令输入时,CS脚必须为低电平,HOLD脚必须为高电平。WP必须保持高电平,允许写存储器阵列。
% Z; o% @- {) [+ }: Q3 L  表1是25XX040的指令集,指令字节中包含地址位A8,传输时最高位在前,最低位在后。
8 j( Y! m9 ]1 o, c) X  表1
$ S5 w* z7 T. Y2 {4 ^: [% W; K

" {2 ]5 c$ n! x. P% u
$ q& z3 `# L# r& t  A
3 j" k5 P( O! I& L4 S6 @0 U  CS置为低电平后SCK的第一个上升沿开始数据采样。如果与SPI总线上的其它外围器件共用SCK,可改变HOLD引脚电平将25AA040设置成“保持”方式。释放HOLD后,再从HOLD信号确认处继续传送。6 v8 j" G8 t( @9 w9 O. W
  ·读序列  @5 A6 O5 a, ]7 d& G& L5 ]3 q% _' s
  CS降至低电平25AA040被选中。包括A8地址在内的8位读指令被传送到25AA040,接着是低8位地址(A7~A0)。在接收到正确的读指令及低8位地址后,选定地址的内容由SO口串行输出。而下一地址单元的内容将随着时钟脉冲继续输出。每当一个字节的数据传送完毕,25AA040片内的地址指针自动加1,指向下一个地址。当最高位地址(01FFH)内容读出后,地址指针指向0000H,下一个读出周期将继续。CS脚转为高电平读操作终止。
1 L& v* G, J8 k* t  ·写序列
) s# N3 D: V6 ?$ g( R  在着手向25AA040写数据之前,必须先发出WREN指令,置位写允许锁存器,其操作为:先将CS置为低电平,然后按时钟节拍将WREN指令送至25AA040,当指令的8位数全部传送完毕后,再将CS端置为高电平置位写允许锁存器。发出WREN指令后未将CS端置为高电平前,写允许锁存器并没有置位,向25AA040传送的数据将不会被写入存储器阵列。$ W" Q. `! x- O; ]* _
  写允许锁存器置位后,再将CS端置为低电平,发出包括A8地址在内的8位写指令及低8位地址(A7~A0),然后送要写入的数据。一次写序列最多可以连续写16个字节的数据,且所有要写入的数据的地址必须在同一页。一页的首址为XXXX 0000,末址为XXXX 1111。若内部地址计数器已到XXXX 1111,时钟仍在继续,内部地址计数器将重新指向该页的首址XXXX 0000,原写入到该地址的内容就会被覆盖。4 Q. D. K8 F5 \1 f* u8 e# B% a
  为将数据真正写入到25AA040中,须在字节写入或页写入数据的第n个字节的最后一个有效位(D0)送出后将CS置为高电平。若在此外的其它时间将CS置为高电平,写操作就不能完成。在写操作进行时,可以读状态寄存器来检查WIP、WEL、BP1和BP0位的状态。在写周期内是不可能读存储器阵列位置的。一旦写周期完成,写允许锁存器也就被复位了。( q1 ^- h  s2 Z8 {+ m  {3 G" Q& J
  ·写允许(WREN)和写禁止(WRDI)  p5 q: S, E/ o
  25AA040片内有一个写允许锁存器。表2为写保护功能表。在任何写操作将完成之前必须立即置位写允许锁存器。写允许锁存器由WREN指令置位,由WRDI指令复位。
5 U* A& }5 a6 ?& P' ?( C4 s2 w7 q  表2( x5 \/ u8 Z) E5 e2 F

" G  j6 k+ @* _4 q: f7 o5 [2 j6 E, v8 j* l3 o7 H

' R2 f& P- d5 f4 p  满足以下条件之一,写允许锁存器将被复位:
2 Y9 h: v9 s0 w; f; [- X  1)上电;2)WRDI指令成功地执行;3)WRSR指令成功地执行;4)WRITE指令成功地执行;5)WP引脚为低电平。
% U' {4 a  i6 S* ]) Q" ~  ·状态寄存器读(RDSR)) }; X( n7 a. q0 m2 i8 m
  RDSR指令读状态寄存器。状态寄存器可在任何时候读出。状态寄存器的格式如下:
1 m) ~# ?$ A' c" [; R   7   6  5  4 3    2   1    01 Y) \/ I  V1 n1 w2 t4 H, n8 O$ _" |3 n
   X X X X   BP1  BP0  WEL  WIP2 T( f* w7 _" E" m+ J( m  t
  其中,写入保护位(WIP)指示25AA040是否正忙于写入操作,是只读位。WIP为“1”,表示写入正在进行;WIP为“0”,表示未进行写入操作。; w8 |# h& b  ~) c9 v/ Q0 m' x
  写允许锁存器状态位(WEL)指示写允许锁存器的状态,是只读位。WEL为“1”,允许写阵列;WEL为“0”,锁存器禁止写阵列。WEL位的状态由执行WREN或WRDI指令确定,与状态寄存器是否写保护无关。# P0 x5 U% j7 E: b. ?
  块保护位(BP0和BP1)指示当前保护的块地址。块保护地址由用户发出的WRSR指令设定。一旦该块地址的内容被保护,就只能读出而不能写入。4 S8 |0 \) M  Z! u4 ^
  ·状态寄存器写(WRSR)
% D) o& F- l4 _" h. K" e0 Z% B- z  WRSR指令允许用户通过写状态寄存器BP1、BP0位的方法选择对存储器的保护区,BP0、BP1与块保护地址的关系见表3。2 N/ u' h' Q( e! D
  表3) N- [" T1 p, c/ J" B: e$ b3 E
* o' H! N, S  P% v( A8 E0 N7 N

. D2 u6 e1 ]5 ], ]7 E7 O" n0 ~5 X3 j% O4 X' {
  ·数据保护: F2 d( m  n% y. ]2 X( A+ V; E4 m
  25AA040采取用多种措施保证存储器阵列不被误写入。1)上电时复位写允许锁存器;2)必须发出写允许指令方可置位写允许锁存器;3)在单字节写入、页写入或状态寄存器写入后,写允许锁存器被复位;4)对芯片写入时,在接收了定数量的时钟周期之后,必须将CS端置为高电平,芯片内部的写周期才开始;5)在内部写周期期间,对存储器阵列的存取无效;6)WP引脚为高电平时,复位写允许锁存器。
$ G+ z2 d' q% @3 u4 z; R  ·芯片上电时的状态
2 ~4 @5 g0 C9 X1 x* s) @+ y  25AA040上电时的状态如下:器件处于低功耗待机方式(CS=1);写允许锁存器被复位;SO引脚为高阻态;必须将CS引脚置为低电平方可进入工作状态。  
您需要登录后才可以回帖 登录 | 请使用中文注册

本版积分规则

QQ|Archiver|手机版|小黑屋|粤ICP备09021106号|大众电子网
深圳市深威志电子有限公司 版权所有 站长QQ:17158联系站长请点这里

GMT+8, 2026-2-23 20:54 , Processed in 0.211176 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表