MSP430 产品技术支持
摘要
在嵌入式设计中,许多应用设计都需要使用EEPROM 存储非易失性数据,由于成本原因,某些单片机在芯片内部并没有集成EEPROM。MSP430G 系列处理器是TI 推出的低成本16 位处理器,在MSP430G 系列单片机中并不具备EEPROM。为了存储非易失性数据,MSP430G 系列处理器在芯片内部划分出了256 字节的Flash 空间作为信息Flash,可用于存储非易失性数据,但是由于Flash 与EEPROM 在擦写寿命上存在一定差距,所以在实际应用中,这种应用方式并不能够满足所有客户的需求。本应用笔记介绍了使用代码区域Flash 来模拟EEPROM,通过一定的软件处理算法,可以大大增加数据存储周期的一种方法。本文给出了实现上述功能的软件流程。1. 嵌入式Flash 存储介质与EEPROM 的主要特性对比电可擦除和编程只读存储器(EEPROM)是在绝大多数嵌入式应用中都会使用到的用于保存非易失性数据的关键器件,用于在程序运行期间保存数据。Flash 闪存(Flash Memory,简称为"Flash")是一种非易失性( Non-Volatile )存储器,广泛应用于各种嵌入式处理器中,用于存储程序代码。由于硬件成本原因,在许多嵌入式处理器中并没有集成 EEPROM 模块,通常我们可以采用在片内Flash 存储器中保存非易失性数据的应用方式来达到使用要求。对一些普通的应用场合,这种使用方式可以满足要求。表一 EEPROM 与Flash 对比分析
1.1 写访问时间
由于 EEPROM 和 Flash 的工作特性不同,所以写访问时间也不相同。Flash 具有更短的写访问时间,所以更适用于对存储速度有要求的场合。
1.2 写方法
外置EEPROM 和采用Flash 模拟EEPROM 的最大不同之处在于写的方法。
EEPROM:对 EEPROM 的写操作不需要额外的操作,只需要提供电源供给;但是一旦启动写操作流程后,写操作不能够被打断。所以需要外接电容器等措施来保证在芯片掉电时能够维持供电,保证完成数据操作。
Flash 模拟 EEPROM:当芯片上电后,写操作可以被电源掉电和芯片复位打断。和 EEPROM 相比,需要应用设计者增加相关的处理来应对可能存在的异常。
1.3 擦写时间
EEPROM 和采用Flash 模拟EEPROM 在擦除时间上存在很大的差异。
与 Flash 不同,EEPROM 在进行写操作之前不要擦除操作。由于 Flash 需要几个毫秒时间进行擦除操作,所以如果在进行擦除操作的过程中出现电源掉电的情况,需要软件做相关的保护处理。为了设计一个健壮的Flash 存储器的管理软件,需要深入的了解和掌握Flash 存储器的擦除过程特性。
2. 增加Flash 模拟EEPROM 擦写寿命的方法
可以根据用户的需求采用不同的方法实现Flash 存储器模拟EEPROM。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
4.1 时钟源的选择
由于驱动Flash 的时钟源(ACLK、MCLK、SMCLK)和时钟频率可以设定,为了保证在将数据写入模拟EEPROM 时的可靠性,建议在将Flash 的时钟频率降低后,再对其进行操作。例如将Flash 的时钟频率降低到1MHz 后,进行写入操作。需要注意,在降低了时钟频率后,若此时钟源也是定时器(Timer)的时钟源,则可能会影响到定时器的定时准确性,需要软件上做好处理。
4.2 代码在RAM 中运行
由于向Flash 写入数据操作是通过执行Flash 中程序代码,对Flash 进行擦除和编程操作。由于对Flash 的编程需要mcu内部执行一个升压操作,所以如果有足够的内存空间,建议将编程、擦除等关键代码拷贝到RAM 中运行,可以使用关键字__ramfunc指定,如下图七所示。
图七使用关键字__ramfunc将程序指定到Ram 中运行
5. 总结
本文从软件方面,以及安全性方面探讨了使用MSP430G 系列单片机在使用Flash 模拟EEPROM方面的应用,提供了两种不同的方式供选择。两种方式都可以大幅度提高模拟EEPROM 的编写、擦除寿命,并且满足高可靠性的应用设计,用户可以结合具体的应用进行选择。
一周热门 更多>