STM32系统的应用中如何避免数据受断电影响

发布时间:2023-09-21  

嵌入式设备的开发中,断电时通常需要保存一些非易失性数据。如果添加了系统配置,用户定义的信息等,并且添加了额外的ROM IC(例如基于I2C的24C02等),则额外的PCB空间将增加,硬件成本将增加,并且产品将减少。如果仅从实用角度出发,在诸如STM32系统的应用中,作者建议可以尝试以下两种方法并作为参考。


基于备份寄存器

原理:对于大容量MCU系列,它具有42个16位备份寄存器,而中小型微处理器仅具有10个16位备份寄存器。以stm32f103c8t6为例,这42个备份寄存器的地址偏移量为:0x04〜0x28、0x40〜0xbc,可以存储84个字节的数据。备用寄存器取决于备用电源。当外部VDD掉电时,只要系统的Vbat可以正常存在,Bakeup domaain寄存器的内容就可以正常保存。


软件编程的要点如下:以一个项目中常用的案例为例

函数初始化:

读取备份寄存器:void BKP_ WriteBackupRegister(uint16_ t BKP_ DR,uint16_ t Data)

读取备份寄存器:uint16_ t BKP_ ReadBackupRegister(uint16_ t BKP_ DR)

此方法简单明了,但由于缺少可用空间,因此仅适用于保存少量数据,例如用户在可穿戴设备中的通用配置数据。

基于内部闪存

原理:闪存,也称为闪存,也是可以重写的存储器。它分为nor flash和NAND flash。闪存通常不用于代码存储场合,例如嵌入式控制器中的程序存储空间。而NAND闪存通常用于大数据存储场合,例如U盘和固态硬盘,它们通常是NAND闪存类型。

在STM32芯片中,闪存的读写单位均基于“页面”。以stm32f103c8t6为例,每页大小为2K字节;

软件编程要点

释放写保护释放:此方法基于以下前提:允许当前的读写Flash,并且允许当前的Flash进行写操作。因此,目前暂时不讨论某些API,例如optionbytes操作和flash读写保护操作。

Flashwrite:单个uint32_ T数据写入的简单流程图如下:

Flashread:对于单个int数据读取,它相对简单,可以通过以下语句完成:rddata =(*()__ IOuint32_ t *)dataAddr);

由于SW中涉及许多API,并且编码人员还需要理解许多其他背景知识,因此使用此方法相对复杂。但是,由于数据保存在页面中,因此页面大小最大为2048字节,因此该方法可用于保存掉电时不容易丢失的大数据。考虑到闪存读写保护的逻辑机制,最好在不考虑数据安全性的情况下使用此方法。

对于这种断电保护数据方法,这里只是丢砖引玉,欢迎您提出更好的方案。


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>