9422|21

80

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

MSP430F2xxx系列FLASH数据丢失 [复制链接]

偶然的一次机会发现做的MSP430F2xxx板子,在上电时会出现information memory的款被未知原因擦除了,后来对多个板子进行测试,发现有一部分板子在连续上电断电后information memory四个块会存在数据丢失,即这些存储区数据全部变为0xFF,有时候B区数据回复默认,有时候视C区或者D区,A区倒是没怎么注意到,不过有时候会出现程序无法运行的情况,据观察是0xFFFF这个地址的值被改变了,导致程序无法运行。
有哪位兄弟曾见过这样的情况?焊接会不会导致芯片出现这样的现象?
然后我看全新芯片未下载过程序,观察到D区始终有55AA 3FFF ABCD 55AA 1234这样的数据,理论上来说FLASH初始化值应该都是FF啊
还请各位高手能指点一二

        里面就是两段程序,一个是启动程序,可根据一个标志位判断是进入升级模式还是进入应用程序,启动程序里面有IAP操作,但是应用程序里面没有。
但是我这样频繁上电又没有调用过函数擦除FLASH,为什么会有这样的情况呢?请稍详细说明,感谢,而且大部分芯片这样频繁上电并未出现异常,只有一部分,而且这部分只要连续上10几次后就会导致FLASH数据复原。更换芯片后又可以了

最新回复

问题没完全解决呢。。。。  详情 回复 发表于 2010-6-12 14:05
点赞 关注

回复
举报

73

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
恭喜你,是你程序跑飞了!
这个是电源监控及复位的问题。正常情况下,在上电启动过程中,需要芯片电压超过某一阈值才释放复位,进入工作状态,如果提前复位完成,此时系统状态不完全确定,程序跑飞,如果正好飞到flash擦除的代码,那就是楼主看到的现象了;同样,在下电的过程中,如果当电压掉到不能正常工作的阈值是仍未复位,也会跑飞。
这个在芯片手册中关于复位的地方一定讲到了。楼主可以采用外加电源监控芯片的方法解决;有的芯片内部也有电源监控电路,但默认的不一定启动了。祝你好运!
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
在上电时会出现information memory的款被未知原因擦除了,

IAR下程序的时候有一项设置是:擦不擦这个的

不知道是不是这个原因?
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

4
 
程序是有跑飞的,但是我说的问题应该不是程序跑飞,因为大部分情况是启动程序不能执行跳转,原因就是information memory的一个区标志位数据被位置原因变更了,使程序判断标志位失败,不执行跳转。

目前我程序是这样的,单片机启动后进入第一段程序,这段程序将判断一个标志位,如果标志位有效则跳转至第二段程序,即应用程序;如果标志位无效,则进入第一段程序主循环。
第一段程序就是执行一个在线升级的功能,可让用户实现在线升级;
第二段程序是实际的应用程序;

如果标志位有效就跳转至应用程序,无效则进入第一段程序,等待升级;
标志位是放在C区,应用程序的一些参数放在B区,连续上电时这两个区的数据都有可能丢失,测试了下D区的数据也会丢失或者出错,A区没测试过。
就是C区志位及B区的参数丢失或者出错,导致程序像是跑飞了,但是程序是在的,知是我在查询这些存储区域的时候,参数都恢复成0xF了,当然不是每次上电都恢复,而是多上电几次就会出现这样的情况,所以楼上说的被擦除是不可能的,应为程序下载后就没用IAR了,只是上电断电的测试。

在什么情况会出现FLASH区数据自动恢复的问题?希望大家能提供更多意见,谢谢楼上两位先,呵呵
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

5
 
写flash是要保证一定时间的,有些写片器为了缩短写时间对这个时间进行了‘优化’,结果可能flash浮栅上的电荷不够会出现数据不稳和丢失,换一个写片的试试,同时要排除芯片是水货。
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

6
 
掉电的时候也可能跑飞,如果飞到调用你修改标记位的时候就可能出现你遇到的问题,这样再次启动是标记为就是0xff了。

你可以用示波器看看上电和掉电时reset信号和电压的关系,并看看是否满足芯片的要求。
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

7
 
程序跑飞的原因是什么?
上电复位的时候出现的问题?应该怎么样解决?调节复位电路?
 
 
 

回复

83

帖子

0

TA的资源

