|
STM32F0xx 微控制器中的EEPROM 仿真 简介 4 _9 ^( B- s( Q& i3 W! Q& ? 在工业应用中经常使用 EEPROM(电可擦除可编程只读存储器)来存储可更新的数据。EEPROM 是用在复杂系统(例如计算机)和其它电子器件中的一种永久(非易失)存储器存储系统,它可以在电源故障时存储和保留少量数据。 7 Z/ G2 s4 X/ n1 x 4 E% t H$ I/ ~ 为了降低成本,可以使用特定的软件算法用片上 Flash 替代外部 EEPROM。 此应用笔记将介绍使用 STM32F0xx 器件的片上 Flash 通过仿真 EEPROM 机制来取代独立EEPROM 的软件解决方案。 ) B9 Y$ T* ^* h 3 x- U+ b, K; H5 Y/ X" i2 ~8 Y 此仿真至少要使用 Flash 中的两个扇区。EEPROM 仿真代码会在页面填满后在页面之间交换数据,而且此过程对用户是透明的。 1 S+ [( T( K1 m( }/ i + E6 t% H9 i0 K 此应用笔记随附的 EEPROM 仿真驱动程序满足以下要求: ! I: I. {2 Y- O ● 提供简单 API 的轻量级实现,这种 API 由初始化、读写数据和降低存储器占用量三种功能构成。 ● 简单且可轻松更新的代码模型。 ! Z1 u6 z t7 ^; |- ~ ● 对用户透明的清除和内部数据管理。 ● 后台页擦除。 . I0 C2 X8 z# T0 I% I# X7 g% O' n3 z ● 至少需要使用两个 Flash 页,如果需要进行耗损均衡,则需要更多。 9 ` j' Z4 }) }. O% _: M 1 外部 EEPROM 与仿真 EEPROM 之间的主要差异 : Q8 Z0 x* L' g2 c# x / L7 b8 w" s, |* V; P EEPROM 是许多需要非易失性数据存储的嵌入式应用的关键组件,它在运行期间以字节或字为粒度进行更新。 % K1 b& S- E4 u* T 这些系统中使用的微控制器通常是基于嵌入式 Flash 存储器的。为了避免使用这些组件、节约 PCB 空间并降低系统成本,可使用 STM32F0xx Flash 代替外部 EEPOM,模拟代码和数据的存储。 ' E; o1 G; E- f8 f8 n5 Z9 F - F3 c! C$ y* O! {$ @& Q' a 但是与 Flash 不同的是,外部 EEPROM 在重写数据之前并不需要执行擦除操作来释放空间。要将数据存储到嵌入式 Flash 中,需要执行特殊的软件管理。 这种仿真软件机制由许多因素决定,包括 EEPROM 可靠性、所使用的 Flash 的架构以及产品要求等。 6 v) u8 K1 f5 U9 x* {, K 对于使用相同 Flash 技术的任何微控制器(不局限于 STM32F0xx 系列产品),嵌入式 Flash和外部串行 EEPROM 之间的主要差异完全一致。表 1 中汇总了这些主要差异。 + n; ^2 k* s0 ~
1.1 写访问时间上的差异 : @* V7 o6 y3 B( P. K+ _1 ?由于 Flash 的写访问时间较短,所以对于一些关键参数,在仿真 EEPROM 中的存储速度要比在外部串行 EEPROM 中更快,从而可以改善数据存储。 8 z: d1 |) }1 P1.2 擦除时间上的差异 擦除时间方面的差异是独立 EEPROM 与使用嵌入式 Flash 的仿真 EEPROM 之间的另一个重大差异。与 Flash 不同,EEPROM 在写之前不需要执行擦除操作来释放空间。这就意味着必须执行某种形式的软件管理,才能将数据存储到 Flash 中。此外,由于 Flash 中的块擦除过程不需要太长时间,所以在设计 Flash 管理软件时,应注意考虑可能会中断擦除过程的电源关闭和其它一些意外事件(例如复位)。要设计强大的 Flash 内存管理软件,必须透彻了解 Flash 擦除过程。 6 _8 N3 \' P( T$ ~7 N1 ? y 注: 即使软件重置,也不会中断正在对 STM32F0xx 嵌入式 Flash 执行的页擦除或批量擦除操作 1.3 写方法上的相似之处 外部 EEPROM 与具有 STM32F0xx 嵌入式 Flash 的仿真 EEPROM 之间的一个相似之处是写方法。 ● 独立外部 EEPROM:在被 CPU 启动之后,字写入不能被软件复位中断。只有供电故障才会中断写过程,因此正确设置去耦电容的大小可以保护独立 EEPROM 中的整个写过程。 9 x, y* ]( z6 D; L! f- `● 使用嵌入式 Flash 仿真的 EEPROM:由 CPU 启动后,写过程可由电源故障中断。即使软件复位,也不会中断正在对 STM32F0xx 嵌入式 Flash 执行的字写入操作。EEPROM算法会停止,但是当前的 Flash 字写入操作不会因软件复位而中断。 3 P" ?9 o1 y [# M( d0 M2 z |
| 谢谢图图得分享 |
DMA 原理从 0 到 1:为什么它能解放 CPU?一文讲透 DMA 的工作流程
小白也能明白的STM32的低功耗与唤醒机制
STM32系统中2种数据掉电保护的方法
分享STM32F051中文参考手册(重制书签版)
AI工具训练营-用ChatGPT解决HID Keyboard实现的问题
STM32固件库分享,超全系列整理
STM32小白入门指南:从基础到OTA实现方案
STM32超详细学习笔记
新手必看!STM32单片机应该怎么学?
如果你解决了这些问题,就可以直接学STM32
微信公众号
手机版