你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【实战经验】M95xxx EEPROM写保护配置

[复制链接]
zero99 发布时间:2017-4-1 15:06
M95xxx EEPROM写保护 配置& N% z$ G7 o+ I8 C  M

5 H; W: W; [8 X  ]; C3 Y前言5 Z& s5 W0 k- Z' p# d3 y
, K4 V6 P) W3 H4 ^
       以带标识页的M95M01-DF EEPROM为例, 介绍M95xxx系列EEPROM写保护和配置方法。. }' ^+ u5 H' w

$ W9 ?1 {0 l8 v  l) L
  m4 h8 l' K7 T1 c# t' Y2 vM95xxx EEPROM写保护介绍# ~6 h4 b4 g& z3 u
引脚框图和信号描述5 e* M/ z5 J. h$ N% Z5 P4 I
11.jpg 7 [; w0 z( @, b& Q
12.png ' Q! f9 d) Y" Q% J
信号描述:, E+ p3 r! k# R# }7 s1 j
    ● 串行数据输出Q:该信号用来从设备移出串行数据,数据在时钟下降沿移出。7 e/ y" J, h9 ~+ E  n) r
    ● 串行数据输入(D):该信号用来输入串行数据到设备,当时钟上升沿时,被写入的指令、地址和数据的值被锁存。
/ J9 i  X, w: v) A8 H    ● 串行时钟(C):SPI通信的时钟。
& T, w* I& m; V0 f" W$ }8 V+ r    ● 芯片选择(S ):当输入信号为低时,设备被选择。
  M  O! D+ F8 }- J    ●  保持(HOLD ):HOLD 可以用来暂停串行通信,低电平有效。
/ \, ]# G% r6 j+ P' R    ●  写保护(W ):对内存进行写保护配置引脚,在通过写指令操作内存过程中,要维持该引脚的电平不变。  l) k- w/ J" M; @3 P
    ●  供电(VCC):供电引脚。
2 Z5 o% w# D/ V: P/ g    ●  地(VSS):接地引脚。* Y, Q) w& |- n1 W) h

$ a+ c( N  u) DM95xxx EEPROM指令
' e" c2 n" `/ r6 N. w2 n; g       所有的命令在发送时需要高位在前,指令集如下表所示:: A  O" Q  g0 a4 {8 L( P) S; d! G: _
13.jpg 4 t# q9 d6 R; b6 u1 p7 v2 h3 \5 ]
% H+ k- [' u3 i! j, S7 t
WREN:通过WREN指令来使能写使能的WEL位。
0 P" e; n, Z- G- i: `2 v
4 ~( \- O% T  K7 g: S  rWRDI:写禁止指令WRDI用来复位WEL位,该为设置位0时禁止写或写状态寄寄存器命令来访问EEPROM。+ E0 o9 Y3 a  O, ~/ m% a
  y6 N4 O4 W$ o
RDSR:读状态寄存器RDSR用来读状态寄存器,状态寄存器可以在任意时刻被读取,建议在发送一个新指令到EEPROM之前先检查写进度。状态寄存器地输出是连续的1个字节,从0到7位,状态寄存器如下:
  h' `; P# m1 w5 y9 N. L, V6 Z 14.jpg
5 O- s1 s( b8 ?, t      ●  WIP位:写进度指示位,指示内存忙于在写周期中,该位为1则指示在写周期中忙,为0则空闲;
  i) P( L/ L+ Z' |: W5 ~. X5 K1 `      ●  WEL位:该为设置为1时,内部的写使能开启;当设置为0时,内部的写使能禁止,此时任何的写或写状态寄存器指令被阻止访问。WEL位可以被以下几种情况复位:
8 x' y" @7 n3 z5 ^: y              • 上电; P4 \# x" {+ M
              • WRDI指令执行完成% y. |& n2 a5 G, t) o) y
              • WRSR指令执行完成
- F: r9 b& B! C* p( d  L% j              • WRITE指令执行完成

7 d# f6 T  B0 c0 m" i      ●  BP1,BP0位:块保护位(BP1,BP0)是非易失的,它们两位决定软件写保护的区域大小。这两位由写状态寄存器命令WRSR来设置。
4 Y0 C1 K  p0 ^9 J4 F* g$ I         15.jpg
& w6 Y2 G) V5 }+ a' R" G
      ●   SRWD位:状态寄存器写禁止位(SRWD)位和硬件保护信号W 结合起来操作。7 p- N2 W" N: W7 b- y
