greatwall2 发表于 2012-3-31 09:22:00

STC开了看门狗还死机

用的是STC11F02E。功能其实很简单,就是从串口接收上位机发来的方向信号和脉冲数,然后发给步进驱动器让电机转个角度。看门狗已开并在查询串口的循环里喂狗,但客户反映还是会死机。特别是上位机很长时间没有数据发过去时,还有就是中午停机一小时后,机器有可能就死了,得重新掉电/上电才行。难道老姚的狗狗是假的?还是我自己使用上的问题?各位兄弟有没遇到过?

gongnn 发表于 2012-3-31 09:24:13

看看晶体质量和电路吧,不一定就是单片机事情。

greatwall2 发表于 2012-3-31 09:42:41

gongnn 发表于 2012-3-31 09:24 static/image/common/back.gif
看看晶体质量和电路吧,不一定就是单片机事情。

谢谢!晶体就是市面上随便买的,质量不好说,但在其它项目上也用过,没发现啥问题。原理图和PCB图如下:




.titrwh 发表于 2012-3-31 09:49:26

电源电容扯太远了                                                                                             

greatwall2 发表于 2012-3-31 09:49:50

gongnn 发表于 2012-3-31 09:24 static/image/common/back.gif
看看晶体质量和电路吧,不一定就是单片机事情。

谢谢!晶体就是市面上随便买的,质量不好说,但在其它项目上也用过,没发现啥问题。原理图和PCB图如下:




liulingo1 发表于 2012-3-31 09:54:26

为何要使用外部晶振??难道你的通讯速率很高吗?9600,使用内部RC,精度应该可以保证

greatwall2 发表于 2012-3-31 10:02:24

liulingo1 发表于 2012-3-31 09:54 static/image/common/back.gif
为何要使用外部晶振??难道你的通讯速率很高吗?9600,使用内部RC,精度应该可以保证 ...

谢谢。用的就是9600,也是纠结过一番才用的外部晶振。精度是一个问题,主要还是担心RC在工业现场环境的稳定性,比如温度变化的影响等。

gongnn 发表于 2012-3-31 10:06:52

内部RC不准确的,你可以找个有源晶振测试下。就知道是不是晶体问题了。

fwluck 发表于 2012-3-31 10:07:23

也有可能是一直在复位状态。
当然只是猜,测过才会明白。

greatwall2 发表于 2012-3-31 10:09:17

gongnn 发表于 2012-3-31 10:06 static/image/common/back.gif
内部RC不准确的,你可以找个有源晶振测试下。就知道是不是晶体问题了。

谢谢!
BTW,兄弟换ID 了?图象里的这块板我买过,很好用{:lol:}

greatwall2 发表于 2012-3-31 10:11:09

fwluck 发表于 2012-3-31 10:07 static/image/common/back.gif
也有可能是一直在复位状态。
当然只是猜,测过才会明白。

应该不会。如果一直在复位,就不能按上位机的指令来操作了。客户说的情况是死机,拔下电源再插上就好了。

ZY_Hong 发表于 2012-3-31 10:15:47

之前也碰到过STC单片机死机的问题,不过我们的系统是有大脉冲电流的!
10UF/0.1UF的去耦电容肯定不能少,而且要离单片机电源引脚很近!
去耦电容靠近电源引脚大部分人是这样做的,但他们忽略单片机的地线,即电容负极到单片机的地绕了很长的线,超出了0.1UF电容的去耦半径,就起不到去耦效果!
你可以用示波器看看单片机电源的波形,测试时注意,示波器地要接单片机的地引脚而不是其它的地。

liulingo1 发表于 2012-3-31 10:17:46

19200,使用内部RC, 2%的精度,通讯都没问题。何来不准确之说?
况且,是全温度范围保证了 精度。比起外部晶振出现问题,导致 CPU不工作,要可靠的多。

要么, 用内部RC,要么用有源晶振。这是我的经验。

greatwall2 发表于 2012-3-31 10:20:16

ZY_Hong 发表于 2012-3-31 10:15 static/image/common/back.gif
之前也碰到过STC单片机死机的问题,不过我们的系统是有大脉冲电流的!
10UF/0.1UF的去耦电容肯定不能少,而 ...

