在线时间1672 小时
UID90520
ST金币0
蝴蝶豆0
注册时间2008-11-10
管理员
- 最后登录
- 2020-12-9
|
a0a.1 32b0c
STM32F2xx 微控制器中的 EEPROM 模拟
前言
EEPROM (电可擦除可编程只读存储器)通常用于工业应用领域,用于存储可更新数据。EEPROM 是一种用于复杂系统 (如计算机)和其他电子设备的永久性 (非易失的)存储系统,用于在断电时存储和保留少量数据。
为了降低成本,外部 EEPROM 可以用 STM32F2xx 产品所具有的下述特性之一代替:
● 片上 4 KB 备份 SRAM
● 片上 Flash,并采用专门软件算法
STM32F2xx 具有 4 KB 的备份 SRAM,当主要的 VDD 电源断电时,该 SRAM 可由 VBAT 电源供电。
当有 VBAT (通常在电池供电应用中)时该备份 SRAM 可作为内部 EEPROM (无任何额外软件)使用,并具有以 CPU 频率进行高速存取的优势。
而当备份 SRAM 另作他用且 / 或该应用不用 VBAT 供电时,片上 Flash(采用专门软件算法)可以用于模拟 EEPROM 存储器使用。
本应用笔记对通过利用 STM32F2xx 产品的片上 Flash 模拟 EEPROM 机制来代替独立EEPROM 的软件方案进行了说明。
至少使用两个 Flash 扇区才能实现该模拟。 EEPROM 模拟代码在两个扇区 (当它们被填充时)之间交换数据,这在某种程度上是对用户透明的。
本应用笔记所提供的 EEPROM 模拟驱动器满足以下要求:
● 轻量级实现,具有一个简单的包含了三个函数 (用于初始化、读数据和写数据)的API,并减少了封装。
● 简单易用的可更新代码模型
● 清理和内部数据管理对用户透明
● 后台扇区擦除
● 至少要使用两个 Flash 扇区,对于损耗均衡则需要使用更多 (Flash 扇区)
模拟 EEPROM 的大小是弹性可变的,它受扇区大小的限制和约束,并需考虑最大 EEPROM空间大小。
1 外部 EEPROM 和模拟 EEPROM 之间的主要区别
EEPROM 是许多嵌入式应用(需要能够进行非易失性数据存储,且运行时间内以字节或字的颗粒度进行更新)的关键元件。
用于这些系统的微控制器通常基于嵌入式 Flash。为了减少所用元件、节省 PCB 空间、降低系统成本,可以用 STM32F2xx Flash 代替外部 EEPROM 来进行同步编码和数据存储。
与 Flash 不同,数据可被重写前,外部 EEPROM 不需要擦除操作来释放空间。需要专门的软件管理来将数据存入嵌入式 Flash。
仿真软件方案取决于多种因素,包括 EEPROM 可靠性、所用 Flash 结构和产品需求。
嵌入式 Flash 和外部串行 EEPROM 之间的主要区别对于任何使用同样 Flash 技术的微控制器(并非针对 STM32F2xx 系列产品)都是相同的。主要区别概括如表 1。
|
|