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

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

[复制链接]
zero99 发布时间:2017-4-1 15:06
M95xxx EEPROM写保护 配置* U1 K) X* k6 F4 T1 O

& P& M9 {* b0 [5 }2 Y' U. {前言0 w0 H; \% I, G5 r0 l4 {  k- S

7 x2 o! s& s; H1 v       以带标识页的M95M01-DF EEPROM为例, 介绍M95xxx系列EEPROM写保护和配置方法。/ i# N7 Y3 J. C0 t

& ]6 R7 x% V8 `! i4 h$ L9 c5 E8 \
" G4 Q% V% _# N) c- l# T2 T8 _: yM95xxx EEPROM写保护介绍
4 o  x$ ~: i$ S: ~& Y0 {. e引脚框图和信号描述
) Z0 T1 r" a, H- P' t1 \: h4 `+ m" i 11.jpg
5 Q: i* _+ |3 \) a7 s! e 12.png
0 m: R" j* x% [4 |2 ]信号描述:
9 w2 U* E9 {" O! g% @    ● 串行数据输出Q:该信号用来从设备移出串行数据,数据在时钟下降沿移出。  O* Q" e' _  y  T5 Z  |. ]6 H
    ● 串行数据输入(D):该信号用来输入串行数据到设备,当时钟上升沿时,被写入的指令、地址和数据的值被锁存。2 g( s8 k$ t' h# j* ~  O3 \
    ● 串行时钟(C):SPI通信的时钟。1 N$ d6 _/ b& n! Z: h
    ● 芯片选择(S ):当输入信号为低时,设备被选择。# [6 b$ S* t; N* R5 j5 b
    ●  保持(HOLD ):HOLD 可以用来暂停串行通信,低电平有效。) P# j/ e9 r4 W. H. V
    ●  写保护(W ):对内存进行写保护配置引脚,在通过写指令操作内存过程中,要维持该引脚的电平不变。
6 b: S* r; l  R) Q! C: N7 e  C8 F    ●  供电(VCC):供电引脚。1 E7 A/ d, T% o" e3 y" t& @4 o
    ●  地(VSS):接地引脚。