谢谢!现在思考的是两个问题:
1.为什么会死机?这个从电源、PCB布线等方面考虑。
2.为什么死机后看门狗拉不回来?这个有点想不通。

Hunter 发表于 2012-3-31 10:36:27

外部有源晶振,也是类似于单片机+无源晶体结构。
有些小厂的有源晶振内部使用die+无源晶体结构,但又控制不好工艺,反而更加容易不稳定。
网络产品用外部晶振较多,主要为了保证可靠性,华为曾经一段时间要求其供应商做有源晶振必须成品IC+无源晶体结构。

ZY_Hong 发表于 2012-3-31 10:46:09

之前我们的产品有些只是不停重启(内部看门狗也开了的)
严重的就会死机!
之后把MCU的地直接割断,用线直接跳到电源地,在MCU电源脚与地脚直接跨0.1UF电容,问题得到了解决!

greatwall2 发表于 2012-3-31 11:50:18

liulingo1 发表于 2012-3-31 10:17 static/image/common/back.gif
19200,使用内部RC, 2%的精度,通讯都没问题。何来不准确之说?
况且,是全温度范围保证了 精度。比起外部 ...

很有见地,谢谢

greatwall2 发表于 2012-3-31 11:52:25

ZY_Hong 发表于 2012-3-31 10:46 static/image/common/back.gif
之前我们的产品有些只是不停重启(内部看门狗也开了的)
严重的就会死机!
之后把MCU的地直接割断,用线直 ...

谢谢。我试试看

fwluck 发表于 2012-4-1 12:45:15

复位后重启,在刚启动,或没有完成重启又复位了。根本到不了处理接收或是没有完整收完一处指令就复位了。如何执行指令。

jetli 发表于 2012-4-1 13:41:13

用内置rc模式使用试试

raxb 发表于 2012-4-1 17:03:22

也许程序问题

greatwall2 发表于 2012-4-1 18:36:16

fwluck 发表于 2012-4-1 12:45
复位后重启,在刚启动,或没有完成重启又复位了。根本到不了处理接收或是没有完整收完一处指令就复位了。如 ...

谢谢!客户反映的死机并不频密,主要是有很长一段时间没有通信,比如午间休息后才会死机。所以难以理解。

greatwall2 发表于 2012-4-1 18:45:16

raxb 发表于 2012-4-1 17:03
也许程序问题

有道理。现在跟客户程序间的通信协慢议太过简单。或许并没有死机,只是各自进入了等待死循环。要再测试下。不知有没有这方面的资料或成功案例参考?

电子蔡鸟 发表于 2012-4-1 21:09:25

看门狗不复位有可能是程序跑飞了, 试试增加喂狗的量,减少喂狗的次数,

ringan865 发表于 2012-4-1 21:28:40

还是外部的狗可靠些,晶体出问题的话还能保证复位

心飞扬 发表于 2012-4-5 08:16:19

我也遇到了差不多的问题,是两个stc单片机SPI通信,运行两天后就出问题,也加了看门狗,不过狗起作用,怀疑是电机启动有干扰信号导致的,后来通信加上校验,当通信不对时,就将从机收到的全清,现在还在测试,不清楚会不会还有问题,希望一切都好。

june2008 发表于 2012-4-5 09:05:29

内部看门狗不也是用晶振频率计数的吗,看门狗死掉最大的原因就是晶振频率被打乱,看门狗不计数,不溢出也就复不了位了,按理内部振荡器抗干扰性应该比外部晶振强,但是温漂大。这样的话最好用个外部的看门狗。

severewinner 发表于 2012-4-5 09:30:46

先问个问题你怎么确定的跑飞?是通过通讯还是指示灯之类的?
如果是通讯死掉了会不会是别的死掉了,mcu一定死了么?

hpdell 发表于 2012-4-7 17:52:01

这个不要总是怀疑是STC的片子不好,估计与硬件软件都有关系的哦

xiaobendan001 发表于 2012-4-7 18:43:53

ringan865 发表于 2012-4-1 21:28 static/image/common/back.gif
还是外部的狗可靠些,晶体出问题的话还能保证复位

不是所有的死机都能靠复位使他正常的,不信你试试!
页: [1]
查看完整版本: STC开了看门狗还死机