STC开了看门狗还死机
用的是STC11F02E。功能其实很简单,就是从串口接收上位机发来的方向信号和脉冲数,然后发给步进驱动器让电机转个角度。看门狗已开并在查询串口的循环里喂狗,但客户反映还是会死机。特别是上位机很长时间没有数据发过去时,还有就是中午停机一小时后,机器有可能就死了,得重新掉电/上电才行。难道老姚的狗狗是假的?还是我自己使用上的问题?各位兄弟有没遇到过? 看看晶体质量和电路吧,不一定就是单片机事情。 gongnn 发表于 2012-3-31 09:24 static/image/common/back.gif看看晶体质量和电路吧,不一定就是单片机事情。
谢谢!晶体就是市面上随便买的,质量不好说,但在其它项目上也用过,没发现啥问题。原理图和PCB图如下:
电源电容扯太远了 gongnn 发表于 2012-3-31 09:24 static/image/common/back.gif
看看晶体质量和电路吧,不一定就是单片机事情。
谢谢!晶体就是市面上随便买的,质量不好说,但在其它项目上也用过,没发现啥问题。原理图和PCB图如下:
为何要使用外部晶振??难道你的通讯速率很高吗?9600,使用内部RC,精度应该可以保证 liulingo1 发表于 2012-3-31 09:54 static/image/common/back.gif
为何要使用外部晶振??难道你的通讯速率很高吗?9600,使用内部RC,精度应该可以保证 ...
谢谢。用的就是9600,也是纠结过一番才用的外部晶振。精度是一个问题,主要还是担心RC在工业现场环境的稳定性,比如温度变化的影响等。 内部RC不准确的,你可以找个有源晶振测试下。就知道是不是晶体问题了。 也有可能是一直在复位状态。
当然只是猜,测过才会明白。 gongnn 发表于 2012-3-31 10:06 static/image/common/back.gif
内部RC不准确的,你可以找个有源晶振测试下。就知道是不是晶体问题了。
谢谢!
BTW,兄弟换ID 了?图象里的这块板我买过,很好用{:lol:} fwluck 发表于 2012-3-31 10:07 static/image/common/back.gif
也有可能是一直在复位状态。
当然只是猜,测过才会明白。
应该不会。如果一直在复位,就不能按上位机的指令来操作了。客户说的情况是死机,拔下电源再插上就好了。 之前也碰到过STC单片机死机的问题,不过我们的系统是有大脉冲电流的!
10UF/0.1UF的去耦电容肯定不能少,而且要离单片机电源引脚很近!
去耦电容靠近电源引脚大部分人是这样做的,但他们忽略单片机的地线,即电容负极到单片机的地绕了很长的线,超出了0.1UF电容的去耦半径,就起不到去耦效果!
你可以用示波器看看单片机电源的波形,测试时注意,示波器地要接单片机的地引脚而不是其它的地。 19200,使用内部RC, 2%的精度,通讯都没问题。何来不准确之说?
况且,是全温度范围保证了 精度。比起外部晶振出现问题,导致 CPU不工作,要可靠的多。
要么, 用内部RC,要么用有源晶振。这是我的经验。 ZY_Hong 发表于 2012-3-31 10:15 static/image/common/back.gif
之前也碰到过STC单片机死机的问题,不过我们的系统是有大脉冲电流的!
10UF/0.1UF的去耦电容肯定不能少,而 ...
谢谢!现在思考的是两个问题:
1.为什么会死机?这个从电源、PCB布线等方面考虑。
2.为什么死机后看门狗拉不回来?这个有点想不通。 外部有源晶振,也是类似于单片机+无源晶体结构。
有些小厂的有源晶振内部使用die+无源晶体结构,但又控制不好工艺,反而更加容易不稳定。
网络产品用外部晶振较多,主要为了保证可靠性,华为曾经一段时间要求其供应商做有源晶振必须成品IC+无源晶体结构。 之前我们的产品有些只是不停重启(内部看门狗也开了的)
严重的就会死机!
之后把MCU的地直接割断,用线直接跳到电源地,在MCU电源脚与地脚直接跨0.1UF电容,问题得到了解决! liulingo1 发表于 2012-3-31 10:17 static/image/common/back.gif
19200,使用内部RC, 2%的精度,通讯都没问题。何来不准确之说?
况且,是全温度范围保证了 精度。比起外部 ...
很有见地,谢谢 ZY_Hong 发表于 2012-3-31 10:46 static/image/common/back.gif
之前我们的产品有些只是不停重启(内部看门狗也开了的)
严重的就会死机!
之后把MCU的地直接割断,用线直 ...
谢谢。我试试看 复位后重启,在刚启动,或没有完成重启又复位了。根本到不了处理接收或是没有完整收完一处指令就复位了。如何执行指令。 用内置rc模式使用试试 也许程序问题 fwluck 发表于 2012-4-1 12:45
复位后重启,在刚启动,或没有完成重启又复位了。根本到不了处理接收或是没有完整收完一处指令就复位了。如 ...
谢谢!客户反映的死机并不频密,主要是有很长一段时间没有通信,比如午间休息后才会死机。所以难以理解。
raxb 发表于 2012-4-1 17:03
也许程序问题
有道理。现在跟客户程序间的通信协慢议太过简单。或许并没有死机,只是各自进入了等待死循环。要再测试下。不知有没有这方面的资料或成功案例参考? 看门狗不复位有可能是程序跑飞了, 试试增加喂狗的量,减少喂狗的次数, 还是外部的狗可靠些,晶体出问题的话还能保证复位 我也遇到了差不多的问题,是两个stc单片机SPI通信,运行两天后就出问题,也加了看门狗,不过狗起作用,怀疑是电机启动有干扰信号导致的,后来通信加上校验,当通信不对时,就将从机收到的全清,现在还在测试,不清楚会不会还有问题,希望一切都好。 内部看门狗不也是用晶振频率计数的吗,看门狗死掉最大的原因就是晶振频率被打乱,看门狗不计数,不溢出也就复不了位了,按理内部振荡器抗干扰性应该比外部晶振强,但是温漂大。这样的话最好用个外部的看门狗。 先问个问题你怎么确定的跑飞?是通过通讯还是指示灯之类的?
如果是通讯死掉了会不会是别的死掉了,mcu一定死了么? 这个不要总是怀疑是STC的片子不好,估计与硬件软件都有关系的哦 ringan865 发表于 2012-4-1 21:28 static/image/common/back.gif
还是外部的狗可靠些,晶体出问题的话还能保证复位
不是所有的死机都能靠复位使他正常的,不信你试试!
页:
[1]