6 i" i& Y9 E9 @2 h0 E
4 w) |5 Y; N! \1 [6 _2 XM95xxx EEPROM指令
' \9 h2 {0 g/ l" t0 Q' u       所有的命令在发送时需要高位在前,指令集如下表所示:
5 ~% l& `' X$ \ 13.jpg
9 c4 ~; X! t) O2 R. s$ A0 f" d$ w, J& i; B  g
WREN:通过WREN指令来使能写使能的WEL位。
0 u2 ~' l0 j* C# ^  s
8 Y- s7 l0 U! `; ?( D3 cWRDI:写禁止指令WRDI用来复位WEL位,该为设置位0时禁止写或写状态寄寄存器命令来访问EEPROM。
1 r6 \& N, s# k6 w0 C( B8 ]! L
% h$ F+ h( ~. N6 [RDSR:读状态寄存器RDSR用来读状态寄存器,状态寄存器可以在任意时刻被读取,建议在发送一个新指令到EEPROM之前先检查写进度。状态寄存器地输出是连续的1个字节,从0到7位,状态寄存器如下:
* Z- Z5 H( P3 z& P( u4 D 14.jpg
2 d9 l& ]8 S! x      ●  WIP位:写进度指示位,指示内存忙于在写周期中,该位为1则指示在写周期中忙,为0则空闲;
( `; O3 m( U* ?      ●  WEL位:该为设置为1时,内部的写使能开启;当设置为0时,内部的写使能禁止,此时任何的写或写状态寄存器指令被阻止访问。WEL位可以被以下几种情况复位:
/ L, p4 ^; g' G              • 上电1 R7 E) u1 l2 z% {
              • WRDI指令执行完成' h0 W% W6 c) y: \  v
              • WRSR指令执行完成  a& j. o9 S/ _$ I) M$ B
              • WRITE指令执行完成
8 Q& d# J2 x% ?9 l  Y
      ●  BP1,BP0位:块保护位(BP1,BP0)是非易失的,它们两位决定软件写保护的区域大小。这两位由写状态寄存器命令WRSR来设置。
& [( t* C8 `+ [1 v, E' _0 `9 L         15.jpg
' g3 r- c8 G8 H6 z4 [( F( H
      ●   SRWD位:状态寄存器写禁止位(SRWD)位和硬件保护信号W 结合起来操作。
2 }# z. _: B3 TWRSR:写状态寄存器(WRSR)用来写一个新值到状态寄存器中,在写状态寄存器命令操作之前,需要先执行写使能WREN指令。写状态寄存器用来改变BP1,BP0,SRWD位的值,写状态寄存器不影响b6, b5, b4, b6(WEL), b0(WIP)的值,即b1(WEL)位是由写使能命令WREN来改变其值的,而b0(WIP)是状态位,不能修改。. p" \0 r' D' r! f4 R
8 F- u8 c5 O9 o0 R( ?0 i
READ:读内存指令,当前如果有写周期在执行中,是无法进行读内存操作的。有效的地址位是A16~A0,地址位A23~A17不用关心。: `# W$ @' c! w5 |. W

  w" j; L9 d! u4 V, oWRITE:写内存指令,有以下几种情况,写内存指令是不被接受和执行的:4 R4 X: E2 \! c% R& S* }
    ●   写使能位WEL没有被置1;
2 R' ~2 g. U* M% @. q4 ^# O& r    ●   写周期在执行中;' y+ r/ b, w" B
    ●  在数据传输的最后一个位b0被锁存后,设备还没被取消选择,S 还未置高;: F0 X' u. u0 a- w2 ^0 S; _. @
    ●   要访问的地址页在块保护的区域中。& o6 I, k# D9 u8 f; z  P
& O- ?4 @, @+ V: |/ X1 V7 g
RDID:读标识页指令,256字节的标识页是一个附加的页,能够被写和永久锁存为只读模式。读标识页的最大数量不能超过页边界,否则会读取到不可预测的数据。例如,从位置90开始读取标识页数据,读取的数量不能超过166,因为页边界时256字节。假如有写周期在执行中,那么读标识页指令不被接受和执行。  I4 t4 K! R! ~' L8 n1 `- D
1 b/ z' t+ u% V( e# Z  v+ [
WRID:写标识页指令,256字节的标识页能够被写和永久锁存为只读模式。
- p3 j( F) M+ |1 n( `2 T, M0 B
) A9 C$ Z( D) D( o8 hM95M01-DF写保护模式6 U' w9 l, x' s: G, _7 s" a: {

( ]3 g! ~$ [% V: Z2 nM95M01-DF写保护写保护设置范围如下:; z7 T! [& k1 C0 M/ a2 J) x0 w7 P
  ● 四分之一内存保护) s; O% V' @; b# [& Q! V6 x  @
  ● 一半内存保护
* |6 m3 T3 R1 x  W, y4 w  ● 整个内存保护
' }! c( _' C7 E2 o  ● 也可以对内存不保护。
; `% r7 B" g% D; n, m4 oM95M01-DF的保护状态分为软件保护和硬件保护模式。状态寄存器中的写禁止位SRWD,是配合写保护引脚W 一起使用的,它们一起决定的保护模式如下表所示:. z0 T1 _. ^( |  A
16.png
* b; u8 a; m1 R* {5 v6 T+ G      写状态寄存器WRSR对b6,b5,b4,b1,b0位没有影响, b6,b5,b4一直是0。6 |. d  a  w( v
      状态寄存器写禁止位SRWD在状态寄存器中的初始化状态为0,通过WREN命令设置了WEL位后,不管W 引脚的电平如何,都允许写状态寄存器WRSR。
/ d2 M$ p" Y( U2 g/ R" V6 C; q当状态寄存器写禁止位SRWD被置1后,根据W 引脚的电平有以下两种情况:2 W  F! y8 R$ `% t$ O$ B
   ● 当W 引脚为高时,通过WREN命令设置了WEL位后,允许写状态寄存器WRSR。( {" ]5 ?1 i9 w0 M" A. A/ G3 q
   ● 当W 引脚为低时,不管是否通过WREN命令设置了WEL位,都不允许写状态寄存器WRSR。

) Y# P. T- L  ?' ^! D- Y      内存中的数据,可以被设置为软保护(SPM),也可以设置为硬保护,其中软保护是通过设置块保护位BP1,BP0。以下两种情况发生时,将会进入硬件保护模式HSM:# c* p% Q1 n- i3 M4 `
   ●  W 引脚输入低电平后,置SRWD位为1;
* H# T+ j2 Y; i  d2 j3 b$ [      ●  置SRWD位为1后,W 引脚输入低电平。
6 `* W- P0 {7 G' [+ R5 @      假如W 引脚一直为高,则硬件保护模式HSM不会被激活,此时只有软件保护模式SPM,使用状态寄存器中的BP1,PB0来设置要保护的内存区域。
# G# @! m, @. {9 R# J' p+ S

+ h9 V+ Z' m- [硬件保护模式
0 I* b6 B3 y* L/ X& j      W 引脚输入低电平且SRWD位为1时,此时配置为硬件保护模式。进入硬件保护模式下不可修改保护位BP0和BP1的值,保护的范围由BP0和BP1的值决定。
- @0 f1 ~$ f3 U8 m, ~8 F- a. u4 @9 e) |# s7 _& {$ o
软件保护模式
% ]* X" l: t. @- O5 ]W 引脚输入低电平和SRWD位的值具有如下组合时,可配置为软件保护模式。/ O6 h9 m) N7 d/ ^3 T% k$ A
17.jpg 4 N% |1 W8 [, e
软件保护模式下可以修改保护位BP0和BP1的值来决定保护的内存范围。0 T: R. B2 g4 G/ `# M& z  r

: _. X3 Q) i8 p6 ~! l0 {上电状态3 x$ J9 O# A% M; {% ^1 G
    上电以后,EEPROM将会有如下状态:
# q" V- b  p1 M* U# V  ●  待机模式;) b( z. }0 H0 S2 Y- C
  ●  设备上电后,EEPROM是被取消选择的状态,需要S 下降沿来开启指令传输;
; {# e) [, K, \9 h) }8 f  ●  不在保持状态下;( D8 V$ M  r1 l! S2 [
  ●  写使能锁存位是复位为0的;' E/ k& `6 W! X/ t2 |
  ●  写进度位使复位为0的;
& I9 S3 g- R$ L$ t9 Y1 g     状态寄存器中的SRWD,BP1和BP0是断电后不会改变的,非易失的。

  _1 x/ I( m: `# d) `$ |
' x: v' X) \/ g交货状态: z% R6 V3 p+ v3 h; c* N
    整个内存区域和标识页的字节都设置为0xFF。状态寄存器写禁止位SRWD和块锁存位BP1、BP0都初始化为0。
/ V* H" H" p! h" E7 R# u, [& q  a
) S3 y! g( {0 {; {# ?M95xxx EEPROM写保护配置
0 ]" E0 z% P# @, `  E      由于状态寄存器中的SRWD,BP1和BP0是断电后不会改变的,非易失的,所以无论是硬件保护还是软件保护,在配置硬件保护或者软件保护时,还需要考虑状态寄存器中的SRWD,BP1和BP0位的上电状态和出厂状态,以保证写保护软件能正常使用。以下是参考的硬件保护、软件保护、不保护的配置方法。, a2 H4 q0 P0 r

5 M1 U7 \, H$ ]# o1 P2 I! W硬件保护配置
; ?- r- z2 J* C7 }3 {+ W/ SW 引脚设置为高电平;
& [, ~+ t/ ?8 n2 O' |  b' y通过WREN指令设置WEL位为1,使能写指令;/ j$ t* ^. H3 z/ y7 }% [
通过WRSR指令写入BP1,BP0的保护值;
; Q* @- N# x$ I! z通过WREN指令设置WEL位为1,使能写指令;, P$ T0 c' Q  s# c) g
通过WRSR指令将SRWD位设置为高电平;
( Q0 |1 L0 F! y4 ?W 引脚设置为低电平。( |% E0 T, ]; e' w9 w; ~- ]

( A" q$ [: o& R软件保护配置- H9 g8 \, R+ T( N1 t  Q
W 引脚设置为高电平;* I, {. x+ \3 e  e1 Y$ ?1 O/ e
通过WREN指令设置WEL位为1,使能写指令;
6 c1 y; i2 F+ n通过WRSR指令写入BP1,BP0的保护值;
( d+ E* ?7 D- V* m
& O" m' W4 s& h8 V不保护配置6 M# G  d7 o/ y. V
W 引脚设置为高电平;
+ O, _4 J5 o( M8 L0 X通过WREN指令设置WEL位为1,使能写指令;" l1 V/ s1 s! G( B2 @$ D3 h
通过WRSR指令写入BP1,BP0的保护值为不保护的组合值00;, F8 c$ ^9 ~6 A% X9 ]. t" S2 O) w8 w
通过WREN指令设置WEL位为1,使能写指令;" Q8 D! ]: [4 c  h, O$ V7 w- e/ j6 ]
通过WRITE指令写入数据到EEPROM;
* M( }, U: @8 L" C# H/ }以上WRITE命令执行完成后,如果还想写入数据则需要通过WREN指令设置WEL位为1,使能写指令,然后再通过WRITE指令写入数据。
4 @; u2 ~" {' m( _
4 T7 w, ~8 \2 _. j0 a' a% E结论
2 _0 \9 _+ s& T: N& E" X/ S1 t通过对M95xxx系列EEPROM进行写保护介绍,能够快速指导用户编写HOST端对EEPROM内存保护的软件设计,帮助客户快速使用M95xxx系列EEPROM写保护功能,并提醒客户使用中应该从上电、出厂、运行状态考虑。
3 {7 a0 b+ n, N4 b4 r  B% ^

& w# w3 z/ [+ z, w5 X& k6 U% U
- Y4 ^6 l. a1 G5 ^/ Y
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 手机版