|
STM32F2xx 微控制器中的 EEPROM 模拟 前言 3 d3 A V* Y8 e# X5 O EEPROM (电可擦除可编程只读存储器)通常用于工业应用领域,用于存储可更新数据。EEPROM 是一种用于复杂系统 (如计算机)和其他电子设备的永久性 (非易失的)存储系统,用于在断电时存储和保留少量数据。 为了降低成本,外部 EEPROM 可以用 STM32F2xx 产品所具有的下述特性之一代替: ● 片上 4 KB 备份 SRAM 4 G6 x: F( z+ N3 T0 n ● 片上 Flash,并采用专门软件算法 : t; u0 v2 \; v7 r2 b j STM32F2xx 具有 4 KB 的备份 SRAM,当主要的 VDD 电源断电时,该 SRAM 可由 VBAT 电源供电。 当有 VBAT (通常在电池供电应用中)时该备份 SRAM 可作为内部 EEPROM (无任何额外软件)使用,并具有以 CPU 频率进行高速存取的优势。 7 L. Z) d8 P) G 而当备份 SRAM 另作他用且 / 或该应用不用 VBAT 供电时,片上 Flash(采用专门软件算法)可以用于模拟 EEPROM 存储器使用。 3 e! U/ x. l# |/ i8 q! m' R 本应用笔记对通过利用 STM32F2xx 产品的片上 Flash 模拟 EEPROM 机制来代替独立EEPROM 的软件方案进行了说明。 ' D( K& k# ?. I* E 1 b) P O( G, Z) E$ a+ |% K 至少使用两个 Flash 扇区才能实现该模拟。 EEPROM 模拟代码在两个扇区 (当它们被填充时)之间交换数据,这在某种程度上是对用户透明的。 本应用笔记所提供的 EEPROM 模拟驱动器满足以下要求: 7 ~/ Y3 e" \" w/ z: b2 i ● 轻量级实现,具有一个简单的包含了三个函数 (用于初始化、读数据和写数据)的API,并减少了封装。 ● 简单易用的可更新代码模型 ● 清理和内部数据管理对用户透明 ) V& \% Z! v* I" D5 A3 u6 d5 w ● 后台扇区擦除 5 E1 a H* _. O$ q Q0 z# h ● 至少要使用两个 Flash 扇区,对于损耗均衡则需要使用更多 (Flash 扇区) ( \ m' M; V% k, g4 L6 R( L! W, J- J/ v ' H: ~# s% Q7 I: Z 模拟 EEPROM 的大小是弹性可变的,它受扇区大小的限制和约束,并需考虑最大 EEPROM空间大小。, [3 L& M, I$ R$ L; r1 ~2 m2 X 1 M l* K# J7 b( }7 n 1 外部 EEPROM 和模拟 EEPROM 之间的主要区别 : X2 S* { s3 ^- f EEPROM 是许多嵌入式应用(需要能够进行非易失性数据存储,且运行时间内以字节或字的颗粒度进行更新)的关键元件。 * ? O7 f7 n. A; n% E E 用于这些系统的微控制器通常基于嵌入式 Flash。为了减少所用元件、节省 PCB 空间、降低系统成本,可以用 STM32F2xx Flash 代替外部 EEPROM 来进行同步编码和数据存储。 与 Flash 不同,数据可被重写前,外部 EEPROM 不需要擦除操作来释放空间。需要专门的软件管理来将数据存入嵌入式 Flash。 - W1 U7 C$ d; \ 仿真软件方案取决于多种因素,包括 EEPROM 可靠性、所用 Flash 结构和产品需求。 1 I6 k9 J2 \* i5 j$ J 嵌入式 Flash 和外部串行 EEPROM 之间的主要区别对于任何使用同样 Flash 技术的微控制器(并非针对 STM32F2xx 系列产品)都是相同的。主要区别概括如表 1。7 B: q# ^' F- ]6 U
# y& B B6 \0 ^/ h |
| 收藏 |
微信公众号
手机版