搜索
bottom↓
回复: 49
打印 上一主题 下一主题

MSP430F149死机 看门狗不起作用(原理图和PCB在12楼)

[复制链接]

出0入0汤圆

跳转到指定楼层
1
发表于 2011-8-30 09:45:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现在有个小产品用的MSP430F149,走的RS485信号,总线上共挂了6个设备(A地点)。另外在B地点也有同样的应用(A地和B地不在同一个地方,B地点无死机),现在A地会有设备死机现象,输入电源为12V,板上电源有两极稳压,一级为PWM电源芯片,二级为LDO;485信号没有隔离(刚开始485芯片用的是国产的,死机更频繁,现在换成进口485芯片,死机次数减少,但是偶尔还有)。所以初步怀疑是死机为干扰造成。硬件使用外部8M晶振(匹配电容33pF),阻容复位;程序在定时器中断中喂狗(1毫秒定时器,在定时器中断中30秒指示灯闪烁一次,以指示定时器工作),主循环定义一变量,每次循环都清零,此变量在定时器中累加,当超过一定值后MUC复位,用来保证主循环运行。



  目前我的A地点有死机现象,死后30秒时间到灯未闪烁,说明定时器不工作;此时应该无法喂狗,系统应该复位重新运行,但是就是保持死机状态。此时把复位脚和电源地短路(手动复位)后,设备能重新启动。基于以上现象,我是否可以得出以下结论:
(1)手动复位设备能重新启动,说明晶振没停过;
(2)死机由于外在干扰所致(电源有两极稳压,所以干扰源及有可能由485线上进入设备);
(3)死机后MSP430F149片内看门狗不起作用;
(4)MSP430F149的抗干扰能力不强(是否可以换别的型号?);


  因为在B地点无死机现象,所以软件应该没有问题。我现在计划使用独立的看门狗芯片。外面485芯片是5V工作电压(MAX3082),本板485芯片为SP3485若要在线上使用瞬态二极管,不知道用哪种型号好点(要贴片封装的)?
另外问一下各位高手,我现在应该如何解决是好?是否能帮忙分析一下原因?谢谢

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

2
发表于 2011-8-30 10:23:12 | 只看该作者
(1)死机由于外在干扰所致(电源有两极稳压,所以干扰源及有可能由485线上进入设备);
不了解你的实际使用环境。只能说外界干扰概率很大。但不能排除电源,空间带来的干扰。

(2)死机后MSP430F149片内看门狗不起作用;
没见你介绍如何用片内看门狗,按理说不应该,片内watchdog应该很强大,只要晶振不停就起作用。

(3)MSP430F149的抗干扰能力不强(是否可以换加的型号?);
不能下这定论,抗干扰和PCB布线有极大的关系。

另外,如果仅仅485总线带来的干扰就能使系统死机,说明你的软件,硬件都有加强的余地。

出0入0汤圆

3
 楼主| 发表于 2011-8-30 10:43:32 | 只看该作者
谢谢楼上,
(1)空间带来的干扰可能性小,因为那个地点只有我的设备,远离别的设备,所以要是干扰只能从通信或是电源线进来,通信和电源线共用一条4芯电缆;
(2)看门狗在定时器中1MS喂一次(定时器为1MS),通过实验若软件长延时不喂狗,是会复位的。因为死机后手动复位(复位脚和地短一下)后能启动,说明晶振不停;
(3)因为在另外一个地点也有同样的使用而且没死机,所以我认为软件没有问题。

所以请各位继续帮我分析一下。

出0入0汤圆

4
发表于 2011-8-30 11:11:44 | 只看该作者
回复【2楼】hehelloook  
-----------------------------------------------------------------------

149是430中比较落后的型号了,它的复位很不可靠,可以加个max809试试

出0入0汤圆

5
发表于 2011-8-30 12:01:24 | 只看该作者
回复【2楼】hehelloook
因为死机后手动复位(复位脚和地短一下)后能启动,说明晶振不停;
-----------------------------------------------------------------------

你这句有问题,没有因果关系。停振的晶振复位后也会重新起振。

没用过149,如3楼所说复位的确不可靠,只能外加复位芯片了。

可我还是认为,仅485串进来的干扰就能使芯片复位或死机,你的软硬件都还有很大改进余地。

