合泰社区论坛

 找回密码
 立即注册-HOLTEK

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
查看: 1001|回复: 0

HT8如何正确使用EEPROM实现掉电保存

[复制链接]

78

主题

158

帖子

3110

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3110
QQ
发表于 2023-7-21 09:29:06 | 显示全部楼层 |阅读模式
合泰开发板
HOLTEK 8-bit Flash MCU 大多内建有 EEPROM Data Memory,储存容量有 32、64、128、256、512 Bytes 等多种类型,可满足各种需要数据保存的应用场合,如产品工作时间、模式的保存,量产时本机校准数据的保存、遥控器地址、编码波形的保存,用户测试数据的保存等。本文以产品工作时间、模式等小量数据在系统掉电保存为例,对数据保存的方法以及一些注意事项进行说明,希望能给用户带来一些帮助。

工作原理
一些产品设计时,可能会需要记录产品的累积使用时间、次数、当前工作模式等数据,开发者为了减少 EEPROM 的写次数(延长 EEPROM 使用寿命)和记录准确的数据,一般采用系统掉电时才对 EEPROM 写入当前的数据。系统再次上电时,从预定的 EEPROM 地址中读取上次保存的数据,恢复工作模式,继续累积使用时间或次数。
掉电保存数据时,需考虑以下几个问题点:
1. MCU 如何侦测系统是否已掉电。MCU 可通过 AC 电压过零信号(市电供电时)或其它外围电路判断系统供电是否已移除。
2. 通过需要保存的数据量计算写 EEPROM 需要的时间。以写一个 byte 的数据需 4ms 的时间来估算写入需保存的所有数据的时间。
3. 因写 EEPROM 会增加耗电,需评估系统掉电后储能电容或备用电池上的电能能否足够维持 MCU 写完全部数据。

系统掉电后,写 EEPROM 大致需要增加 5mA 的耗电,当仅有储能电容供电时,可以通过公式 Q = C × V = I × T 来计算,假设电路总耗电为 7mA,MCU 工作电压为 5V,MCU LVR 设为 2.1V,储能电容为 100µF,则在 MCU 复位之前,储能电容可以释放的能量 Q = 100µF × (5V–2.1V) = 7mA × T,T 约为 41ms,可以完成 10 个 Byte EEPROM 数据写入。
掉电保存数据的一些建议事项:
1. MCU 能快速、准确检测到系统掉电;检测到掉电之后,快速关掉耗电较大的外设,为EEPROM 写数据保留较大的能量。
2. 尽量减少需要掉电保存的数据量,以减少写 EEPROM 的时间,降低耗电。
3. 综合以上两点,估算出储能电容是否能够支持写完全部数据,若不能,则在条件允许的情况下,适当增大储能电容。
4. 在某些应用场合中,由于线路设计的原因,MCU无法直接侦测到系统是否已掉电,可以在写EEPROM之前,通过内部ADC或LVD来侦测MCU VDD电压值,由当前储能电容容值和需写入EEPROM的数据量来设定禁止写EEPROM的VDD电压阈值,当电压低于阈值时,不写入数据EEPROM,保留上次储存的值。

下文将以 HT66F0185 为主控 MCU 举例说明 MCU 如何使用内部 LVD 功能来检测系统是否掉电,以及掉电时如何将数据保存至内置 EEPROM 中。
HT8 MCU 内建 EEPROM 范例–掉电记忆.pdf (256.78 KB, 下载次数: 5)




上一篇:HT7K1xxx 驱动开合电机应用须知
下一篇:无级调光台灯方案
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册-HOLTEK

本版积分规则

公告:

Archiver|手机版|黑名单|合泰论坛 合泰在线业务 合泰在线技术

GMT+8, 2024-4-27 14:25 , Processed in 0.116953 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表