打印

2007年12月专题讨论----单片机程序丢失的原因与抑制方法

[复制链接]
18858|106
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
救火车|  楼主 | 2007-11-23 14:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现象:单片机不工作或者出现混乱的工作,重新烧写程序就恢复正常。
从表面上看是程序丢失,重新烧写程序就可以恢复。
从更深的层次看,是什么原因造成程序丢失?如何抑制?
请大家把自己遇到的现象和经验都拿出来交流一下。

相关帖子

来自 2楼
sharks| | 2007-12-1 15:34 | 只看该作者

我仔细研究过这个问题

   我发现Flash/EEP存储器的本质机理其实是一个电容储存电荷(在MOS的浮栅中)。其实从原理上说这种结构不是可靠的。
   1.如果外电场很强,强于浮栅电容的场强,数据就错了。
   2.如果存储的时候,给Flash充电时间不够,保存期并不长。这是最常见的问题,我遇到过多次。我用430单片机,如果Flash时钟配置的太快,导致充电时间不够,可能在数分钟到数月之内丢失Flash数据(发现这个问题是TI的Flash代码范例有误!!它忘了判忙延迟等待,造成Flash充电时序严重不够,当时是没问题的,一个月之内100%丢失!)。由此推论,某些标称高速的Flsah烧写设备,要慎用,因为他很可能卡在或少于芯片标称极限时间,造成数据保持时间到达不了手册给出的10-100年
   3.Flash供电电压不足经常造成数据不可靠。例如430单片机标称工作电压1.8-3.7,但Flash写入必须2.7V以上。我试验过2.3V仍能写入,但电压越低,数据越维持时间越短。2V以下断电重起两三次就没了。

   所以,需要可靠的场合尽量低速写入(Flsah写入时序中,电荷注入时间那一段加长,并不一定是编成设备的接口速度),把工作加到芯片上限 (一搬5V芯片用5.5V,3V芯片到3.6V),能明显提高数据可靠性。

使用特权

评论回复
板凳
救火车|  楼主 | 2007-11-23 14:46 | 只看该作者

自己占个沙发

程序丢失最有可能发生在上电和掉电的时候。那时候电源不足,单片机最容易出现混乱。

使用特权

评论回复
地板
救火车|  楼主 | 2007-11-23 15:09 | 只看该作者

转贴 powervc 发表于 2007-11-18 18:24 侃单片机

 powervc 发表于 2007-11-18 18:24 侃单片机 ←返回版面    

楼主:用了20000片STC单片机之后.... 

从宏晶吹嘘STC开始,就开始用它了,调试程序还是很方便,断断续续到现在,用了大约20000多片了,但是现在决定不用了。

好处:
1)使用起来很顺手,批量烧写实在是快,写一片89C52RC比Ateml,PIC同类的8K芯片快的多。
2)抗干扰性比Atmel,新茂好的多,不知道新茂现在是否改进了。

不用的原因是:
1)这一年来,销售的有些设备陆陆续续出了问题,返回公司来修理,检查发现单片机不工作了,有的重新烧录程序,就可以正常工作了,但是工作了几分钟又不工作了。有的就是单片损坏了,程序也烧不进去了。这件事折腾了一个星期终于找到原因了,STC单片机受湿度影响比较大!!!! 在潮湿环境下,有可能造成单片机损坏!!! 
这些有问题的设备,大部分都是从江浙沿海一带返回的,我做了一个实验,证实了这个结论:
将五台设备放在一个封闭的9平方米的房间内连续工作,,屋内开着空气加湿器,两天之后,有一台设备出现故障,三天之后,又一台机器出现故障,经检查发现单片机8952RC损坏。
我用热风枪吹PCB板子半分钟,干燥一下PCB,换上新的单片机,将设备转移放到干燥房间内使用,连续运行至今一直正常。(PCB是环氧双面板)

2)STC这个公司很奇怪,不愿意开**,我们公司财务要求他们开增值税**,他说要加17%的税点,这样,一片89C52RC的价格是5.4×1.17=6.32元,太贵了。

看来现在只有选择新茂和华邦了,STC的尽管很好用,但是毕竟好多地方让人不放心, 连个正儿八经的datasheet也不提供,我不知道它对工作环境有什么要求,再说宏晶不喜欢开**,实在不让人放心。
 
 xwj 发表于 2007-11-18 18:44 侃单片机 ←返回版面    

2楼: 呵呵,是湿度原因吗? 

我们公司以前用过它,结果每个月差不多都要返修300多台,大多都是程序丢了,重新烧录又好了,小部分是IC坏了

由于对公司信誉损害极大,现在公司已经禁止使用它了


PS:
SST89E52也是5块多,比它可靠了不知多少倍了... 
 古道热肠 发表于 2007-11-19 10:31 侃单片机 ←返回版面    