出0入0汤圆

6
 楼主| 发表于 2011-8-30 13:41:25 | 只看该作者
回3楼:
因为149是在工作中死掉,所以我觉得和复位电路没有关系。个人认为要是复位不好的话,那么一上电就应该有问题;

回4楼:
我现在的晶振为8M,晶振电容为两个33pF,不知道这两个电容会不会有问题?(很多开发板使用22pF电容)

另外我的电路板算是很简单的,走线也简单,没有长线,没有绕线。我的复位电路如下,大家帮看看有问题吗?

(原文件名:123.jpg)


如果真是片内看门狗也不起作用的话,那么加复位芯片MAX809也不行,只能加看门狗芯片,如SP706,MAX706等

出0入0汤圆

7
发表于 2011-8-30 14:21:28 | 只看该作者
回复【5楼】hehelloook  
-----------------------------------------------------------------------

晕,我还没见过10uF的呢,一个0.1uF的就足够了。

如果电源瞬间低电压,单片机就停了,内部外设全部停掉,包括看门狗。这种情况下加个809就可以了。

当然你说的看门狗芯片,那会更可靠。

出0入0汤圆

8
发表于 2011-8-30 14:25:36 | 只看该作者
回复【5楼】hehelloook  
-----------------------------------------------------------------------

我说的不是上电复位不可靠,而是电源受到干扰的时候单片机会停掉而不能复位。而2xx,4xx,5xx以及16x系列中包含了BOR,不会出现此问题。

出0入0汤圆

9
 楼主| 发表于 2011-8-30 14:30:48 | 只看该作者
多谢多谢,现在就去把那个10uF电容干掉再说。

出0入0汤圆

10
发表于 2011-8-30 14:46:25 | 只看该作者
就不应该在定时中断里喂狗

出0入0汤圆

11
 楼主| 发表于 2011-8-30 19:37:55 | 只看该作者
去掉10uF电容电没用,有10uF电容的时候,也能正常复位;现在是在工作中死掉,所以和复位电路没有关系。

回9楼:
软件的设计可以在中断里喂狗(除非430手册里面有明确说明不能在定时中断里喂狗),你说的不是问题的所在。

所以继续顶上去问。

出0入0汤圆

12
发表于 2011-8-30 20:41:06 | 只看该作者
方便把原理图和PCB放上来吗?

出0入0汤圆

13
 楼主| 发表于 2011-8-30 21:59:26 | 只看该作者
回11楼:
原理图和PCB见附件,原理图中复位部分没有那个放电二极管,不过电路板上手动焊上去了,请帮忙分析分析。

点击此处下载 ourdev_672665AKRX29.rar(文件大小:308K) (原文件名:sch pcb.rar)

另外我想说个事实,我这个问题在利尔达上也发了,但是没人跟贴,汗,还是TI 430中国代理商呢,尼码;同时也在“电子工程世界”的[MSP430]版块发了,不过居然被删掉了,MLGB,更伤不起;还是这个坛子最旺,热心人多,在此谢过了。

出0入0汤圆

14
发表于 2011-8-31 02:02:11 | 只看该作者
居然2个2401,最怕射频布板。说说我的看法
1、reset线太长,阻容尽量离芯片近些。做实验建议先和jtag断开。
2、滤波电容C9离芯片近些,尤其离1和63脚近。而且应该3.3V先过c9再进芯片。前2天在论坛还看讨论这个,你翻翻看。
3、给射频3.3V单独走跟线,不要和芯片从一个主路分出来。
4、rf2的3.3v往下挪,把接地点放到上面来,让射频地直接通上面去。另外,把上面3.3v(靠rf1,有个大拐角)再往上点,让地线全包住3.3v。
别的也看不出什么,祝你好运。

下面我常用的485电路,供参考

(原文件名:485.JPG)

出0入0汤圆

15
发表于 2011-8-31 02:07:18 | 只看该作者
另外,看看软件,特别是和485通讯相关,能不能再增强容错性。不是说有错,而是多考虑各种异常情况

出0入0汤圆

16
发表于 2011-8-31 03:10:53 | 只看该作者
据说外部狗靠谱

出0入0汤圆

17
 楼主| 发表于 2011-8-31 03:20:20 | 只看该作者
