
M95xxx EEPROM介绍 * T9 M3 p& _5 l7 s+ m2 c前言+ `. n. \# J3 _9 M. _, M 以带标识页的M95M01-DF EEPROM为例, 介绍M95xxx系列EEPROM,包括内存组织、SPI接口时序、指令、读写时间、供电、写保护以及出厂参数等等。% p; o; e% P( V- P% ] 5 n8 C5 u `3 d; W$ U M95xxx EEPROM介绍% i5 i5 y/ z3 T/ F ! k u3 `% J4 c# ] K1 y5 ` M95M01-DF特性介绍 • 访问接口:SPI1 q! g% S3 f* N, d • 时钟速率:16MHz •内存组织 ·1Mbit(128KByte)% ~% L! X' _9 A! G · 页大小:256字节. P4 u0 o7 W' ] • 写操作:3 d$ m: g* j. Q# b' B+ ^6 o# W& ^1 m ·页写时间5ms · 字节写时间5ms • 写保护设置: ·四分之一内存保护 ·一半内存保护* x3 w: u0 G$ K0 p, e1 p) c · 整个内存保护% h; u$ s9 z; \6 L% r5 X5 w4 j • 供电:( m8 Q8 Z3 U0 F! |# P% W · 对于M95M01-R,1.8V~5.5V。& U% w3 H( Z. E7 ? ·对于M95M01-DF,1.7V~5.5V。" j: E* I {$ w. _ b# ], X • 工作温度范围:-40~+85摄氏度' n7 X! {1 Z/ x/ ?- [ • 400万次写周期0 S# i4 N1 E) s+ \ j- u$ p3 W • 200年数据保存时间 •封装:SO8、TSSOP8、WLCSP •Identification Page:256字节。Identification page用来存储应用程序的敏感数据,可以被永久锁存为只读模式。M95xx系列EEPROM分为带标识页和不带标识页的型号,根 据芯片编号来区分。 M95xx系列EEPROM命名规则 ![]() ) [4 t; k; g/ R: j 内存组织% Z+ }/ i: _: }) C& z6 C ![]() 引脚框图和信号描述+ d$ C0 _3 ?2 c5 Z" A9 n ![]() 信号描述: • 串行数据输出Q:该信号用来从设备移出串行数据,数据在时钟下降沿移出。 • 串行数据输入(D):该信号用来输入串行数据到设备,当时钟上升沿时,被写入的指令、地址和数据的值被锁存。 • 串行时钟(C):SPI通信的时钟。9 v( i- a2 I9 G/ _ • 芯片选择(S ):当输入信号为低时,设备被选择。 • 保持(HOLD ):HOLD 可以用来暂停串行通信,低电平有效。( @9 V' {! G1 J9 y- N! \- V& w( s • 写保护(W ):对内存进行写保护配置引脚,在通过写指令操作内存过程中,要维持该引脚的电平不变。- ~7 ] a" l+ x i0 K • 供电(VCC):供电引脚。/ a9 z3 q, ]' ?7 i0 V- S • 地(VSS):接地引脚。' }0 r; Z, x; F2 z$ j 6 ~. }; s- a8 D0 F SPI时序: [# b2 i! C) u9 C3 c+ K M95M01支持SPI接口访问,支持以下两种模式: • CPOL = 0, CPHA = 0 • CPOL = 1, CPHA = 1 对于这两种模式,一种模式是输入数据在串行时钟的上升沿锁存,另外一种模式是输出数据在时钟的下降沿有效。时序图如下图所示:6 a0 v1 T8 K& E9 h0 i+ O; b! a# ^. e ![]() 指令$ C! A x3 W, ^& f 所有的命令在发送时需要高位在前,指令集如下表所示:5 S6 F+ ?3 x1 ^, u% Y l4 A( d ![]() 写使能指令WREN1 E6 T% M# [9 ~! L! }& u3 ]/ a6 C( d 通过WREN指令来使能写使能的WEL位。 ![]() 写禁止指令WRDI$ o5 ?9 j# o$ P: X. j" S2 w 写禁止指令WRDI用来复位WEL位,该为设置位0时禁止写或写状态寄寄存器命令来访问EEPROM。- s. T4 q9 Y* v1 |, n) ?7 x# Y7 C- K! e ![]() 读状态寄存器指令RDSR0 f/ W8 P1 L0 X+ z1 J) J 读状态寄存器RDSR用来读状态寄存器,状态寄存器可以在任意时刻被读取,建议在发送一个新指令到EEPROM之前先检查写进度。状态寄存器地输出是连续的1个字节,从0到7位,如下图所示:$ a' x( v0 g+ O' Q5 G" o ![]() 状态寄存器如下: ![]() • WIP位:写进度指示位,指示内存忙于在写周期中,该位为1则指示在写周期中忙,为0则空闲; • WEL位:该为设置为1时,内部的写使能开启;当设置为0时,内部的写使能禁止,此时任何的写或写状态寄存器指令被阻止访问。WEL位可以被以下几种情况复位: ·上电 · WRDI指令执行完成 ·WRSR指令执行完成7 W d, P4 R) A- D' @0 P/ T ·WRITE指令执行完成2 N: J/ c( X- S5 B2 H Q • BP1,BP0位:块保护位(BP1,BP0)是非易失的,它们两位决定软件写保护的区域大小。这两位由写状态寄存器命令WRSR来设置。 • ![]() • SRWD位:状态寄存器写禁止位(SRWD)位和硬件保护信号W 结合起来操作。 ; O0 k3 C A0 {; {" m; ^ 写状态寄存器指令WRSR1 T: ?8 m: U7 _) u$ F' w 写状态寄存器(WRSR)用来写一个新值到状态寄存器中,在写状态寄存器命令操作之前,需要先执行写使能WREN指令。写状态寄存器用来改变BP1,BP0,SRWD位的值,写状态寄存器不影响b6, b5, b4, b1(WEL), b0(WIP)的值,即b1(WEL)位是由写使能命令WREN来改变其值的,而b0(WIP)是状态为,不能修改。5 o9 \; D) ?% I8 r- t ![]() 5 Z. o1 c9 `" n0 N4 `* k0 P4 ~ 读内存指令 当前如果有写周期在执行中,是无法进行读内存操作的。有效的地址位是A16~A0,地址位A23~A17不用关心。* `2 f8 s" f0 G; {' i2 l) i ![]() U* L* l8 ?* v0 Z. t; D 写内存指令6 ? q4 y, C# z, c 字节写时序图如下: O% t }4 u! p4 o& Y) y3 t0 s ![]() 页写时序图如下:7 o- e4 l( M: {( t ![]() 有以下几种情况,写内存指令是不被接受和执行的: • 写使能位WEL没有被置1; @& ?% G* ^* M1 Y& x3 Z • 写周期在执行中; • 在数据传输的最后一个位b0被锁存后,设备还没被取消选择,S 还未置高;2 d4 j7 m4 u( z# j% T; J • 要访问的地址页在块保护的区域中。4 i0 k/ Q- {) y3 c 读标识页指令 读标识页时序图如下:% q: E; T) m3 _3 P# Y( g' y$ z# i ![]() 256字节的标识页是一个附加的页,能够被写和永久锁存为只读模式。读标识页的最大数量不能超过页边界,否则会读取到不可预测的数据。例如,从位置90开始读取标识页数据,读取的数量不能超过166,因为页边界时256字节。$ b3 I* y. v' Y' b* \( o 假如有写周期在执行中,那么读标识页指令不被接受和执行。6 N% u* m/ R9 b8 t J& f: o. ^! r 写标识页指令2 @! M' Z. |% s. y( C* z 写标识页时序图如下所示: ![]() 256字节的标识页能够被写和永久锁存为只读模式。, w+ f% r8 r4 Y/ b9 }# | Y/ ^* E' q( S! _1 ? , Z7 k. N: `% H* R/ b" {$ i: h6 g 数据保护9 o, r% e' Q0 b) u0 ? 状态寄存器中的写禁止位SRWD,是配合写保护引脚W 一起使用的,它们一起决定的保护模式如下表所示: ![]() 写状态寄存器WRSR对b6,b5,b4,b1,b0位没有影响, b6,b5,b4一直是0。% |& W9 R X$ n4 x+ ~' l 状态寄存器写禁止位SRWD在状态寄存器中的初始化状态为0,通过WREN命令设置了WEL位后,不管W 引脚的电平如何,都允许写状态寄存器WRSR。 当状态寄存器写禁止位SRWD被置1后,根据W 引脚的电平有以下两种情况:, p, n) ?9 m& s8 r* I) Q • 当W 引脚为高时,通过WREN命令设置了WEL位后,允许写状态寄存器WRSR。 • 当W 引脚为低时,不管是否通过WREN命令设置了WEL位,都不允许写状态寄存器WRSR。 内存中的数据,可以被设置为软保护(SPM),也可以设置为硬保护,其中软保护是通过设置块保护位BP1,BP0。以下两种情况发生时,将会进入硬件保护模式HSM:6 C% Y: _( H. t) {" O( _4 a • W 引脚输入低电平后,置SRWD位为1; • 置SRWD位为1后,W 引脚输入低电平。 假如W 引脚一直为高,则硬件保护模式HSM不会被激活,此时只有软件保护模式SPM,使用状态寄存器中的BP1,PB0来设置要保护的内存区域。+ a' K- g5 H1 R; X' W: W, F/ T ) w) u; `, G. U4 u5 l, ] 读锁状态 读锁状态时序图如下所示: ![]() 读锁状态指令用来检查标识页是否被锁或为只读模式,地址位A10必须为1,其它地址不用关心。锁存位是读取到的数据的最低位,该位为1则锁存被激活,该位为0则锁存未被激活。" c2 p- N' {+ u. O8 v# d 锁状态查询, a$ t" a8 ]# H9 k5 ?; W 所状态指令时序图如下所示:( H) h' Y2 R# C" d' p ![]() 锁标识指令永久地锁存标识页为只读模式。该执行执行之前,先要执行写指令WREN。地址A10必须为1,其它地址位可以不关心。数据字节必须按照二进制的xxxx xx1x发送,x位的值不需关心。 有以下几种情况会导致锁标识指令不被接受和执行:8 x* m7 j3 r* j8 n: d( i • 写周期已经在进行中; • 块保护位设置为(BP1,BP0) = (1,1) ; • 数据传输边界时的S 上升沿出现。 上电状态3 k+ L4 W4 y- l5 \7 q 上电以后,EEPROM将会有如下状态: • 待机模式;" z2 |8 N( C' E: P% P • 设备上电后,EEPROM是被取消选择的状态,需要S 下降沿来开启指令传输; • 不在保持状态下; • 写使能锁存位是复位为0的; • 写进度位使复位为0的;# N. O+ T, M s- A 状态寄存器中的SRWD,BP1和BP0是断电后不会改变的,非易失的。5 V' Y* D8 o; \) f7 ] 交货状态: _& t6 ?- ?: h$ Y1 a 整个内存区域和标识页的字节都设置为0xFF。状态寄存器写禁止位SRWD和块锁存位BP1、BP0都初始化为0。% K' k+ N- F, o: P/ h3 { 结论9 y9 d) _& `# R. x) k" a3 j 通过对M95xxx系列EEPROM进行介绍,能够快速指导用户如何使用HOST访问EEPROM内存和进行写保护设置,用户可以在设计产品过程中参考本文档进行软件设计,特别是写保护设计部分。 5 ` i; l* H9 C- r9 L# N9 d) _ * K" ~0 J* K2 I ![]() |
谢谢分享,学习一下 |
谢谢分享 |
谢谢分享 |
不错的资料,下载学习学习。 |