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

【实战经验】M95xxx EEPROM介绍

[复制链接]
zero99 发布时间:2017-4-1 15:27
M95xxx EEPROM介绍

; L  ~2 q6 G' l- g5 y/ c& J+ [前言
8 |8 O9 t: A8 x0 u0 Y以带标识页的M95M01-DF EEPROM为例, 介绍M95xxx系列EEPROM,包括内存组织、SPI接口时序、指令、读写时间、供电、写保护以及出厂参数等等。* @0 G' {1 V7 v+ O

- d& Q  [. o8 E: ]1 YM95xxx EEPROM介绍
% i* ?2 n. C3 t, p# j  B' M& i3 p* H
M95M01-DF特性介绍% B' X2 o$ h. F
      • 访问接口:SPI
. o- m4 e% J2 q& K" i. [. B+ @      • 时钟速率:16MHz- K8 V" f* b! v2 @. P
      •内存组织
# x1 j+ j, J( v8 n1 x         ·1Mbit(128KByte)
' j# j8 b8 ^' c; k, [         · 页大小:256字节
8 \# G8 e9 W0 _0 l6 ^. U     • 写操作:
, x  q! u& g# f/ Q         ·页写时间5ms
% x1 p7 h% ~+ [  T, v         · 字节写时间5ms
( h: G; l3 B# r$ ~0 s" s     • 写保护设置:
* j- F- F1 T9 O8 i; ~         ·四分之一内存保护
8 q6 {- F1 y* m6 x9 C" m& t         ·一半内存保护4 ^1 ~; |" o6 M0 w9 t# S3 x
         · 整个内存保护5 a  q7 w3 F6 [$ h5 a6 u6 P5 }. `
      • 供电:
6 Z* L5 ]) N8 F$ C4 E* J* r, s         · 对于M95M01-R,1.8V~5.5V。
0 }, d4 e, r3 Y4 S2 k9 F  y         ·对于M95M01-DF,1.7V~5.5V。
, w9 k4 k" _4 U& V$ p
- l8 V2 e3 _- g      • 工作温度范围:-40~+85摄氏度8 B  a& S/ G; |
      • 400万次写周期  l( C% g/ M6 w) O; z) H9 d
      • 200年数据保存时间0 T3 F3 ~7 ]/ ?, v. M
      •封装:SO8、TSSOP8、WLCSP+ L! Q1 T( z  @

- X( q* g& d0 k3 x: Y7 ?; V      •Identification Page:256字节。Identification page用来存储应用程序的敏感数据,可以被永久锁存为只读模式。M95xx系列EEPROM分为带标识页和不带标识页的型号,根          据芯片编号来区分。
7 v8 Z) U; H; X- N  q
1 t( M2 L/ D# G7 y- t. OM95xx系列EEPROM命名规则
& D/ x$ i) k+ y) o$ M
11.jpg
0 B8 ]- F$ y, t$ ?+ X" b4 U4 o5 t1 b; x8 a, I
内存组织
+ U: [+ A6 N! D; v' E) k
12.png # m$ r* `. u, W, E. r

9 m3 Z3 G- p3 n3 d3 `9 t引脚框图和信号描述
2 G# _* k  h9 ^9 Y1 T
13.png
0 ?& C) e1 O7 M6 L0 C6 p7 w* N
+ Z; l( ]2 x6 C  W7 P$ n! [信号描述:
+ R. B7 p+ q# B1 a. `4 v: b      • 串行数据输出Q:该信号用来从设备移出串行数据,数据在时钟下降沿移出。1 T+ D4 E! P  i, q/ N# Q5 S
      • 串行数据输入(D):该信号用来输入串行数据到设备,当时钟上升沿时,被写入的指令、地址和数据的值被锁存。
+ I4 r+ r* C! W+ d5 V      • 串行时钟(C):SPI通信的时钟。
# }4 k  ?5 g6 r( e      • 芯片选择(S ):当输入信号为低时,设备被选择。
9 z1 F# R4 M9 P/ P# \      • 保持(HOLD ):HOLD 可以用来暂停串行通信,低电平有效。. D( i2 f$ m6 r" `) Z0 R. q
      • 写保护(W ):对内存进行写保护配置引脚,在通过写指令操作内存过程中,要维持该引脚的电平不变。
" z; ?5 _2 S2 n/ `4 m      • 供电(VCC):供电引脚。8 P  @& f8 W; u/ h* z5 [" l
      •  地(VSS):接地引脚。
% V4 D3 {$ M0 {3 e: o$ z7 o2 s% A& ~$ B3 `4 b1 R5 x# z/ K$ d
SPI时序5 m7 C. r; E$ J8 ~  G
    M95M01支持SPI接口访问,支持以下两种模式:
4 D/ F: I/ w  E, v9 T# L     • CPOL = 0, CPHA = 0! Q- J* Z* J  ~* D7 O7 j# R
     • CPOL = 1, CPHA = 1) J  u; _; S" u& t. P3 s$ a2 E
       对于这两种模式,一种模式是输入数据在串行时钟的上升沿锁存,另外一种模式是输出数据在时钟的下降沿有效。时序图如下图所示:
0 l9 M; ~% P& x/ U) n! B& a6 U0 Q
15.jpg
2 a+ L8 E% Z* ?9 h7 q
  X/ U" E. d0 J) j指令& q3 K+ s0 x/ i( F& h7 d5 g+ z
       所有的命令在发送时需要高位在前,指令集如下表所示:
" }/ T/ P9 i% u
16.jpg
4 T# y' \) i4 j3 H* y, g, I3 v" e' u, _1 o& F0 l
写使能指令WREN" n  n# O/ H- V& g
      通过WREN指令来使能写使能的WEL位。
) w; |3 a5 W) w& z- N
17.jpg / k7 x/ \4 ~. B$ z

: X  t  v$ T% A写禁止指令WRDI8 @) }  X1 l8 I; F- o3 u: a0 p7 u8 m* V
     写禁止指令WRDI用来复位WEL位,该为设置位0时禁止写或写状态寄寄存器命令来访问EEPROM。' v3 }. W* L  l. a" k: z- y
18.jpg # F9 a9 ^6 y$ ~. X: F

9 t6 l$ |5 s" ]: n5 I: N读状态寄存器指令RDSR
- h' m7 {. c  {. V: ^; S% Q5 y       读状态寄存器RDSR用来读状态寄存器,状态寄存器可以在任意时刻被读取,建议在发送一个新指令到EEPROM之前先检查写进度。状态寄存器地输出是连续的1个字节,从0到7位,如下图所示:
6 D  g4 ?' k/ x: H' U7 h2 R
19.jpg
% D9 z# Q3 g2 ]5 c  x9 L" }
) |% Y( i9 Q2 K( W% R状态寄存器如下:
% a2 M+ T* ~  L5 ?" Q- t
21.jpg
% q" o: h7 r& z, n• WIP位:写进度指示位,指示内存忙于在写周期中,该位为1则指示在写周期中忙,为0则空闲;
! W5 F. z9 I/ r; }9 p/ JWEL位:该为设置为1时,内部的写使能开启;当设置为0时,内部的写使能禁止,此时任何的写或写状态寄存器指令被阻止访问。WEL位可以被以下几种情况复位2 j3 _: P7 m0 w2 ~  M. m
   ·上电3 n% G" e) Z" o) B' }) v
   · WRDI指令执行完成
1 k' e9 H: N: a, Y% k   ·WRSR指令执行完成
, J- {/ t9 u2 A! a( ?, `   ·WRITE指令执行完成* B1 z8 O  ^$ \4 g  ?- n8 G' g
BP1,BP0位:块保护位(BP1,BP0)是非易失的,它们两位决定软件写保护的区域大小。这两位由写状态寄存器命令WRSR来设置。
+ S+ B0 C1 s" ?2 \
22.jpg
+ M9 k% e; g- oSRWD位:状态寄存器写禁止位(SRWD)位和硬件保护信号W 结合起来操作。0 F$ a& K. o4 t2 R) Y
: @3 t$ ]! G: {$ o. p
写状态寄存器指令WRSR
. s. M( u( U2 L, i5 Q! y* ~       写状态寄存器(WRSR)用来写一个新值到状态寄存器中,在写状态寄存器命令操作之前,需要先执行写使能WREN指令。写状态寄存器用来改变BP1,BP0,SRWD位的值,写状态寄存器不影响b6, b5, b4, b1(WEL), b0(WIP)的值,即b1(WEL)位是由写使能命令WREN来改变其值的,而b0(WIP)是状态为,不能修改。* d, H6 X4 O; l' C" C* h7 K
23.png
9 U4 m9 O3 }/ G2 h
* _# M1 A  l8 j* b: p
' d" J7 {: m3 q; }  E5 r+ v
读内存指令
8 v1 o( e( K# r5 x2 T6 O' H       当前如果有写周期在执行中,是无法进行读内存操作的。有效的地址位是A16~A0,地址位A23~A17不用关心。
4 l6 ^4 `* W4 P
24.jpg
$ f! X/ k$ |  `) e1 S7 o
7 K2 e% @1 A# V4 r6 Y8 b, @1 W写内存指令
: C. X' ]4 M7 G1 N5 X  `  F       字节写时序图如下:
  Z5 f$ _. B2 e) b7 Z; M5 g6 N
25.jpg
0 n" {/ x& X3 W4 x3 t! _1 l4 b: T页写时序图如下:
5 T5 Q  G7 D9 @. {  h- \4 Q
26.jpg
! }7 n+ z& y2 A0 V4 x
% j6 q7 z) N2 S      有以下几种情况,写内存指令是不被接受和执行的:- K3 A  r, @; D+ T- h7 I
        • 写使能位WEL没有被置1;
" F4 \) H  B0 n) q, x; Z& F8 ]5 k        • 写周期在执行中;! e: S# K* M6 l- X
        • 在数据传输的最后一个位b0被锁存后,设备还没被取消选择,S 还未置高;: }5 q7 q4 b3 h% g
        • 要访问的地址页在块保护的区域中。
0 B7 e9 y  x5 J3 _0 T0 {0 M9 |2 ~$ y; ^- ^+ Q
读标识页指令
6 c8 M* W( i- C9 j& A      读标识页时序图如下:
: l; a( f! `$ H* @/ r$ m
27.jpg
; Y( ^* x: D. ~& e3 ]  |        256字节的标识页是一个附加的页,能够被写和永久锁存为只读模式。读标识页的最大数量不能超过页边界,否则会读取到不可预测的数据。例如,从位置90开始读取标识页数据,读取的数量不能超过166,因为页边界时256字节。4 P- x# G; G0 O7 d7 a, A
假如有写周期在执行中,那么读标识页指令不被接受和执行。
, E3 d4 T( U/ L' ~  q6 o4 @* R0 @; o- L- M6 A0 Q# U) p3 @
写标识页指令3 G# Z6 s" ?) \" j+ b0 k
      写标识页时序图如下所示:
; G% X" s$ K- q9 A- G0 E+ @! v3 c
28.jpg ; e9 I* f; d8 _: l
        256字节的标识页能够被写和永久锁存为只读模式。6 H6 M" @5 t' N% ^- v0 [' f2 z2 a

$ W1 F$ ~. {& @: u( n1 {& I: x4 s8 u  W  H( @# _$ D
数据保护
3 Q4 d8 I2 U" D$ l/ g1 V6 i        状态寄存器中的写禁止位SRWD,是配合写保护引脚W 一起使用的,它们一起决定的保护模式如下表所示:; L% M& {# ~& G8 c0 ^+ j, |
29.jpg
0 N2 D. B+ W9 I' ?/ u6 i2 V5 k3 \        写状态寄存器WRSR对b6,b5,b4,b1,b0位没有影响, b6,b5,b4一直是0。
7 j* Y" S3 M5 s5 e- p* ^* ?        状态寄存器写禁止位SRWD在状态寄存器中的初始化状态为0,通过WREN命令设置了WEL位后,不管W 引脚的电平如何,都允许写状态寄存器WRSR。& D& S; a' x- i& y: h8 u
当状态寄存器写禁止位SRWD被置1后,根据W 引脚的电平有以下两种情况:
8 N! \: E! x  k       • 当W 引脚为高时,通过WREN命令设置了WEL位后,允许写状态寄存器WRSR。3 J/ l# g: s& d6 p( C2 K1 |; w0 [
       • 当W 引脚为低时,不管是否通过WREN命令设置了WEL位,都不允许写状态寄存器WRSR。4 U: d8 |, G' F7 P' X; n- n& J
       内存中的数据,可以被设置为软保护(SPM),也可以设置为硬保护,其中软保护是通过设置块保护位BP1,BP0。以下两种情况发生时,将会进入硬件保护模式HSM:" d; V8 h* w3 L8 ^, R
       • W 引脚输入低电平后,置SRWD位为1;
* A( Y3 S9 G  \: M5 C       • 置SRWD位为1后,W 引脚输入低电平。' S4 b+ t, I0 ^" O1 r# c/ J7 D
       假如W 引脚一直为高,则硬件保护模式HSM不会被激活,此时只有软件保护模式SPM,使用状态寄存器中的BP1,PB0来设置要保护的内存区域。9 W5 b( d) ^" s% C% ^! h
3 h" s+ |' I  L% O/ k
读锁状态
  |$ X: Y( S: u& O# x& e$ C$ d  }" F! [      读锁状态时序图如下所示:/ ?  s, l. R  ?
31.jpg
$ h; l+ A2 X% Q6 W/ t) X       读锁状态指令用来检查标识页是否被锁或为只读模式,地址位A10必须为1,其它地址不用关心。锁存位是读取到的数据的最低位,该位为1则锁存被激活,该位为0则锁存未被激活。; h' \# ?0 A, l. N% c5 V- l

# o+ _: k' e# I" Z锁状态查询
* ~0 m4 F! X- a9 s! E         所状态指令时序图如下所示:
- N7 H( E/ Z& A
32.jpg / n! C+ l" P8 h% Z
, s9 e. L, N( H& `8 K
       锁标识指令永久地锁存标识页为只读模式。该执行执行之前,先要执行写指令WREN。地址A10必须为1,其它地址位可以不关心。数据字节必须按照二进制的xxxx xx1x发送,x位的值不需关心。
& ]. ^+ z) F* ^1 e# t1 U有以下几种情况会导致锁标识指令不被接受和执行:: ?2 d0 ~2 n% G& u0 h3 m8 W
       • 写周期已经在进行中;! G' k. S, F& M) H
       • 块保护位设置为(BP1,BP0) = (1,1) ;& m4 g* u& j2 c5 i1 G
       • 数据传输边界时的S 上升沿出现。
* L9 V5 D* x+ ^7 F; m, L3 V0 @2 F: \. @( C3 E& R# W
上电状态4 m+ o4 J: j( v, P, @; m1 @
      上电以后,EEPROM将会有如下状态:$ _9 O  O  L! x4 {" B' a" F
       • 待机模式;
1 n/ E  ]* L# x+ T       •  设备上电后,EEPROM是被取消选择的状态,需要S 下降沿来开启指令传输;: V# ]8 b, {: k& |' s
       •  不在保持状态下;
2 z' y+ K0 Y* d8 [       •  写使能锁存位是复位为0的;0 r  C$ n: m) t; `% M" d7 Z
       •  写进度位使复位为0的;
) w) a* t4 U+ E1 O1 o; M2 t; n; h      状态寄存器中的SRWD,BP1和BP0是断电后不会改变的,非易失的。
# w( T- F9 x9 T" f5 x5 _2 Y2 M: u3 G  [; L1 L2 r7 N: H
交货状态) ^1 z2 d% W. Q5 i/ L
       整个内存区域和标识页的字节都设置为0xFF。状态寄存器写禁止位SRWD和块锁存位BP1、BP0都初始化为0。
0 r8 G( n3 M$ I$ k5 ?5 H5 ?6 Z2 |/ U3 N  c% Q
结论# Z5 }& p+ w9 C2 z  W- h+ l
       通过对M95xxx系列EEPROM进行介绍,能够快速指导用户如何使用HOST访问EEPROM内存和进行写保护设置,用户可以在设计产品过程中参考本文档进行软件设计,特别是写保护设计部分。
6 H& A, Q3 K& i7 g) E) u

, s$ K, I  V  @8 r/ N- O2 [
2 n4 W" d. y- m# x, I' `, b+ W
M95xxx EEPROM介绍.pdf (1.22 MB, 下载次数: 69)
1 收藏 3 评论4 发布时间:2017-4-1 15:27

举报

4个回答
feixiang20 回答时间:2017-6-28 12:50:05
谢谢分享,学习一下
yamingchow 回答时间:2018-5-11 10:20:20
谢谢分享
a试纸 回答时间:2020-9-15 21:24:18
谢谢分享
' J$ h/ h/ |" H* l
lqwuliang 回答时间:2020-9-20 09:10:12
不错的资料,下载学习学习。

所属标签

相似分享

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