1楼有我的详细描述。因为在另外一个地点没死,所以我没怀疑我的软件。我的485部分用在另外一个产品(STM32)没出现问题,用在430上无非就是寄存器不一样,别的大同小异。

楼上两个熬夜可不太好,我是白天睡多了,现在睡不着,看着电影过夜的。

所以我还是顶上去接着问吧。

出0入0汤圆

18
发表于 2011-8-31 08:07:58 | 只看该作者
LZ,你太自负了。

出0入4汤圆

19
发表于 2011-8-31 08:26:11 | 只看该作者
RS485的C17,C8换成5.1V稳压管,收发用一个脚控制好一点吧稳定,430没有串口发送完中断,注意切换收发延时

射频地用一个0欧电阻小了点,建议多加点,再多加几个无极性电容与数字地相联,方便泻放干扰

出0入42汤圆

20
发表于 2011-8-31 08:30:09 | 只看该作者
此类现象,很可能是软件。

出0入0汤圆

21
 楼主| 发表于 2011-8-31 08:36:16 | 只看该作者
回17、19楼:
呵呵,设备在公司跑几个月没事,到了现场一两天就有问题,所以我没怀疑软件;

回18楼:
你的建议很好,但是和死机应该没有关系。

出0入0汤圆

22
发表于 2011-8-31 08:52:51 | 只看该作者
1.用专门的复位芯片。
2.485通信可能受干扰,会不会地线电平不对了。

出0入0汤圆

23
发表于 2011-8-31 09:05:01 | 只看该作者
硬件部分应该也有问题,但是我给你分析一下软件部分。最好不要在中断中喂狗。看门狗不起作用很可能是因为你在中断中喂狗了。我给你分析下,看看下面这段简单的程序,本来你的用途是用来取反HAL_Led的,由于莫种原因(或硬件或软件)使得程序跑飞或进入了死循环,但是定时器中断还是会进入并且喂狗,所以程序虽然飞了但是狗不能溢出重启。
main()
{
while(1)
  {
    if(30s 到了)
    {
     HAL_Led = ~HAL_Led;
    }
     if(***)//软件硬件跑飞
       for(,,)
        {
          ********//进入死循环,中断还是继续喂狗,这样你本来想操作的HAL_Led就不会被操作了,但是程序也不重启。
         }
   }
}

出0入0汤圆

24
发表于 2011-8-31 09:22:15 | 只看该作者
看到你的485通信地址是用拨码开关配置的吧?既然另外一块板跑同样的代码没有出现死机,那软件里面走向不同的就是在读取这个地址后的分支不同吧?是不是这里通信什么的出问题了?导致总线冲突?以至于死机?  欢迎指正!
PS:最好不要在中断里喂狗,这样即使主程序跑飞了,定时中断还是在运行,照样喂狗不复位!

出0入0汤圆

25
发表于 2011-8-31 10:15:38 | 只看该作者
回复【7楼】lcofjp C语言砖家
回复【5楼】hehelloook   
-----------------------------------------------------------------------
我说的不是上电复位不可靠,而是电源受到干扰的时候单片机会停掉而不能复位。而2xx,4xx,5xx以及16x系列中包含了bor,不会出现此问题。
-----------------------------------------------------------------------

请教下bor是什么?

BOR  

         在没有BOR的芯片中“如果芯片的上电是周期性的,则掉电VCC必须降低到Vmin,以保证VCC再次加载时发生新的POR信号。如果在一个周期中VCC没有下降到低于Vmin,或者因为发生干扰,那么POR信号就不会发生,这样上电后的初始状态将是不正确的。
        对于带BOR的模块,应该是“当VCC超过Vcc(start)后POR信号变得有效,直到VCC超过V(B_IT+),然后再经过一个延时t(BOR)后。延时t(BOR)会根据Vcc电压变高的倾斜角度的减小而相应的延长。滞后
Vhys(B_IT-)使得VCC必须降到V(B_IT-)之下才能保证通过BOR电路再一次产生POR信号。而V(B_IT-)是比Vmin高的,这就使得当VCC没有降到Vmin时BOR能够提供一个有效的电源失效重起信号。

        高精度设备的的电池更换会引起电压波动。零功率低压重置(BOR)功能用来低电压条件下重置MSP430,预防器件不可知的行为。

出0入0汤圆

