打印

51单片机程序走飞,产品一直很稳定,突然事件,求解?

[复制链接]
楼主: dosculler
手机看帖
扫描二维码
随时随地手机跟帖
41
NE5532| | 2011-12-31 15:36 | 只看该作者 回帖奖励 |倒序浏览
呵呵,我说不要往芯片上推,不带表STC不烂,如果不是做山寨,这个公司就一边玩去,我连他们的企业文化都不认同!!
说不要怀疑芯片,是说再烂的芯片烂不成这样。

使用特权

评论回复
42
dengm| | 2012-1-1 00:53 | 只看该作者
本帖最后由 dengm 于 2012-1-1 01:05 编辑

改写 bootloader, 使要 password 才能写 code。

你改了uart 的硬件环境, uart 用于 bootloader 与 你的应用软件,
code 被改写了,就应该怀疑 bootloader 不够聪明, 把uart硬件送来的
乱码,当成 写 code 指令!!!

使用特权

评论回复
43
hizog| | 2012-1-1 12:10 | 只看该作者
看下MCU是否升版了?如果以前错误的方式用在这MCU的BUG上,导致了正确的结果;现在这MCU修正了BUG,程序却没更改呢呢。所以,再查下这MCU的ERRATA。

使用特权

评论回复
44
YACHL882828| | 2012-1-3 17:53 | 只看该作者
这儿不应串联电阻,用并联电容试试啊;跑了几年没问题,现在有问题,肯定是环境变化,或者电路板老化,对处理器造成干扰

使用特权

评论回复
45
YACHL882828| | 2012-1-3 17:54 | 只看该作者
这儿不应串联电阻,用并联电容试试啊;跑了几年没问题,现在有问题,肯定是环境变化,或者电路板老化,对处理器造成干扰

使用特权

评论回复
46
YACHL882828| | 2012-1-3 17:54 | 只看该作者
这儿不应串联电阻,用并联电容试试啊;跑了几年没问题,现在有问题,肯定是环境变化,或者电路板老化,对处理器造成干扰

使用特权

评论回复
47
YACHL882828| | 2012-1-3 17:54 | 只看该作者
这儿不应串联电阻,用并联电容试试啊;跑了几年没问题,现在有问题,肯定是环境变化,或者电路板老化,对处理器造成干扰

使用特权

评论回复
48
YACHL882828| | 2012-1-3 17:55 | 只看该作者
这儿不应串联电阻,用并联电容试试啊;跑了几年没问题,现在有问题,肯定是环境变化,或者电路板老化,对处理器造成干扰

使用特权

评论回复
49
holle| | 2012-1-4 23:17 | 只看该作者
用示波器看过波形吗?

使用特权

评论回复
50
xhtxzxw| | 2012-1-5 04:11 | 只看该作者
1、推断程序里面有写flash操作,这个是很不安全的,但STC似乎把这个作为自家的优势了!
2、推断flash写操作与485通信有关系,485通信原本似乎就不太靠谱,所以加了R/R2,现在可能更不靠谱了!
3、flash里面放的代码,某个局部被错误改的改写了,也许就是几个字节的事,然后代码运行到这里就找不到姥姥家了!
4、正因为是很小的 局部代码改动了,所以开机启动似乎还正常,于是楼主说代码“跑飞了”,而不是代码“丢了”。

使用特权

评论回复
51
dosculler|  楼主 | 2012-1-5 10:38 | 只看该作者
改写 bootloader, 使要 password 才能写 code。

你改了uart 的硬件环境, uart 用于 bootloader 与 你的应用软件,
code 被改写了,就应该怀疑 bootloader 不够聪明, 把uart硬件送来的
乱码,当成 写 code 指令! ...
dengm 发表于 2012-1-1 00:53

这几句应该跑linux里回答才是;P

使用特权

评论回复
52
dosculler|  楼主 | 2012-1-5 10:39 | 只看该作者
45# YACHL882828
并联电容?
在AB线上各并联一个电容?
请问并联多大的?
起的作用?