15楼: STC让人喜欢让人忧 

  STC单片机通过串口下载程序的确为产品程序更新带来方便,也给程序的调试带来不少便利。然而事情一分为二,有利有弊,也许正是这个便利,带来了莫名其妙的程序丢失的STC现象。因为单片机的代码是必须得到超强可靠性保护的,一旦出错,机器必然运转不起来了,而STC单片机在程序代码保护这一块好象还有待加强。 
 
 hotpower 发表于 2007-11-19 10:52 侃单片机 ←返回版面    

16楼: 最晕的是掉电后ISP冲RAM,数据丢失.只能用专用烧写器.ISP实为废物 
 
 

使用特权

评论回复
5
ayb_ice| | 2007-11-23 21:45 | 只看该作者

有IAP功能的单片机容易出现这种现象

一般是程序的问题,我公司用C8051的有的工程师也有这种情况,而且他们并没有把FLASH当EE用,而我的程序从来没有出现过这种情况,而且我有用FLASH当EE用,应该还是程序问题。

使用特权

评论回复
6
北风good| | 2007-11-23 23:25 | 只看该作者

好问题啊

问题很好,但是环境影响因素太多,很难找出毛病啊,大部分是上电瞬间,或者是由于智能电闸的开关原理(反复尝试短路与否)导致的吧,也是我们目前遇到的问题,用的是C8051系列的单片机。

使用特权

评论回复
7
winloop| | 2007-11-24 09:01 | 只看该作者

楼上用的是C8051F的哪款单片机?

使用特权

评论回复
8
救火车|  楼主 | 2007-11-24 09:21 | 只看该作者

几乎常见的单片机都有这样的问题。

并不是某种单片机的问题。也不是所有的情况都出问题,只有在产量很大或者在工作环境恶劣才出。但是如果是无人值守的重要设备就要小心了。
我的分析:
1、上电下电的时候,电源不稳时。有可能产生问题。
2、带有ISP、BOOT等自编程接口容易出问题。
3、软件中有写FLASH的程序,容易出问题。
这是我的个人分析,请各位大侠指点,并从软件和硬件两个方面谈谈解决经验。

使用特权

评论回复
9
兰天白云| | 2007-11-24 09:30 | 只看该作者

软件中有写FLASH是很不安全的

写的时候突然掉电.
FLASH当EE用的单片机不敢用,干吗不弄个真EE呢?

使用特权

评论回复
10
dld2| | 2007-11-24 09:43 | 只看该作者

8楼说的绝对了。当然掉电问题是一定要考虑的。

使用特权

评论回复
11
computer00| | 2007-11-24 09:45 | 只看该作者

做好复位电路,低电压时复位保护。

使用特权

评论回复
12
兰天白云| | 2007-11-24 09:49 | 只看该作者

正好写了一半,低电压时复位保护有什么用?

干脆加个掉电检测和后备电源

使用特权

评论回复
13
ayb_ice| | 2007-11-24 09:52 | 只看该作者

程序中不要随意写flash

我一般是在关机前写一次,开机后读一次。

使用特权

评论回复
14
dld2| | 2007-11-24 09:53 | 只看该作者

如果写入数据不可丢失,才需要后备电源

但这种要求不多。
一般的数据和参数,只要增加完整性检查就可以了。
如果是软件升级时掉电,用更底层的方法,或者双版本备份。

使用特权

评论回复
15
computer00| | 2007-11-24 09:56 | 只看该作者

如果擦除flash会将程序部分也擦除了,那么这个设计本来就是

使用特权

评论回复
16
gyt| | 2007-11-24 11:36 | 只看该作者

主要是单片机设计上的问题

越是新出的单片机,越是安全,不容易出错,就说明了这一点

使用特权

评论回复
17
goothin| | 2007-11-24 11:57 | 只看该作者

我公司用OPT芯片

使用特权

评论回复
18
john_light| | 2007-11-24 12:16 | 只看该作者

个人觉得这种现象不代表一般性

程序丢失这种现象是不是所有带程序存储器的微控制的通病?

若只是个别厂家的问题,那就是设计的问题。

使用特权

评论回复
19
xwj| | 2007-11-24 12:55 | 只看该作者

赞同17楼的意见

使用特权

评论回复
20
救火车|  楼主 | 2007-11-24 13:22 | 只看该作者

圈圈说得有道理

computer00 发表于 2007-11-24 09:45 侃单片机 ←返回版面   

10楼: 做好复位电路,低电压时复位保护。 


使用带电压监测的硬件看门狗,就可以保证低电压时程序不乱跑。

使用特权

评论回复
21
救火车|  楼主 | 2007-11-24 14:22 | 只看该作者

我觉得程序丢失和低电压工作有很大关系。

但没有数据证实,现在我发起一个调查,看看大家遇到的程序丢失和电压监测有无相关关系。请遇到过程序丢失现象的朋友到下面地址参加调查。
https://bbs.21ic.com/club/vote/showvote.asp?id=158

使用特权

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

本版积分规则

113

主题

1249

帖子

2

粉丝