26
发表于 2011-8-31 10:36:10 | 只看该作者
关注

出0入0汤圆

27
发表于 2011-8-31 12:06:00 | 只看该作者
……居然拿在公司跑没问题的条件,得出软件没问题的结论。

LZ,你还得好好工作个4,5年。

出0入0汤圆

28
 楼主| 发表于 2011-8-31 12:31:42 | 只看该作者
感谢各位的关注。
说明一下,我的总线和一条动力线有交叉,动力线为10KV,供多个500KW电机,大型变频器等多种大型用电设备。

回21楼:
因为在工作中死掉,所以我不是很怀疑复位部分,不过下次加复位芯片。通过实验是485线上的干扰,在解决中。

回22楼:
我的灯闪在定时中断中闪(30秒),死后灯不闪,已经可以说明定时器罢工。按正常逻辑,则不能喂狗,会复位,但是没有。

没有23楼所说的情况。我会仔细琢磨24楼的话。

另外我想说一下,我发贴可以说是求助,也可以说是大家共同讨论,让后人少走弯路。。。你26楼你TM怎么意思,看不起人家是吧,我现在已经工作5年了,你是不是认为你很NB,别把自己捧到天上去~!

出0入0汤圆

29
发表于 2011-8-31 13:09:39 | 只看该作者
回帖里,已经不止我一个人说了,不应该在中断里喂狗。你却自负的认为 不是 看门狗不起作用的 原因。
这个连我这个专硬件的都知道。

实验室条件下,工作正常的设计,一到现场就出问题的例子比比皆是。

外部硬件看门狗,也看了。上次使用MAX706,群脉冲只能过600V。去掉706,可以上到1800V。

不再回复了。

出0入0汤圆

30
发表于 2011-8-31 13:43:29 | 只看该作者
回复【27楼】hehelloook
说明一下,我的总线和一条动力线有交叉,动力线为10kv,供多个500kw电机,大型变频器等多种大型用电设备。
-----------------------------------------------------------------------

这么重要的信息你不说!在公司里跑的时候,你的485总线也和10kv的总线交叉吗?如果不是,如此重要的因素你却视而不见,或没引起你的重视,我只能和liulingo一样的结论。
我们不认为自己很nb,但我们都认为你太缺乏经验。还很刚愎自用。

出0入42汤圆

31
发表于 2011-8-31 16:25:29 | 只看该作者
26楼说的很对!

出0入0汤圆

32
发表于 2011-8-31 16:49:45 | 只看该作者
正在学习430的人做记号

出0入0汤圆

33
 楼主| 发表于 2011-8-31 17:04:08 | 只看该作者
回29楼:
不是我不说,而是我故意不说,因为说出来了,还会有上面那么多的讨论吗?
我是缺乏经验。但是没有刚愎自用,有些人的回贴言语看不起别人,看不起别人的人往往经常被别人看不起!

我在网上搜过,其实是可以在中断里喂狗的,为什么你们一直反驳呢?因为你们没有看清楚我1楼的描述,至少到现在我还是这么认为的:假如我的主循环死了而定时器还工作,则会有以下情况:(1)30S灯闪一次,因为是在中断里闪灯,但是我的灯不闪了,说明定时器也不工作;(2)主循环死了,则我在主循环里的变量就不能累加,当这个变量在定时器中断里累加到一定值后(现在是1.5S),则强制复位单片机(定时中断里不喂狗长延时),这样的设计应该没有问题吧?

而我现在最纳闷的是,为什么死机后狗不起作用?通过了解,也有人说430的抗干扰和狗不是太好:http://wenku.baidu.com/view/126c2c4ef7ec4afe04a1dfae.html

我刚开始喂狗也是在主循环中,后来改到定时器里面,也是有原因的,这里有一篇关于在中断里喂狗的讨论:http://www.dzsc.com/dzbbs/20060324/20076519361293155.html

在本坛中也有一篇酷文,可以在中断里喂狗,我的思路就和他的一样:http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=703681&bbs_page_no=1&search_mode=1&search_text=中断喂狗&bbs_id=9999

出0入0汤圆

34
发表于 2011-8-31 17:18:47 | 只看该作者
回复【33楼】hehelloook  
回29楼:
不是我不说,而是我故意不说,因为说出来了,还会有上面那么多的讨论吗?
我是缺乏经验。但是没有刚愎自用,有些人的回贴言语看不起别人,看不起别人的人往往经常被别人看不起!

