打印
[技术问答]

MS51FB9AE重启后程序无法正常运行

[复制链接]
953|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
popk970|  楼主 | 2020-5-8 11:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现有一款产品用到MS51FB9AE,用锂电池供电点,现在发现锂电池电量耗尽后,即使充电后,程序也无法正常运行,需要重新烧录程序。后经一轮测试后发现,芯片在运行一段时间后(约5天),重新上电后程序则无法运行。在芯片运行时间不超1天内,即使重启多少次都不会有问题。
我的程序开启了如下功能:
1.开门狗
2.掉电模式,用WKT每250ms唤醒一次。
现产品准备大量生产,急于找出问题,谢谢各位的指教!!!

使用特权

评论回复
沙发
奔跑的牛| | 2020-5-8 13:01 | 只看该作者
可能是代码里面开看门狗的时候有写到config,config写之前需要做擦除操作,请确认是否有做,如果不做就有可能改写到flash里的数据造成类似问题.

使用特权

评论回复
板凳
popk970|  楼主 | 2020-5-8 14:17 | 只看该作者
感谢奔腾的牛你的回答,在WKT唤醒之后会使能开门狗,程序里面的确有用IAP功能写config:
/****************************************************************************/
/*  WDT CONFIG enable                                                       */
/*  warning : this macro is only when ICP not enable CONFIG WDT function    */
/*  copy this marco code to you code to enable WDT reset.                   */
/****************************************************************************/
void Enable_WDT_Reset_Config(void)
{
    set_CHPCON_IAPEN;
    IAPAL = 0x04;
    IAPAH = 0x00;
    IAPFD = 0x0F;
    IAPCN = BYTE_PROGRAM_CONFIG;
    set_IAPUEN_CFUEN;
    set_IAPTRG_IAPGO;                                  //trigger IAP
    while((CHPCON&SET_BIT6)==SET_BIT6);          //check IAPFF (CHPCON.6)
    clr_IAPUEN_CFUEN;
    clr_CHPCON_IAPEN;
}
然后我调用该代码,每1ms执行一次,大约2小时候重启芯片,的确出现程序不能运行的情况,用Nulink command tool 读出bin文件,发现有很多处发生了变化。
但是问什么会有这个问题?这一次我会在ICP烧录过程使能来代替在程序中使能开门狗,但是其他的IAP操作有可能会产生同样的问题吗?程序里面还有两处是有IAP操作的,分别是上电后设置时钟,和读BAND-GAP值

使用特权

评论回复
地板
奔跑的牛| | 2020-5-8 16:48 | 只看该作者
上电后设置时钟,和读BAND-GAP值

不会

使用特权

评论回复
5
popk970|  楼主 | 2020-5-8 19:04 | 只看该作者
非常感谢奔腾的牛,经过测试,原来设置开门狗的时候在没有刷除的情况下对config进行了写入操作,而且每次WKT唤醒后都会写一次,这样导致所有的config的内容全乱了,导致重新上电后程序不能正常运行,对问题的芯片从新写入config后,即使不同重新编程也能正常运行了,证明原因的确是这样。谢谢!

使用特权

评论回复
6
wanduzi| | 2020-5-8 21:05 | 只看该作者
先清除再写入就应该不会有事了。

使用特权

评论回复
7
wanduzi| | 2020-5-8 21:05 | 只看该作者
我玩51都是先擦除Flash,再烧录。

使用特权

评论回复
8
heisexingqisi| | 2020-5-10 10:31 | 只看该作者
楼主分享的经验很棒

使用特权

评论回复
9
heisexingqisi| | 2020-5-10 10:31 | 只看该作者
等我用到这个芯片时候一定要小心。

使用特权

评论回复
10
钛酸锂| | 2020-9-16 13:49 | 只看该作者
popk970 发表于 2020-5-8 19:04
非常感谢奔腾的牛,经过测试,原来设置开门狗的时候在没有刷除的情况下对config进行了写入操作,而且每次WKT ...

那是不是烧写前要先擦除芯片,还是说  是上电设置时钟和读band-gap值的问题

使用特权

评论回复
11
天意无罪| | 2020-9-16 20:27 | 只看该作者
这个调试经验很有意义。

使用特权

评论回复
12
taobaofarmer| | 2020-9-17 09:01 | 只看该作者
楼主用的主频是多少M?

使用特权

评论回复
13
数据采集存储| | 2020-9-17 18:44 | 只看该作者
怎么会出现这种情况呢?
不太了解

使用特权

评论回复
14
名字是啥样| | 2020-9-18 09:17 | 只看该作者
楼主可以将具体情况贴出来吗?一起分析一下,这样全面一些吧。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

19

主题

42

帖子

1

粉丝