一粒金砂(初级)

8
 
我先看下复位方面的资料,但是目前没有发现程序区被擦除过,理论上来说程序区也有一定机会被擦除的
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

9
 
我在上面已经将讲过跑飞的原因了。
看看芯片资料,然后拿示波器看看复位信号和电压的关系就知道是不是这个原因引起的了。
测试的时候需要使用出问题概率高的板子。
 
 
 

回复

61

帖子

0

TA的资源

一粒金砂(初级)

10
 
像flash那样的存储器,在线写时要保证电源不掉,即需要一个掉电检测电路,在交流220掉电时,提前通知CPU,同时5V还应该可以再使用20ms左右。
以前我也遇到数据掉的情况(SRAM+电池),现在直接用FRAM(铁电存储器),还没发现掉数据情况(掉电保护还要)
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(中级)

11
 
最近忙,没搞这个事
昨天测试了下,单独使用其中的一段程序不会出现FLASH被擦除现象,但是把两段程序都下载进去,只运行第一段程序(即不执行跳转),仍然会出现FLASH被擦除现象,经常是有0xE000-0xE3FF被擦除,信息区也是经常被擦除;单独运行第二段程序(第一段也保存在FLASH中),也会出现被擦除的现象。
有些数据是象被改写,但是改写不成功,比如0x33,0x44,有时候变成了0,有时候变成了0x16等,大部分时候视变成0xFF

上电复位电路有问题的话,那么随便运行其中一段程序也会有被擦除现象,但是单独运行一段程序就不会出现问题....

另外程序飞的话有什么办法解决呢?
 
 
 

回复

47

帖子

0

TA的资源

一粒金砂(初级)

12
 
出现被擦除的情况下,flash中有擦除flash的代码?没有被擦除的情况时没有擦除flash的代码?  
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

13
 
有时候代码会被擦除,有时候只有信息区 (0x1000-0x1BFF)这些区被擦除,同时测试10个板子,不停上下电(约10分钟),其中2个代码区0xE000-0xE3FF被擦除,其他大概4-5个信息区被擦除过,还有3-4个是正常的
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

14
 
晕  我问你flash被擦除的时候,这时flash中是否有擦除flash的代码?包括任何区域。
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

15
 
第一段代码有擦除第二段代码的代码,还有擦除信息区其中一个区的代码,第二段代码只有擦除信息区的代码。即正常运行时,第一段代码才能擦除代码区,第一段代码还能擦除第2个信息区,而第二段代码可以擦除三个信息区,不能擦除代码。

单独运行第一段或第二段代码,信息区都未发现被擦除现象。
但是运行第一段代码时由于没有把第一段代码放到被擦除的区域,有可能有擦除操作,但是未发现,我马上试验下。
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

16
 
把第一段放到被擦除区没有发现被擦除过。
把第一段和第二段都下载进去,但只运行第一段,就会发现有被擦除的现象,有时候整个第二段代码区全部被擦除,有时候只被擦除一部分。擦除代码区的程序只要开始运行,肯定是要将整个第二段代码区擦除的
 
 
 

回复

83

帖子

0

TA的资源

一粒金砂(初级)

17
 
我觉得有两种可能,一种是由于硬件原因引起的,原因前面我已经说过。另外一种可能就是软件本身导致程序跑飞,比如内存越界等原因造成。

程序跑飞,不是说是不是在运行某段程序,而是某段程序不该执行而执行了。比如说如果你的第二段程序有擦除flash的例程,第一段程序在运行中跑飞就可能执行第二段的代码;也可能执行第一段中的第其他代码。一般情况下,flash控制器本身是不允许擦写正在运行的代码所在扇区的。
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

18
 
好的 我详细检查代码内存是否越界,谢谢了
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

19
 
程序运行中倒未发现异常的,都是上下电后发现的,一般就是上次还可以,但是断电后再上电就不行了。不过我还是先检查代码吧
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

20
 
   190 bytes of DATA  memory (+ 23 absolute )
想问一下,这儿
(+ 23 absolute ) 是算在190bytes里面还是要另外加?
即这句话表示使用了190bytes的空间还是190+23=213byte空间?
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
【干货上新】电源解决方案和技术第二趴 | DigiKey 应用探索站
当月好物、电源技术资源、特色活动、DigiKey在线实用工具,干货多多~

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网 4

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表