|
最近我们的产品发现了这个现象.
我在本论坛上搜索,发现这个问题真不少.当然,有些朋友很偏激,说ti是烂货,心情我是很理解的,因为我也遇到了这个问题,也很烦,但所有的帖子多没有下文,是否解决这个问题?
但我根据经验,和所有出现这个情况的用户的使用环境可以断定是干扰造成(也许有极少数是软件的错误,lierda的工程师一口断定,我觉得是不科学的).
我们的产品由于有机械和传动部分,交流电机,所以干扰很大.特别是有一个防静电铝箔,如果接地不良,会在电源和地上产生75Mhz的高频干扰,幅度达到2-20V,由于频率较高,并不会每次复位。要命的是客户那里的环境,他们是房产公司售楼部,临时搭建,地线肯定不好,附近有水泥搅拌机,有升降机等强力干扰源。我们的产品采用的是430F149,使用了imp809T电源监控芯片,并可保证低至1V的可靠复位。但问题还是发生了。
我们的机器,仅在开机时长时间按住某个键会进入设置程序,设置完毕会使用IAP编程,写尾部的flash,正常情况下是决不会进入写flash的。因为经过3个月,几百个用户每天高频率使用,出现了1列这种情况。我从以下方面分析可能性,不当之处请指正:
1。由于干扰,启动时reset和tck信号会符合BSL的条件,进入bootstrap下载模式,而mass erase命令并不需要password验证,比较容易误动作。但我仔细分析了bootstrap文档slaa089,发现bootstrap的命令为帧格式,有头,尾,和crc,要擦掉必须符合这些条件的概率非常低,所以我基本上否定了这种可能。
2。由于干扰,在IMP809复位之前,导致程序的pc指针混乱,跳到了设置程序的一段,而由于当时的不确定状态,在查除或写的过程中,CPU复位,导致flash混乱,所以,也许你读出来的程序并不是全0xff,或者只是更改了你的设置区域flash的数据。如果真的是这个问题,那就麻烦,特别是干扰源无法避免的情况。可怕的是所有具有iap编程的芯片都可能有这个问题。而我们机器上的一片89c2051从来没有出现这种情况。如果真的是这个原因,那在环境恶劣的应用,最好不要使用iap功能的单片机或不能使用IAP功能,因为这太危险了。iap就成了摆设。我现在使用的philips的arm7单片机Lpc2132(35元,66MHz,64k flash,16k ram,400k a/d,真便宜)也有isp/iap功能,估计也会有这个潜在的危险。
欢迎大家发表意见,希望这个问题能最终解决,给有同样问题的朋友一点启示,我会报道我解决的结果。
|
|