发新帖我要提问
12
返回列表
打印

由在强干扰下,CPU复位引发的思考 .......

[复制链接]
楼主: Wxy8030
手机看帖
扫描二维码
随时随地手机跟帖
21
58060622| | 2012-3-14 08:27 | 只看该作者 回帖奖励 |倒序浏览
lz检查下开关电源在强干扰下的输出,曾经测试过开关电源在强干扰下自动关断了,造成了0电压输出所以可能导致了CPU供电问题。

使用特权

评论回复
22
kongjw| | 2012-3-14 09:24 | 只看该作者
楼主说的这个问题,我以前也遇到过,我的做法是,在程序的主循环中加入一个函数,用来检测所有的初始化参数,并不是一次检测完毕,分多次检测,并且将这个函数的优先级调整为最低。

使用特权

评论回复
23
Wxy8030|  楼主 | 2012-3-14 12:18 | 只看该作者
to 22楼:说实话,8位机这么干很容易!

无奈 ARM 的配置寄存器实在太多了,多的我都看都看傻了,关键是还涉及到很多汇编(启动文件),这下彻底傻了!

使用特权

评论回复
24
sahh| | 2012-3-14 17:59 | 只看该作者
楼主爱思考,值得表扬。

以下这句话是错的:2、程序为啥会“飞”了?是因为指向当前程序地址的指针在干扰下没按套路出牌,乱出牌了,于是程序就飞了!由此带来问题3!

程序飞了,是数据在传递过程当中受了干扰,导致数据传错了。这个数据有可能是地址数据,也有可能是从ROM、RAM、寄存器读回来的数据,也有可能是控制信号。

这个出错,是出在传递的过程,而不是RAM、寄存器本身。

所以,后面的推论跟着错了。也就是说,你的思路从这个地方开始,跑飞掉了。

使用特权

评论回复
25
BitFu| | 2012-3-14 19:40 | 只看该作者
我也曾按楼主的思路思考过
所以后来我对所谓的软件抗干扰和WDT基本没什么兴趣了,可能可以对全局变量加校验的方式做软件抗扰,
但这种方式是什么时候是个头啊,因此解决问题还是要在PCB布线、滤波和接地上下功夫。

使用特权

评论回复
26
Wxy8030|  楼主 | 2012-3-14 20:02 | 只看该作者
以下这句话是错的:2、程序为啥会“飞”了?是因为指向当前程序地址的指针在干扰下没按套路出牌,乱出牌了,于是程序就飞了!由此带来问题3!

程序飞了,是数据在传递过程当中受了干扰,导 ...
sahh 发表于 2012-3-14 17:59


其实我的意思是,在干扰下,RAM(这里的RAM指可读可写的所有存储器,包括所有的配置寄存器)是不可靠的,那么如何应对这些不可靠的RAM变化(尤其是配置寄存器)?

使用特权

评论回复
27
谈的元| | 2012-3-14 22:44 | 只看该作者
由在强干扰下,CPU复位引发的思考:
1、强干扰下,CPU为啥会复位?一般的原因是程序“飞”了,由WDT拉了回来!由此带来问题2;
2、程序为啥会“飞”了?是因为指向当前程序地址的指针在干扰下没按套路出牌,乱出牌了 ...
Wxy8030 发表于 2012-3-12 13:46


多次刷新是很重要的

使用特权

评论回复
28
谈的元| | 2012-3-14 22:46 | 只看该作者
不如平时CPU空闲的时候,定时把所有能检查的配置寄存器都检查一遍?
EMP_ 发表于 2012-3-13 10:16


有空就刷新比检查好

使用特权

评论回复
29
谈的元| | 2012-3-14 22:50 | 只看该作者
其实我的意思是,在干扰下,RAM(这里的RAM指可读可写的所有存储器,包括所有的配置寄存器)是不可靠的,那么如何应对这些不可靠的RAM变化(尤其是配置寄存器)? ...
Wxy8030 发表于 2012-3-14 20:02


1选够用的功能少的片子
2.能刷新就刷新:(所有功能寄存器,比如输入输出配置,输出状态)

(在干扰情况下,输出可能变输入,输出1后可能变0)

使用特权

评论回复
30
谈的元| | 2012-3-14 22:50 | 只看该作者
一句话。ROM比RAM可靠

使用特权

评论回复
31
Wxy8030|  楼主 | 2012-3-14 22:57 | 只看该作者
TO 谈:
要是 51、PIC 之类的8位机我也就不发帖子了 ...... 我现在用的是 ARM ......(悲催的STM32F103......)......连固件库我都还没整明白、汇编还看不懂几行呢 ......

使用特权

评论回复
32
snowchang| | 2012-3-14 23:08 | 只看该作者
干扰的是总线,而不是任何RAM,如果程序飞了,CPU就会复位。如果是其它错误,难道你的串行通讯没有校验,AD没有软滤波处理。

使用特权

评论回复
33
谈的元| | 2012-3-14 23:40 | 只看该作者
b不要看汇编了额,把初始化代码弄主程序中吧

使用特权

评论回复
34
Wxy8030|  楼主 | 2012-3-15 08:40 | 只看该作者
to 谈:
要不要检验堆栈?要不要检查ARM核的某些标志?中断使能位如何处理(一不小心产生了一个莫须有的中断咋办)?

使用特权

评论回复
35
chinagzq| | 2012-3-17 16:16 | 只看该作者
真是这样的吗?

使用特权

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

本版积分规则