使用特权

评论回复
53
dosculler|  楼主 | 2012-1-5 10:42 | 只看该作者
41# NE5532
现在也不知道怎么回事,
STC稳定性确实还有待考评,
不过这个性格比还是可以考虑的,小端产品

使用特权

评论回复
54
cjseng| | 2012-1-9 21:18 | 只看该作者
这个我可有经验了,楼主换单片机吧,STC单片机就这个鸟德行.
caner_hn 发表于 2011-12-28 11:36

同意这个经验,或者说是教训。
做产品最好不要用STC的,实在要用就用环氧树脂把芯片灌封死再用吧。

使用特权

评论回复
55
cjseng| | 2012-1-12 17:55 | 只看该作者
我用过STC的,买过一批12C5204AD,发过来的是12C5204PWM,我说发错了,对方说没错,就是12C5204AD,只是厂家字符印错了,烧写程序的时候,选择12C5204AD,果然可以,选择12C5204PWM就不行。看来看去,不像是Remark的。

既然能用就用吧,程序烧进去,用了段时间(大于3个月),死掉了,症状就像里面的程序“挥发”了,重新把程序烧进去,又复活了。真神奇!
还有更神奇的,做的一块测试版,用了一个引脚做AD输入,本来好好的,过段时间没用了,后来发现这个做AD的管脚与内部开路了,换了个空余的引脚,改一下程序又可以使用了。
原先做AD输入的引脚是绝对没有高电压输入的,就是用热敏电阻测温度,热敏电阻就焊在板子上的。

使用特权

评论回复
56
触觉的爱| | 2012-1-13 00:41 | 只看该作者
期待偶能早点见识到STC的 烂

使用特权

评论回复
57
banyai| | 2012-1-13 14:51 | 只看该作者
485接口处加TVS管,再也可以加2.2nF/2KV之类的电容。

使用特权

评论回复
58
yzhj| | 2012-1-13 15:56 | 只看该作者
楼主 还来看否?
你需要把P1.0 P1.1那个选项利用起来。好歹那也是STC的补丁锁,不保证解决问题,至少有效果。

如果真想抗干扰,就用双电源+光耦。随便增加个电阻,只是糊弄的方法。
这个与用什么控制芯片无关,STC是不招人待见,NE5532S观点是对的。
我只想说我也在用他们的90C52,电路中也有485通讯,某些不便更换主芯片的时候,还得靠自己的硬功夫。

使用特权

评论回复
59
wangyin2111| | 2012-1-13 16:14 | 只看该作者
呵呵,我以前做的一个东西,STC10F08XE,第一版时直接用IO口从设备外采集信号,结果经常因为用户使用接错线导致介入12V电源。也是程序就没了,不是全没,而是有一部分。例如我发现的一个就是只有开机的蜂鸣器提示和数码管扫描,读取1302和按键的程序就没了,我确定蜂鸣器和数码管扫描是我的程序一部分。还有一个是只有开机蜂鸣器提示了,都是从新烧录一下程序就OK了。后来发现那两个直接采集外界信号的引脚烧了,经客户交流是误接了24V电源,但是这应该跟单片机没关系的啊,我以前用52的时候VCC接12V半分钟都没事啊。我怀疑STC单片机的稳定性,极易因外界条件导致误擦除ROM,但是不确定。所以我经过那事儿之后基本就不再考虑STC单片机了。直接看AVR和PIC的,要不您也试试,就是价格贵点。

使用特权

评论回复
60
cjseng| | 2012-1-13 16:51 | 只看该作者
期待偶能早点见识到STC的 烂
触觉的爱 发表于 2012-1-13 00:41


买个号称1T的STC单片机试试,写一小段程序,做个delay也行,测试一下运行时间,根本就不是所谓的1T,只是有几条指令,比如NOP是1T的,绝大部分该哪样还是哪样。

使用特权

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

本版积分规则