查看: 5131|回复: 9

[分享] 【经验分享】KE02掉电存整个EEPROM问题讲解

[复制链接]

该用户从未签到

145

主题

4926

帖子

0

金牌会员

Rank: 6Rank: 6

积分
9267
最后登录
1970-1-1
发表于 2015-2-13 17:36:26 | 显示全部楼层 |阅读模式
一,问题描述
最近有客户遇到EEPOM掉电存储的问题,描述如下:
芯片:MKE02Z64VQH2,
供电:5V供电,并在电源端加470uF的电解电容,延长掉电时间
目标功能:为节约EEPROM寿命,避免程序正常运行时保存所需数据,在掉电中断中保存KE02整个256字节的EEPROM数据。
所遇问题:发现每次断电,再上电读取EEPROM的数据,只能保存二十几个数据。
0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,
0xa,0xb,0xc,0xd,0xe,0xf,0x10,0x11,0x12,0x13,
0x14,0x15,0x16,0x17,0x18,
0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,
PMC的配置情况如下:
void PMC_Configure(void)
{
        PMC_SPMSC1 |= PMC_SPMSC1_LVWACK_MASK; //Clear LVWIE before enable LVWIE
        PMC_SPMSC1 &= ~PMC_SPMSC1_LVDRE_MASK;  //LVD events do not generate hardware resets
        PMC_SPMSC2 |= (PMC_SPMSC2_LVDV_MASK); //high trip point is selected VLVD=VLVDH
        PMC_SPMSC1 |= (PMC_SPMSC1_LVWIE_MASK);        // ENABLE LVW interrupt        
        PMC_SPMSC1 |= (PMC_SPMSC1_LVDE_MASK); // LVD logic is enabled
        enable_irq(6); // enable PMC interrupt, for eeprom data saving
}
按照这样的配置,4.4V开始通知MCU掉电保存EEPROM,为何不能准确保存呢?是否掉电时间太短?还是EERPOM存储执行代码时间太长超出掉电保存时间,还是配置有问题?
具体检查EEPOM执行代码时间,掉电时间情况,以及最后发现根本问题并修改成功的详细情况请查看附件文档。
【经验分享】KE02掉电存EEPROM问题讲解.pdf (376.49 KB, 下载次数: 198)
回复

使用道具 举报

该用户从未签到

145

主题

4926

帖子

0

金牌会员

Rank: 6Rank: 6

积分
9267
最后登录
1970-1-1
 楼主| 发表于 2015-2-13 17:36:45 | 显示全部楼层
不足之处,欢迎指正,同时也欢迎大家分享自己的宝贵经验。
回复 支持 反对

使用道具 举报

该用户从未签到

7

主题

67

帖子

0

中级会员

Rank: 3Rank: 3

积分
218
最后登录
2021-12-12
发表于 2015-2-16 08:58:49 | 显示全部楼层
好东西
写的不错
回复 支持 反对

使用道具 举报

该用户从未签到

20

主题

231

帖子

0

高级会员

Rank: 4

积分
554
最后登录
1970-1-1
发表于 2015-3-6 19:17:02 | 显示全部楼层
虽然我没下载看文档,但是如果遇到这个问题,我第一时间联想到的是你把数据正确写入了吗?因为一般情况下flash掉电后数据依然是能够保存的,所以,我觉得你想检验的话,你可以把一定规律的数据写入芯片,再用数码管或者LCD读出来验证是否成功写入,鉴于你怀疑是掉电后数据丢失,你可以把这个检验操作建立在不掉电下进行,先写后读,如果结果没有问题,你就掉电看看。
回复 支持 反对

使用道具 举报

该用户从未签到

145

主题

4926

帖子

0

金牌会员

Rank: 6Rank: 6

积分
9267
最后登录
1970-1-1
 楼主| 发表于 2015-3-9 10:01:17 | 显示全部楼层
yiqizhenshanhe 发表于 2015-3-6 19:17
虽然我没下载看文档,但是如果遇到这个问题,我第一时间联想到的是你把数据正确写入了吗?因为一般情况下 ...

问题是你有规律的数据没有正确写入,所以你就需要逐项检查,不是掉电之后一定能够把你所有想要的数据都写进去。
事实上,不是像你想的那样,掉电数据能够保存,你硬件设置的掉电时间是否足够保存你所需要的很多数据?
不掉电下的检测是EEPROM的存储,这些肯定是在掉电之前就保证正确的。
建议你可以把文档下载下来看看。
回复 支持 反对

使用道具 举报

该用户从未签到

20

主题

231

帖子

0

高级会员

Rank: 4

积分
554
最后登录
1970-1-1
发表于 2015-3-11 20:49:30 | 显示全部楼层
FSL_TICS_ZJJ 发表于 2015-3-9 10:01
问题是你有规律的数据没有正确写入,所以你就需要逐项检查,不是掉电之后一定能够把你所有想要的数据都写 ...

没有下,我只是给个建议,我都是调时序,对你说的这个不是太了解。
回复 支持 反对

使用道具 举报

  • TA的每日心情
    无聊
    2018-9-20 10:55
  • 签到天数: 13 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    24

    主题

    1189

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1642
    最后登录
    2022-3-21
    发表于 2016-11-1 11:05:24 | 显示全部楼层
    好帖 马上试试
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2017-1-24 08:47
  • 签到天数: 49 天

    连续签到: 1 天

    [LV.5]常住居民I

    0

    主题

    524

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1267
    最后登录
    2017-4-19
    发表于 2016-11-1 11:30:34 | 显示全部楼层
    谢谢分析                        
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-6-12 12:56
  • 签到天数: 215 天

    连续签到: 1 天

    [LV.7]常住居民III

    3

    主题

    444

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1154
    最后登录
    2021-4-29
    发表于 2016-11-1 16:08:30 | 显示全部楼层
    看明白了,也就是说,在操作含有 write-once bit 的寄存器的时候必须要一次配置完成。分几次写就不对了!所以这种一般还是调用官方库来操作比较安全,以免入坑。多谢分享!
    哎...今天够累的,签到来了~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2017-2-9 14:16
  • 签到天数: 17 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    25

    主题

    1785

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    2250
    最后登录
    2024-6-11
    发表于 2016-11-1 16:49:35 | 显示全部楼层
    留个脚印,以后试试
    nxp.png
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-8-17 02:14 , Processed in 0.085300 second(s), 29 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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