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

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

[复制链接]
STMCU-管管 发布时间:2019-3-28 13:15
STM32F40x/STM32F41x 微控制器中的 EEPROM 仿真) J; u( X4 R0 \
/ g) V. |6 w# z) N% m, k' ?
简介 3 a1 e. V8 A2 x8 }  Y) s
. G/ g5 f  f7 l6 F# h) @1 c
在工业应用中经常使用 EEPROM(电可擦除可编程只读存储器)来存储可更新的数据。EEPROM 是用在复杂系统(例如计算机)和其它电子器件中的一种永久(非易失)存储器存储系统,它可以在电源故障时存储和保留少量数据。
1 H( I; u% @9 d' T
& N/ H% T9 D0 N% f) w
为降低成本,外部 EEPROM 可以用 STM32F40x/STM32F41x 的以下功能之一替代:
3 D6 W0 M7 k- A; \8 R6 J; r- |● 片内 4 KB 备份 SRAM
( t+ J0 l; h1 `) `# M( s1 V8 u● 片内 Flash,具有特定软件算法
  a5 v  B$ r; [6 O5 s. Y6 _" S3 P) e% A: i! F) o4 q& F% A3 ^
STM32F40x/STM32F41x 具有 4 KB 备份 SRAM,当主 VDD 电源断电时,可通过 VBAT 电源为该 SRAM 供电。
% Q8 B9 n) D2 D# e$ K# m; O( C1 @! `
- _: G- f/ D, U! Q/ b$ N5 x借助 CPU 频率下的高速访问(通常在用电池供电的应用中)优势,只要 VBAT 存在,此备份SRAM 就可以用作内部 EEPROM(不带任何附加软件)。
5 Y: {. A- v- B. q

8 o7 `" f: x  j" s* B3 Z但是,当备份 SRAM 用于其它目的并且/或者应用不使用 VBAT 电源时,片内 Flash(具有特定软件算法)可以用于仿真 EEPROM 存储器。 2 A' `2 q  ~2 _* k
( j: G0 L+ ]& |" j6 s
本应用笔记介绍了使用 STM32F40x/STM32F41x 器件的片上 Flash 通过仿真 EEPROM 机制来取代独立 EEPROM 的软件解决方案。 2 |. t! R& _' u* l) _
; R7 U* G1 x0 L  o9 ^1 l' E- `
要实现这种仿真,至少要使用 Flash 中的两个扇区。EEPROM 仿真代码会在扇区填满后,以对用户透明的方式交换数据。 5 ~2 H0 g( M# n1 m+ z8 b3 X

- Z6 ?. G0 B9 S  V$ t! h此应用笔记随附的 EEPROM 仿真驱动程序满足以下要求:
& w7 p, |/ i, _  }  s● 提供简单 API 的轻量级实现,这种 API 由初始化、读写数据和降低存储器占用量三种功能构成。
: u) K6 P! q" `" i4 ^● 简单且可轻松更新的代码模型 5 B& I7 ~' m7 m" q
● 对用户透明的清除和内部数据管理
8 U& U! W9 x% ^  ^7 j* L3 O. ?$ E● 后台扇区擦除
7 E" q3 [0 Y# q, K/ |! \● 至少使用两个 Flash 扇区,如果需要进行耗损均衡,则需要更多
% F( v/ c7 ^% r% Y: ]+ \$ y: H
" E! `: G7 h6 j要仿真的 EEPROM 大小可在扇区大小的限制范围内随意调整,并允许 EEPROM 使用扇区的最大空间。/ `# J7 `1 V' ?9 h2 e0 D" _7 K

- m7 L1 C# \0 l% n& z; V6 [1 外部 EEPROM 与仿真 EEPROM 之间的主要差异
$ x( S( i' P% l
  o/ z" o( H2 S$ \
EEPROM 是许多需要非易失性数据存储的嵌入式应用的关键组件,它在运行期间以字节或字为粒度。 ( J9 U* i. _9 T" `# s
4 G8 d6 j5 L3 O; ?
这些系统中使用的微控制器通常是基于嵌入式 Flash 存储器的。为了避免使用这些组件、节约 PCB 空间并降低系统成本,可使用 STM32F41x Flash 代替外部 EEPOM,模拟代码和数据的存储。 9 b3 b% R4 F3 T

/ M+ K( @" O% S但是与 Flash 不同的是,外部 EEPROM 在重写数据之前并不需要执行擦除操作来释放空间。要将数据存储到嵌入式 Flash 中,需要执行特殊的软件管理。
9 a$ j* S' T; ^' M- Y- }- G* {8 n0 N

5 j; h4 f3 i- }3 d2 L5 }这种仿真软件机制由许多因素决定,包括 EEPROM 可靠性、所使用的 Flash 的架构以及产品要求等。
% u0 h! g# s! H2 C/ }
6 u  q& s# \2 T' J$ t( d5 K
对于使用相同 Flash 技术的任何微控制器(不局限于 STM32F40x/STM32F41x 系列产品),嵌入式 Flash 和外部串行 EEPROM 之间的主要差异完全一致。表 1 中汇总了这些主要差异。/ Z% G2 U8 U: y  S' y; G( U6 N9 u

& i  A# y$ \* O' x" G" t  V1 A! V' w, u
( W3 S" P( Q2 @) `7 E' u# K
1.png
) O) e& ~: T' t- D9 N
1.1 写访问时间上的差异
. ]5 C, k1 |( C7 N2 z" q: x
由于 Flash 的写访问时间较短,所以对于一些关键参数,在仿真 EEPROM 中的存储速度要比在外部串行 EEPROM 中更快,从而可以改善数据存储。
$ ]6 ~) W$ x7 v$ k2 s
1.2 擦除时间上的差异
( d" ?/ W& |" a; c, o
擦除时间方面的差异是独立 EEPROM 与使用嵌入式 Flash 的仿真 EEPROM 之间的另一个重大差异。与 Flash 不同,EEPROM 在写之前不需要执行擦除操作来释放空间。这就意味着必须执行某种形式的软件管理,才能将数据存储到 Flash 中。此外,由于 Flash 中的块擦除过程需要较长时间,所以在设计 Flash 管理软件时,应注意考虑可能会中断擦除过程的电源关闭和其它一些意外事件(例如复位)。要设计强大的 Flash 内存管理软件,必须透彻了解 Flash 擦除过程。

7 `6 r  f& m+ Z
注: 即使 CPU 复位,也不会中断正在对 STM32F40x/STM32F41x 嵌入式 Flash 执行的扇区擦除或批量擦除操作。
& r" M2 g( v+ r& t9 }7 B0 Y' L3 q
1.3 写方法上的相似之处

4 Z  U% p& r( f
外部 EEPROM 与具有 STM32F40x/STM32F41x 嵌入式 Flash 的仿真 EEPROM 之间的一个相似之处是写方法。
% Z+ |3 Q2 y5 j% f
● 独立外部 EEPROM:一旦 CPU 启动后,字的写操作便不能被 CPU 复位中断。只有供电故障才会中断写过程,因此正确设置去耦电容的大小可以保护独立 EEPROM 中的整个写过程。
& v0 G/ @+ x; E, J5 E, g
● 使用嵌入式 Flash 仿真的 EEPROM:由 CPU 启动后,写过程可由电源故障中断。即使CPU 复位,也不会中断正在对 STM32F40x/STM32F41x 嵌入式 Flash 执行的字写入操作。EEPROM 算法会停止,但是当前的 Flash 字写入操作不会因 CPU 复位中断。
: y" l& k6 l. u& w" F

/ E# q5 {1 i: ]6 C/ j/ Z$ x2 u
& ?/ D  Z1 \  [9 t
..............
3 s) a' l( L# F
想了解更多,请下载原文阅读
  u# N7 t8 p" e9 |- ], E! D
收藏 评论1 发布时间:2019-3-28 13:15

举报

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