WRSR:写状态寄存器(WRSR)用来写一个新值到状态寄存器中,在写状态寄存器命令操作之前,需要先执行写使能WREN指令。写状态寄存器用来改变BP1,BP0,SRWD位的值,写状态寄存器不影响b6, b5, b4, b6(WEL), b0(WIP)的值,即b1(WEL)位是由写使能命令WREN来改变其值的,而b0(WIP)是状态位,不能修改。
% s* |) j2 @" `) t1 [3 ?  D  ~9 s# s. D
READ:读内存指令,当前如果有写周期在执行中,是无法进行读内存操作的。有效的地址位是A16~A0,地址位A23~A17不用关心。9 w- y& J% h' j5 r

) p( `5 b& n% x% U( P; ~WRITE:写内存指令,有以下几种情况,写内存指令是不被接受和执行的:! b0 |0 i' f* w
    ●   写使能位WEL没有被置1;+ O. k! A. d  K4 k" O3 T
    ●   写周期在执行中;- b. r: {# E/ [/ F' D& ^
    ●  在数据传输的最后一个位b0被锁存后,设备还没被取消选择,S 还未置高;1 k  U8 {* j4 ?( q/ d5 Q  t
    ●   要访问的地址页在块保护的区域中。
5 x0 K0 V. Q% M6 Y6 O$ `
( a9 ?- {6 C) m2 g  Z7 kRDID:读标识页指令,256字节的标识页是一个附加的页,能够被写和永久锁存为只读模式。读标识页的最大数量不能超过页边界,否则会读取到不可预测的数据。例如,从位置90开始读取标识页数据,读取的数量不能超过166,因为页边界时256字节。假如有写周期在执行中,那么读标识页指令不被接受和执行。) y( C0 O& U' }! O1 F3 j+ [
7 {6 q1 u. V, D/ B  w
WRID:写标识页指令,256字节的标识页能够被写和永久锁存为只读模式。
7 }! O( d! N) |( N, B( j" F
3 D7 x/ x" m5 o. P3 DM95M01-DF写保护模式# X; F  x$ W1 j. ]4 B+ S: @4 q/ h
$ T; ~! M" x* ?3 I5 |: Y
M95M01-DF写保护写保护设置范围如下:
) N" w9 E0 [  _7 ^# b  ● 四分之一内存保护
1 g, S  z, k* H- h# S$ C  ● 一半内存保护) ~: k! J7 J& A$ g) t5 K
  ● 整个内存保护
3 q7 ~; \/ C+ _  k" u- c  ● 也可以对内存不保护。2 Z! g6 ], T8 Y5 f
M95M01-DF的保护状态分为软件保护和硬件保护模式。状态寄存器中的写禁止位SRWD,是配合写保护引脚W 一起使用的,它们一起决定的保护模式如下表所示:
) N$ a$ g; a5 H 16.png
, }) o' X, z/ S" ^! t% Y      写状态寄存器WRSR对b6,b5,b4,b1,b0位没有影响, b6,b5,b4一直是0。$ [8 ?9 |" T  G0 b! H( X5 B
      状态寄存器写禁止位SRWD在状态寄存器中的初始化状态为0,通过WREN命令设置了WEL位后,不管W 引脚的电平如何,都允许写状态寄存器WRSR。& E+ b5 ?8 a- l% Q$ A
