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

【中文文档】AN4061_如何在STM32F0xx微控制器内模拟EEPROM

[复制链接]
STMCU-管管 发布时间:2019-3-26 13:16
STM32F0xx 微控制器中的EEPROM 仿真
/ _$ D# u0 P, b: x- L. w, x% l$ d0 _7 `+ C
简介 2 e- x4 `. m% d; P9 S# K2 v
: ~0 [3 l  }3 B4 J5 [4 J
在工业应用中经常使用 EEPROM(电可擦除可编程只读存储器)来存储可更新的数据。EEPROM 是用在复杂系统(例如计算机)和其它电子器件中的一种永久(非易失)存储器存储系统,它可以在电源故障时存储和保留少量数据。
0 ?- R; I9 \/ O0 V! X
- L" R) n6 [# d5 l8 t
为了降低成本,可以使用特定的软件算法用片上 Flash 替代外部 EEPROM。 此应用笔记将介绍使用 STM32F0xx 器件的片上 Flash 通过仿真 EEPROM 机制来取代独立EEPROM 的软件解决方案。 " d- ?+ R1 U: [1 x+ p% H

+ N/ Z3 a9 j# ^1 y, E3 L' z此仿真至少要使用 Flash 中的两个扇区。EEPROM 仿真代码会在页面填满后在页面之间交换数据,而且此过程对用户是透明的。
  f" P3 p. C+ k) m
3 n" V! ?0 q5 P3 M; m7 ]此应用笔记随附的 EEPROM 仿真驱动程序满足以下要求:
! ]) ?& S+ Z0 h4 f1 ]1 F● 提供简单 API 的轻量级实现,这种 API 由初始化、读写数据和降低存储器占用量三种功能构成。
0 p+ b( K2 ]5 E3 Y4 v, Z! N● 简单且可轻松更新的代码模型。
, i) _+ K/ }# \$ r2 `● 对用户透明的清除和内部数据管理。
9 f7 s9 J% S  f3 ?$ k! C0 Z● 后台页擦除。 1 c# q8 D$ @2 o8 s/ ^
● 至少需要使用两个 Flash 页,如果需要进行耗损均衡,则需要更多。
1 s3 o' g5 U9 K9 K  R, u
, j3 e8 K3 m( h$ z$ d* @1 B1 外部 EEPROM 与仿真 EEPROM 之间的主要差异
$ s  I; W3 Y& Z5 B0 S
" v  `3 e3 L) `- R, KEEPROM 是许多需要非易失性数据存储的嵌入式应用的关键组件,它在运行期间以字节或字为粒度进行更新。
$ I% |' |" s/ f' _+ G

! T) w* G3 l9 m+ d这些系统中使用的微控制器通常是基于嵌入式 Flash 存储器的。为了避免使用这些组件、节约 PCB 空间并降低系统成本,可使用 STM32F0xx Flash 代替外部 EEPOM,模拟代码和数据的存储。 & A+ e  y' R7 [% U( G" F
; S8 R9 Q# \: X: P2 Z
但是与 Flash 不同的是,外部 EEPROM 在重写数据之前并不需要执行擦除操作来释放空间。要将数据存储到嵌入式 Flash 中,需要执行特殊的软件管理。
( j# s7 B8 Z. T" \; H4 H+ n1 z" O3 W
这种仿真软件机制由许多因素决定,包括 EEPROM 可靠性、所使用的 Flash 的架构以及产品要求等。 4 ^0 P2 X; h8 Z. W/ j& R3 p5 Y. \/ o: w

, J4 M9 x0 U$ F; B对于使用相同 Flash 技术的任何微控制器(不局限于 STM32F0xx 系列产品),嵌入式 Flash和外部串行 EEPROM 之间的主要差异完全一致。表 1 中汇总了这些主要差异。
4 G: G% W5 Q3 }/ x% i- e
3 H, T# N" i$ l5 |) U
1.png
1.1 写访问时间上的差异

# P" `2 D! L- d/ k* \2 \
由于 Flash 的写访问时间较短,所以对于一些关键参数,在仿真 EEPROM 中的存储速度要比在外部串行 EEPROM 中更快,从而可以改善数据存储。
3 d, v6 g! v7 @* V
1.2 擦除时间上的差异

& z  @& V0 @+ W+ g" y8 a, Y8 \" l  A
擦除时间方面的差异是独立 EEPROM 与使用嵌入式 Flash 的仿真 EEPROM 之间的另一个重大差异。与 Flash 不同,EEPROM 在写之前不需要执行擦除操作来释放空间。这就意味着必须执行某种形式的软件管理,才能将数据存储到 Flash 中。此外,由于 Flash 中的块擦除过程不需要太长时间,所以在设计 Flash 管理软件时,应注意考虑可能会中断擦除过程的电源关闭和其它一些意外事件(例如复位)。要设计强大的 Flash 内存管理软件,必须透彻了解 Flash 擦除过程。

8 f  C* Z7 x" t( n" j
注: 即使软件重置,也不会中断正在对 STM32F0xx 嵌入式 Flash 执行的页擦除或批量擦除操作

6 O' w' F, ^1 E1 S2 ~" E
1.3 写方法上的相似之处

, u) H) u# D; ?
外部 EEPROM 与具有 STM32F0xx 嵌入式 Flash 的仿真 EEPROM 之间的一个相似之处是写方法。

  K" m9 u! Q: C5 u+ a6 L# K
● 独立外部 EEPROM:在被 CPU 启动之后,字写入不能被软件复位中断。只有供电故障才会中断写过程,因此正确设置去耦电容的大小可以保护独立 EEPROM 中的整个写过程。
9 K8 w$ y  R# b) {
● 使用嵌入式 Flash 仿真的 EEPROM:由 CPU 启动后,写过程可由电源故障中断。即使软件复位,也不会中断正在对 STM32F0xx 嵌入式 Flash 执行的字写入操作。EEPROM算法会停止,但是当前的 Flash 字写入操作不会因软件复位而中断。

1 t7 ^5 i7 F6 k4 x; }! u3 r% ]
..............

2 z% B! B  ]6 C0 h8 p- ?. ~
想了解更多,请下载原文阅读

( m! z9 Y$ ^, T
收藏 评论1 发布时间:2019-3-26 13:16

举报

1个回答
一代睡神的崛起 回答时间:2019-3-26 15:57:56
谢谢图图得分享

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版