打印

香主,STM32芯片对打静电时出现的死机现象,CPU进入了什么状

[复制链接]
8600|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
kbgyzp|  楼主 | 2009-4-16 22:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
对于通过光耦到CPU管脚的开关量输入输出接口,打静电8000V,CPU会出现死机想象,有时候过上1~2分钟CPU会被看门狗复位活过来,有时候就彻底死了。

   先讨论被看门狗救活的情况:
    为什么会1~2分钟CPU才活,这段时间CPU在做什么:程序跑飞?晶振停振?还是进入了特权系统状态?调试状态?RAM运行状态?下程序状态?
    肯定的是在CPU死了的时候,是无法通过串口下程序的。
    还有点特奇怪,我把程序改成打开看门狗不喂它,用网友MSUISP的下载软件中的下载后执行,竟然看门狗要过1~2分钟才复位,而我从新上电后看门狗是立即复位的,这1~2分钟看门狗干什么去了?
    CPU死了,有时1~2分钟看门狗可把CPU给复位活了,有时就死翘翘了,这段时间CPU干什么去了,分钟看门狗干什么去了?
    如果不开看门狗,CPU死了也就死了,彻底不会活。开了看门狗,CPU有时可立即活,有时过段时间活,有时活不了?

    是STM32的内置看门狗不可靠,还是CPU不可靠,还是我的软硬件有问题,希望大家给点思路或想法

   
沙发
McuIsp| | 2009-4-16 22:34 | 只看该作者

呵呵,古怪。

占个沙发等结果。

使用特权

评论回复
板凳
kbgyzp|  楼主 | 2009-4-16 22:40 | 只看该作者

回ls

楼上,你也可试试,把看门狗打开,在大循环中不喂它,用你的软件下进去后直接运行,不会立即复位的。

使用特权

评论回复
地板
香水城| | 2009-4-17 08:36 | 只看该作者

看门狗的超时时间与你的配置参数相关

比如独立看门狗的最长超时时间可超过26秒钟,看下图:




另外,不要以为看门狗可以刀枪不入,干扰太严重看门狗也会死。看门狗的作用是提高抗干扰的能力,而不是完全抵御干扰。

使用特权

评论回复
5
kbgyzp|  楼主 | 2009-4-17 20:30 | 只看该作者

香主,我用的16分频,最长也就不到2秒啊!

可实际死的时间可长达1-2分钟,很多时候根本就活不了。

“还有点特奇怪,我把程序改成打开看门狗不喂它,用网友MSUISP的下载软件中的下载后执行,竟然看门狗要过1~2分钟才复位,而我从新上电后看门狗是立即复位的,这1~2分钟看门狗干什么去了?”这种现象香主能给解释一下吗?你很方便试的。

另外在STM32的1.0固件库中有HardFaultException()、MemManageException()等四个中断函数,干什么用的,在手册中找不到任何说明,里面还竟然是
while (1)
{
}
的死循环!什么时候会进这个中断?进去不就挂了

使用特权

评论回复
6
kbgyzp|  楼主 | 2009-4-17 20:32 | 只看该作者

香主,有什么办法验证看门狗死没死?

使用特权

评论回复
7
kbgyzp|  楼主 | 2009-4-17 20:33 | 只看该作者

你对外部晶振停振怎么看?我感觉这种可能更大

使用特权

评论回复
8
香水城| | 2009-4-17 22:05 | 只看该作者

如果独立看门狗的预分频系数为16分频,最长超时时间是1638.4

看看我在4楼贴出的表格。至于为什么“实际死的时间可长达1-2分钟”,要实际诊断后才可能知道。


我不知道有什么办法验证看门狗死没死,你有什么好建议?


强静电造成系统紊乱有很多种可能,外部晶振停振是可能性之一,但可能性多大,我无法评估。

使用特权

评论回复
9
KBGYZP| | 2009-4-18 08:47 | 只看该作者

香主,这个问题您还没给解答啊

STM32的1.0固件库中有HardFaultException()、MemManageException()等四个中断函数,干什么用的,在手册中找不到任何说明,里面还竟然是
while (1)
{
}

使用特权

评论回复
10
香水城| | 2009-4-18 08:57 | 只看该作者

关于异常处理是属于Cortex-M3内核的部分

请参考ARM公司的Cortex-M3参考手册。

ST刚刚发布了一个文档,针对使用STM32的用户,简单说明了需要用到的Cortex-M3内核的资源。
相关链接:http://www.st.com/stonline/products/literature/pm/15491.pdf

使用特权

评论回复
11
coslight| | 2009-4-18 11:07 | 只看该作者

感觉最好使用外部看门狗,省的CPU的问题导致看门狗不正确

感觉最好使用外部看门狗,省的CPU的问题导致看门狗不正确动作,或者不动作

使用特权

评论回复
12
kbgyzp|  楼主 | 2009-4-18 11:52 | 只看该作者

回ls

我可以让STM32的模狗和硬狗打起来。

设置AD的一个限值,进入模拟看门狗上电进中断,不退出来,硬狗饿了就咬CPU。再复位由落模狗口了。

在加上窗狗,野狗,四狗打起来才热闹呢。

谁哪个是公,哪个是母

使用特权

评论回复
13
aleda303| | 2013-2-20 09:06 | 只看该作者
感觉你是不是 喂狗的时机选择不对?

使用特权

评论回复
14
smartmcu| | 2013-2-22 11:37 | 只看该作者
“有时候1-2分钟才活回来”,应该多做几次实验,并且精确记录活回来的时间是否严格靠近某个数值,如果是,那可以发挥一下想象:一个雷劈过来(从片片的角度看也就是静电的意思),某个预分频器被达成全1或者全0了,狗狗也被打成类似的。然后就用这个最慢的频率来算狗狗的喂食时间,最后终于在1-2分钟后,饿疯了的狗狗挑起咬了cpu一口?:lol

使用特权

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

本版积分规则

53

主题

473

帖子

1

粉丝