当状态寄存器写禁止位SRWD被置1后,根据W 引脚的电平有以下两种情况:4 R. z. f# O; q, B
   ● 当W 引脚为高时,通过WREN命令设置了WEL位后,允许写状态寄存器WRSR。2 I( w- L4 B9 ?$ D
   ● 当W 引脚为低时,不管是否通过WREN命令设置了WEL位,都不允许写状态寄存器WRSR。

3 R& u8 W0 |) G. @/ r      内存中的数据,可以被设置为软保护(SPM),也可以设置为硬保护,其中软保护是通过设置块保护位BP1,BP0。以下两种情况发生时,将会进入硬件保护模式HSM:
) y- R3 t; C7 C% I( G, P+ I   ●  W 引脚输入低电平后,置SRWD位为1;
* E: T0 [  |5 X) S* u; Z, A  p  L& O      ●  置SRWD位为1后,W 引脚输入低电平。
+ Y. O. g( N+ w) J9 a4 `" X, A( U      假如W 引脚一直为高,则硬件保护模式HSM不会被激活,此时只有软件保护模式SPM,使用状态寄存器中的BP1,PB0来设置要保护的内存区域。

2 |3 O9 J% e4 D6 j$ I
1 g$ n1 m( p2 _! D+ S硬件保护模式
' I. m/ d" _' k      W 引脚输入低电平且SRWD位为1时,此时配置为硬件保护模式。进入硬件保护模式下不可修改保护位BP0和BP1的值,保护的范围由BP0和BP1的值决定。& d: @' W% ^: m, y0 P1 P! w

8 }8 O( b: B% _! Y4 i9 T软件保护模式
9 f, w" a: F1 h( [# ^! A& O& jW 引脚输入低电平和SRWD位的值具有如下组合时,可配置为软件保护模式。
$ Z- O8 I! I( H! {4 r6 F- J 17.jpg 6 @; _. E9 `" ?
软件保护模式下可以修改保护位BP0和BP1的值来决定保护的内存范围。
, T$ P" Y4 S7 @7 ~
- X2 Q' S( M" P0 A, K1 Z) a上电状态+ G4 `+ F, n0 U$ y6 d( g$ S9 j  D
    上电以后,EEPROM将会有如下状态:
$ M5 H5 }) N/ k. {  ●  待机模式;# j) |: H5 q4 j8 t) S
  ●  设备上电后,EEPROM是被取消选择的状态,需要S 下降沿来开启指令传输;+ R- {$ X# `5 B4 W- g3 u
  ●  不在保持状态下;$ r  S. B! O' O0 X) z
  ●  写使能锁存位是复位为0的;
1 X  J2 t4 O; J/ r0 U* A  ●  写进度位使复位为0的;
4 F& O  O7 e7 b6 d" X     状态寄存器中的SRWD,BP1和BP0是断电后不会改变的,非易失的。
+ ?1 |- f$ Y8 ^+ X- T

1 s0 \" k6 G. h0 X7 z交货状态% J8 Z9 q0 A8 t9 |
    整个内存区域和标识页的字节都设置为0xFF。状态寄存器写禁止位SRWD和块锁存位BP1、BP0都初始化为0。
6 K- x" v, O* A9 G9 G2 a
$ q1 A9 U: }' q/ K* v9 ]# a  @* EM95xxx EEPROM写保护配置, B# {) I  v" H- L! e
      由于状态寄存器中的SRWD,BP1和BP0是断电后不会改变的,非易失的,所以无论是硬件保护还是软件保护,在配置硬件保护或者软件保护时,还需要考虑状态寄存器中的SRWD,BP1和BP0位的上电状态和出厂状态,以保证写保护软件能正常使用。以下是参考的硬件保护、软件保护、不保护的配置方法。" K; T7 n, g! y' E5 e: `5 x" M
2 O+ {# G: c) Z: e0 l
硬件保护配置
3 X8 _- C0 _* H! gW 引脚设置为高电平;
/ K5 k5 V7 M, F) h, b( p通过WREN指令设置WEL位为1,使能写指令;
: @* E5 d! S9 V1 |! L! V. S& T2 K通过WRSR指令写入BP1,BP0的保护值;
* Q5 A, O" Q  s通过WREN指令设置WEL位为1,使能写指令;) @6 k- _" e. x1 s2 {
通过WRSR指令将SRWD位设置为高电平;
8 f7 r& i8 w0 H7 B" @: y) bW 引脚设置为低电平。6 l: Q+ ?; w0 F! i+ V# `
/ q" z6 t: A' L' G1 ]* M7 b
软件保护配置
+ E9 a  A/ P/ ~- `# a; U! {W 引脚设置为高电平;
, R% k6 ~- R; M( L  _& M通过WREN指令设置WEL位为1,使能写指令;
, l+ o9 }& c; ], o5 v通过WRSR指令写入BP1,BP0的保护值;
6 W" V  z: E1 R# m! u
2 i  P' s6 z, |( e* }$ c6 \- i% _不保护配置
2 c6 I9 T- K3 n7 E' T7 H" u0 ~8 zW 引脚设置为高电平;
' {7 p! w3 Z4 r$ X4 ?通过WREN指令设置WEL位为1,使能写指令;
$ O* n. U' \( x' ~. U( z通过WRSR指令写入BP1,BP0的保护值为不保护的组合值00;
6 T! h+ O% W1 q+ c通过WREN指令设置WEL位为1,使能写指令;4 X6 r2 w* J: |) [, l! q* S
通过WRITE指令写入数据到EEPROM;
) l& ]/ C5 [4 @. e- P7 o; t以上WRITE命令执行完成后,如果还想写入数据则需要通过WREN指令设置WEL位为1,使能写指令,然后再通过WRITE指令写入数据。. k9 y; j( {" J9 r& b

+ B! p8 D4 }8 `" W" `. Z结论
% a5 L( _5 g+ N通过对M95xxx系列EEPROM进行写保护介绍,能够快速指导用户编写HOST端对EEPROM内存保护的软件设计,帮助客户快速使用M95xxx系列EEPROM写保护功能,并提醒客户使用中应该从上电、出厂、运行状态考虑。

- I6 d+ p0 T6 i5 I( B% O. J% W, a6 J0 J. G; G( o2 z
- q$ V& q# s; _2 x
M95xxx EEPROM写保护配置.pdf (570.02 KB, 下载次数: 45)
收藏 1 评论2 发布时间:2017-4-1 15:06

举报

2个回答
feixiang20 回答时间:2017-6-28 12:42:15
资料很好,谢谢分享
yamingchow 回答时间:2018-5-11 10:23:12
谢谢分享

所属标签

相似分享

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版