-----------------------------------------------------------------------

我家里的电风扇不转了,好多高手分析的原因都不对。
因为我没告诉他们我家停电了。

出0入0汤圆

35
发表于 2011-8-31 17:30:01 | 只看该作者
回复【33楼】hehelloook
-----------------------------------------------------------------------

主循环配合,中断喂狗是可以的。可能是单片机受干扰彻底死掉了,需要冷复位,这种情况,外置看门狗也是没有用的。有时候软件是现象,硬件是原因。也许是硬件的原因,加隔离,加屏蔽试一下。

出0入0汤圆

36
发表于 2011-8-31 17:32:53 | 只看该作者
回复【33楼】hehelloook
不是我不说,而是我故意不说,因为说出来了,还会有上面那么多的讨论吗?
-----------------------------------------------------------------------

(1)空间带来的干扰可能性小,因为那个地点只有我的设备,远离别的设备,所以要是干扰只能从通信或是电源线进来,通信和电源线共用一条4芯电缆;
-----------------------------------------------------------------------
看看你2楼说的话,一口鲜血喷涌而出。。。

你见过强干扰把振荡器打停振的吗?你见过干扰造成写寄存器错误的吗?这世上的事不是什么都能依照你的想法。
不说了,你的问题再也不回答了。

出0入8汤圆

37
发表于 2011-8-31 18:03:11 | 只看该作者
回复【26楼】liulingo  
……居然拿在公司跑没问题的条件,得出软件没问题的结论。

-----------------------------------------------------------------------
这个说得很有道理的。一般现场的环境和干扰啥的复杂多了。





--------------------------------------------------------------------

看了楼主的发言和回复   真得不知道怎么说了

出0入0汤圆

38
发表于 2011-8-31 21:23:16 | 只看该作者
MARK一下

出0入4汤圆

39
发表于 2011-8-31 21:57:02 | 只看该作者
为什么你们讨论的都是软件上的设计与看门狗呢,其实这两个东西就是狗屁,连基本的稳定硬件都没做出来还谈什么软件,靠看门狗过日子的硬件谁敢用

EMC需要普及

出0入0汤圆

40
 楼主| 发表于 2011-8-31 22:59:16 | 只看该作者
楼上说的对,因为我现在在现场,所以需要临时解决办法。总不能拉了屎不擦是吧~!

出0入0汤圆

41
发表于 2011-9-2 20:03:26 | 只看该作者
建议楼主 直接pin to pin 由149 换为 249
149的因为内部复位设计有问题,在电源缓慢上升和缓慢下降时,会有问题的.
复位的电容不要用10uf,感觉太大.

出0入0汤圆

42
发表于 2011-9-2 23:32:35 | 只看该作者
回复【39楼】electricit
-----------------------------------------------------------------------

哈哈,你的话白说了,没人能听进去

出0入0汤圆

43
 楼主| 发表于 2011-9-5 07:41:05 | 只看该作者
哈哈,还有人回复啊.41楼建议不错。

现在确认是外来干扰了。用继电器通过大电流通断模拟,就会死掉,现在不理解的就是为什么死了就是彻底的死了,内狗也不起作用。

下次如果不是功耗有要求的话,坚决不会再用430

出0入0汤圆

44
发表于 2011-9-7 13:05:08 | 只看该作者
笑而不语

出0入0汤圆

45
发表于 2011-9-7 13:40:19 | 只看该作者
实际上是430内部硬件的一个Bug,需要通过软件配置电源检测来消除。以前的430代理商来解决的,频繁上下电就会有这个问题。

出0入0汤圆

46
发表于 2011-9-7 14:33:32 | 只看该作者
这个必须记下。

出0入0汤圆

47
发表于 2011-9-8 09:56:55 | 只看该作者
我以前也出现过死机的现象,直接上外狗,已经测试很长时间了。没有问题,但是最开始加外狗时也费了一点周折

出0入0汤圆

48
发表于 2011-9-20 16:42:45 | 只看该作者
1楼回答的很好,楼主就没有仔细看。
后来楼主也模拟到继电器切换对板子有影响了。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-19 01:50

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表