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

【中文文档】AN3969_STM32F40x和STM32F41x控制器模仿eeprom的应用

[复制链接]
STMCU-管管 发布时间:2019-3-28 13:15
STM32F40x/STM32F41x 微控制器中的 EEPROM 仿真
) y6 _! ~$ J2 [: }! m. e) J9 V7 K5 M9 Y, x/ R( a
简介 ! U4 Z' L& P1 E- A
9 m* y4 p- G  s$ {" t
在工业应用中经常使用 EEPROM(电可擦除可编程只读存储器)来存储可更新的数据。EEPROM 是用在复杂系统(例如计算机)和其它电子器件中的一种永久(非易失)存储器存储系统,它可以在电源故障时存储和保留少量数据。
! z! V) b( }! d- Y% P# B

2 o( a1 N2 L2 X4 m$ @% u& B为降低成本,外部 EEPROM 可以用 STM32F40x/STM32F41x 的以下功能之一替代:
1 z4 x( A/ v; P# Y, _& b● 片内 4 KB 备份 SRAM 3 i) ?; {5 @. A, Q
● 片内 Flash,具有特定软件算法 ) k& J. d' |' _8 |$ X' ?  [
7 l2 o) b' q6 _9 s) [, e% L4 n
STM32F40x/STM32F41x 具有 4 KB 备份 SRAM,当主 VDD 电源断电时,可通过 VBAT 电源为该 SRAM 供电。 * A( M  ]: o" X
. P5 x- {  n" G: t
借助 CPU 频率下的高速访问(通常在用电池供电的应用中)优势,只要 VBAT 存在,此备份SRAM 就可以用作内部 EEPROM(不带任何附加软件)。 * b2 |/ ~# `. L1 Q6 }9 i% ~
0 f) N& v' U* M: T" k/ U, }; I
但是,当备份 SRAM 用于其它目的并且/或者应用不使用 VBAT 电源时,片内 Flash(具有特定软件算法)可以用于仿真 EEPROM 存储器。
- ~9 O  g8 A% @. [8 L- D. t1 a* t/ h2 A* L
本应用笔记介绍了使用 STM32F40x/STM32F41x 器件的片上 Flash 通过仿真 EEPROM 机制来取代独立 EEPROM 的软件解决方案。 5 ~- H- k" x7 v8 l$ i

8 \0 g' [7 ]& b要实现这种仿真,至少要使用 Flash 中的两个扇区。EEPROM 仿真代码会在扇区填满后,以对用户透明的方式交换数据。 ( d( _8 p; v. @0 x

* L4 D) Y7 j( N, z' F7 F5 _5 R: j此应用笔记随附的 EEPROM 仿真驱动程序满足以下要求: 8 O, y* ?* m$ t! ], i4 v. K
● 提供简单 API 的轻量级实现,这种 API 由初始化、读写数据和降低存储器占用量三种功能构成。
  U% w5 Q6 f: l' X! y) z6 l  x● 简单且可轻松更新的代码模型 0 X# N4 R! N/ ?
● 对用户透明的清除和内部数据管理
5 I+ M7 v5 M8 u( O: c● 后台扇区擦除
8 y" b+ x  L4 t" l● 至少使用两个 Flash 扇区,如果需要进行耗损均衡,则需要更多 9 T- a* Q% R; F% k+ @. d' U. M
7 s2 r" c, _! a; I2 q
要仿真的 EEPROM 大小可在扇区大小的限制范围内随意调整,并允许 EEPROM 使用扇区的最大空间。
! k% N6 ]3 M+ R. G9 ], l
9 ?! @# @! s+ i- i1 外部 EEPROM 与仿真 EEPROM 之间的主要差异 : D7 u8 f" U, J* s" I, V
9 t( A0 p& H  @+ t+ ?3 q
EEPROM 是许多需要非易失性数据存储的嵌入式应用的关键组件,它在运行期间以字节或字为粒度。 ! _6 g% W' W+ c+ G+ Q" j) z

3 D2 D" r$ b+ y( U0 }这些系统中使用的微控制器通常是基于嵌入式 Flash 存储器的。为了避免使用这些组件、节约 PCB 空间并降低系统成本,可使用 STM32F41x Flash 代替外部 EEPOM,模拟代码和数据的存储。
7 a" ?/ }" r% \9 n& F1 u. E& Y  @0 T7 w; U+ a3 X8 l
但是与 Flash 不同的是,外部 EEPROM 在重写数据之前并不需要执行擦除操作来释放空间。要将数据存储到嵌入式 Flash 中,需要执行特殊的软件管理。 ' Y- q2 i$ l) i) y

! o' d3 H1 b4 }0 _# f, X7 e; I这种仿真软件机制由许多因素决定,包括 EEPROM 可靠性、所使用的 Flash 的架构以及产品要求等。 8 p+ ~2 S& l' j( W

% w% F+ N/ J6 F- F& \9 K对于使用相同 Flash 技术的任何微控制器(不局限于 STM32F40x/STM32F41x 系列产品),嵌入式 Flash 和外部串行 EEPROM 之间的主要差异完全一致。表 1 中汇总了这些主要差异。9 A0 a& |$ h0 H7 n
% c3 v6 G; S' [1 p( z' Q

+ `2 d  U' g; X! ^2 Z0 w
1.png
! w5 ?. P+ X/ ?# R4 j7 G* \9 M% F
1.1 写访问时间上的差异

+ h5 ]8 @5 g, l2 r7 h
由于 Flash 的写访问时间较短,所以对于一些关键参数,在仿真 EEPROM 中的存储速度要比在外部串行 EEPROM 中更快,从而可以改善数据存储。
8 E3 p" R5 s  M- T. Z. C
1.2 擦除时间上的差异
: ^2 i# H# m) ~6 T! y
擦除时间方面的差异是独立 EEPROM 与使用嵌入式 Flash 的仿真 EEPROM 之间的另一个重大差异。与 Flash 不同,EEPROM 在写之前不需要执行擦除操作来释放空间。这就意味着必须执行某种形式的软件管理,才能将数据存储到 Flash 中。此外,由于 Flash 中的块擦除过程需要较长时间,所以在设计 Flash 管理软件时,应注意考虑可能会中断擦除过程的电源关闭和其它一些意外事件(例如复位)。要设计强大的 Flash 内存管理软件,必须透彻了解 Flash 擦除过程。

( A+ [; C0 ~4 {
注: 即使 CPU 复位,也不会中断正在对 STM32F40x/STM32F41x 嵌入式 Flash 执行的扇区擦除或批量擦除操作。
2 R6 |  A  Z1 y
1.3 写方法上的相似之处

; E! u/ \5 D4 F9 ]9 G0 K( d
外部 EEPROM 与具有 STM32F40x/STM32F41x 嵌入式 Flash 的仿真 EEPROM 之间的一个相似之处是写方法。

6 ]9 a6 S3 s. ~# g' f3 }1 q
● 独立外部 EEPROM:一旦 CPU 启动后,字的写操作便不能被 CPU 复位中断。只有供电故障才会中断写过程,因此正确设置去耦电容的大小可以保护独立 EEPROM 中的整个写过程。

. t- s+ M! @5 ?" n+ b' h7 q
● 使用嵌入式 Flash 仿真的 EEPROM:由 CPU 启动后,写过程可由电源故障中断。即使CPU 复位,也不会中断正在对 STM32F40x/STM32F41x 嵌入式 Flash 执行的字写入操作。EEPROM 算法会停止,但是当前的 Flash 字写入操作不会因 CPU 复位中断。

4 _6 Z6 w) W* ^% p

3 i0 E3 N5 ~/ d* t
' E1 p. f, P" O! }: P- c
..............
" v! {4 j, C/ d; W, {4 R6 Q6 @
想了解更多,请下载原文阅读

) K" {, S$ u) ~
收藏 评论1 发布时间:2019-3-28 13:15

举报

1个回答
一代睡神的崛起 回答时间:2019-3-28 13:40:03
谢谢图图分享
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版