打印

求助一种单片机监控解决方案

[复制链接]
1984|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
sohowork|  楼主 | 2012-7-27 15:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
普通的单片机监控芯片(俗称看门狗芯片)解决了单片机在规定时间内不喂狗后产生复位信号的功能,这解决了很多情况下单片机的死机问题。但是,有另一种情况(机率低得多):即便有规范的复位信号加载到单片机的复位引脚上,单片机也不能复位。但这时如果把电源关闭在接上,则能恢复工作。
     所以设想有这样一种电路:
    VCC:电源
    VSS:地
    Vout:在系统刚上电或正常触发下输出高电平;若干秒没有触发信号后,输出5s低电平(模拟系统断电,足够系统放电完毕),再输出5s高电平(系统上电),如果没有规范的触发信号输入,则循环输出这样的信号,模拟系统不断下电上电,直至系统正常工作给出规范触发信号。这个Vout建议接到给MCU供电的LDO的使能端。
    Vin:触发信号输入,类似于看门狗电路的喂狗信号。
    理论上如果系统接入了这样的监控电路后,如果系统不正常将导致一次下电再上电,即我们平时说的冷启动。如果冷启动还失败,那就是硬件故障了,一定要人工干预。
    不知有没有这样现成的电路?如果没有,怎样实现比较简洁可靠?求高人指点。感觉需要这个电路的人不是我一个。

相关帖子

沙发
gx_huang| | 2012-7-27 16:32 | 只看该作者
首先硬件设计要保证很少出现死机现象。
如果外部复位都不行,明显布线太差。

这种方案没有多少需求的,不会有人开发的。

你找一个外部复位都无法复位的板子给我看看,保证可以优化设计解决。

使用特权

评论回复
板凳
sohowork|  楼主 | 2012-7-27 16:47 | 只看该作者
上面已经说过,这是机率很低的事情,但不幸还是有;的确,通常情况下外狗能很大程度解决问题,但不是百分百。由于设备安装的特殊性,死机后不便于直接去按复位按钮,而是在控制机箱里断一下系统的电源过几秒钟再送上。
        复位电路毕竟不像晶体电路或者模拟走线。我的走线复位电路靠着MCU也很近,参照复位芯片的datasheet布的线,这个似乎不必多说什么了。
       问题是楼上的意思是不是不承认:热复位有时会失效?并且热复位一旦失效,这个电路就是布线太差?
       这种情况出现的机率是很低,但还是有。我是力图把最后一个手段用上去,至少理论上让设备最小程度依赖人工维护。

使用特权

评论回复
地板
Auir| | 2012-7-27 16:59 | 只看该作者
这种电路大把。
reset输出不要直接接mcu的reset,
reset输出控制一个mos管,或三极管。,这个mos或者三极管就是mcu vdd的通道。

专用的ic也不少。但是不普及。
留个email,我发个电路给你看看。

使用特权

评论回复
5
sohowork|  楼主 | 2012-7-27 17:11 | 只看该作者
谢谢。我的email:
petermail@163.com

使用特权

评论回复
6
sohowork|  楼主 | 2012-7-27 17:20 | 只看该作者
传统看门狗芯片有问题:一旦reset产生,导致MCU VDD断开,这时没办法再产生有效喂狗信号,去接通MCU VDD。接单说,让MCU失电能做到,但再上电怎么办?

使用特权

评论回复
7
sohowork|  楼主 | 2012-7-27 18:21 | 只看该作者
4楼“专用的ic也不少。但是不普及。”能否给出一个型号?

使用特权

评论回复
8
Auir| | 2012-7-27 18:23 | 只看该作者
邮件已发,

reset器件隔200ms左右会自动再上电。

使用特权

评论回复
9
sohowork|  楼主 | 2012-7-27 23:41 | 只看该作者
但是200mS的下电时间对于我的系统来说太少,供电系统有比较大的电容,至少3秒以上才能才能将电能放掉大部分。或者这个reset信号去接通一个专门的放电电路倒是可以考虑。谢谢Auir肖经理。

使用特权

评论回复
10
gx_huang| | 2012-7-28 11:50 | 只看该作者
有外部复位输入的MCU,如果外部复位也不能复位,明显是内部的逻辑电路被死锁了。
除非IC设计BUG,一般就是走线太差。
其实一个简单的74HC164,也会死机(其实是死锁了,内部门电路上下管子一起导通),电源电流很大,把电压都拉下去了。原因就是164的VCC没有很好的滤波。

使用特权

评论回复
11
sohowork|  楼主 | 2012-7-28 14:37 | 只看该作者
说的正是闩锁(latch-up),特殊情况下会发生。这时普通的将外部reset信号加载到MCU复位引脚不能复位,所以才有将这个外部reset信号去触发MCU的VCC短暂停止的想法。在工作现场什么情况下发生闩锁实在是讲不清。正在解决中...
10楼:“有外部复位输入的MCU”,你见过几个没有外部复位输入的MCU?
                “除非IC设计BUG,一般就是走线太差“ ,这是你总结的发生闩锁的原因?

使用特权

评论回复
12
fjzzclc| | 2012-7-28 14:58 | 只看该作者
不懂

使用特权

评论回复
13
sohowork|  楼主 | 2012-7-28 16:02 | 只看该作者
用了一个706,/WDO端接到/MR端。利用其复位时产生的140mS左右的低电平,失能LDO的使能端,并且开启一个放电回路,加速其放电,让VCC在100mS以内即释放干净,达到下电目的。140mS左右的低脉冲过去后,/reset引脚又回到高电平,使能LDO,这个高电平时间有1秒以上,MCU重新得电,初始化,喂狗,正常运行。终于解决了。谢谢Auir肖经理。

使用特权

评论回复
14
sohowork|  楼主 | 2012-7-28 16:03 | 只看该作者
结贴!

使用特权

评论回复
15
sohowork|  楼主 | 2012-7-28 16:08 | 只看该作者
我按“结贴给分”,但弹出“积分与总分不符,请重新分配”,我不懂怎么操作?

使用特权

评论回复
16
gx_huang| | 2012-7-29 12:08 | 只看该作者
11# sohowork

是的,即使你加了你认为可靠的电路,也需要加强原理图、PCB设计,尽量做到不发生这个事情。

使用特权

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

本版积分规则

13

主题

141

帖子

1

粉丝