[讨论]
2007年12月专题讨论----单片机程序丢失的原因与抑制方法
现象:单片机不工作或者出现混乱的工作,重新烧写程序就恢复正常。
从表面上看是程序丢失,重新烧写程序就可以恢复。
从更深的层次看,是什么原因造成程序丢失?如何抑制?
请大家把自己遇到的现象和经验都拿出来交流一下。
回复:2007年12月专题讨论----单片机程序丢失的原因与抑制方法
程序丢失最有可能发生在上电和掉电的时候。那时候电源不足,单片机最容易出现混乱。
回复:2007年12月专题讨论----单片机程序丢失的原因与抑制方法
有IAP功能的单片机容易出现这种现象
一般是程序的问题,我公司用C8051的有的工程师也有这种情况,而且他们并没有把FLASH当EE用,而我的程序从来没有出现过这种情况,而且我有用FLASH当EE用,应该还是程序问题。
回复:2007年12月专题讨论----单片机程序丢失的原因与抑制方法
问题很好,但是环境影响因素太多,很难找出毛病啊,大部分是上电瞬间,或者是由于智能电闸的开关原理(反复尝试短路与否)导致的吧,也是我们目前遇到的问题,用的是C8051系列的单片机。
回复: 2007年12月专题讨论----单片机程序丢失的原因与抑制方法
楼上用的是C8051F的哪款单片机?
回复:2007年12月专题讨论----单片机程序丢失的原因与抑制方法
几乎常见的单片机都有这样的问题。
并不是某种单片机的问题。也不是所有的情况都出问题,只有在产量很大或者在工作环境恶劣才出。但是如果是无人值守的重要设备就要小心了。
我的分析:
1、上电下电的时候,电源不稳时。有可能产生问题。
2、带有ISP、BOOT等自编程接口容易出问题。
3、软件中有写FLASH的程序,容易出问题。
这是我的个人分析,请各位大侠指点,并从软件和硬件两个方面谈谈解决经验。
回复:2007年12月专题讨论----单片机程序丢失的原因与抑制方法
软件中有写FLASH是很不安全的
写的时候突然掉电.
FLASH当EE用的单片机不敢用,干吗不弄个真EE呢?
回复:2007年12月专题讨论----单片机程序丢失的原因与抑制方法
当然掉电问题是一定要考虑的。
回复: 2007年12月专题讨论----单片机程序丢失的原因与抑制方法
正好写了一半,低电压时复位保护有什么用?
干脆加个掉电检测和后备电源
回复:2007年12月专题讨论----单片机程序丢失的原因与抑制方法
程序中不要随意写flash
我一般是在关机前写一次,开机后读一次。
回复:2007年12月专题讨论----单片机程序丢失的原因与抑制方法
如果写入数据不可丢失,才需要后备电源
但这种要求不多。
一般的数据和参数,只要增加完整性检查就可以了。
如果是软件升级时掉电,用更底层的方法,或者双版本备份。
回复:2007年12月专题讨论----单片机程序丢失的原因与抑制方法
如果擦除flash会将程序部分也擦除了,那么这个设计本来就是错的
回复:2007年12月专题讨论----单片机程序丢失的原因与抑制方法
主要是单片机设计上的问题 越是新出的单片机,越是安全,不容易出错,就说明了这一点
回复:2007年12月专题讨论----单片机程序丢失的原因与抑制方法
个人觉得这种现象不代表一般性
程序丢失这种现象是不是所有带程序存储器的微控制的通病?
若只是个别厂家的问题,那就是设计的问题。
回复:2007年12月专题讨论----单片机程序丢失的原因与抑制方法
我觉得程序丢失和低电压工作有很大关系。
回复:2007年12月专题讨论----单片机程序丢失的原因与抑制方法
Flash的位翻转可能也是造成程序不能运行的原因。还有我遇到过产品去做静电实验,回来发现Flash中存储的参数都被清空的现象。
C8051F120在65-70环境下面,丢失程序的概率35%,并且都是都是flash里面的第一个字节变为0x00
这个问题很是奇怪。。。。。复位电路加了,电压监控也加了,单片机根本就没有写FLASH的代码,但是它还是会出现这样的问题,有遇到过这样问题的吗???
烧片机烧片的时候电压不稳定,纹波干扰大、以及烧片座子使用时间较长等都会引起此类问题,目前我们公司就正在被这个问题困扰,正在排查。。