搜索
bottom↓
回复: 32

求分析讨论:AVR工控板稳定性分析

[复制链接]

出0入0汤圆

发表于 2013-7-17 11:14:56 | 显示全部楼层 |阅读模式
本帖最后由 roken2000 于 2013-7-17 11:26 编辑

Hi,All,

我们做的项目用的是CPU板+底板的方式,一台设备用5块板,首台样机中,其中一个机械模块约几个小时会出现一次输出异常动作,分析不是程序的原因(CPU通过串口打印调试信息,确实没有输出此信号,但是录像监控底板的输出灯确实亮了),真心求助,这个问题已经分析三天了,设备出货压力大呀,觉都睡不好......

我们做了以下工作:
1.更换整套控制板(怀疑控制板问题,换了三次)
2.将CPU板直接焊接在底板上(怀疑CPU板和底板接触不良)
3.控制板供电从设备中拉出,单独开关电源供电(怀疑供电)----其中底板24V输入,加入DC/DC模块5V隔离输出给CPU板
4.将输出直流马达、传感器、伺服电机重新走线(怀疑接触不良或干扰)
5.将设备内所有接插件重新接插排查

但是现象依旧出现,且出故障的控制板和其他模块的控制板交换,仍旧是该模块出故障,而其他模块(不过其他模块结构和动作与此模块不同,不能类比)不出......

现在跟踪问题怀疑到是CPU输出总线(数据线、地址线、WR/RD)受到干扰,导致输出受到一次错误的锁存数据(输出异常时,再输出一轮新的数据可以矫正回来),各位看看CPU板的原理图设计或者器件选型有无问题,谢谢呀......


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

 楼主| 发表于 2013-7-17 11:23:48 | 显示全部楼层
昨晚老化跑机,跑了一晚上,没出现问题,结果今天早上又出现了一次异动作......

人都快疯了......

希望大家发表意见,集思广益才能解决问题呀...

出0入4汤圆

发表于 2013-7-17 11:29:02 | 显示全部楼层
是灯还是继电器误动作?既然是CPU没有输出,那就是直接干扰了执行电路。特别是有长线的情况下。查查这里吧,实在不行给这一路加上硬件滤波

出0入0汤圆

 楼主| 发表于 2013-7-17 11:32:58 | 显示全部楼层
wajlh 发表于 2013-7-17 11:29
是灯还是继电器误动作?既然是CPU没有输出,那就是直接干扰了执行电路。特别是有长线的情况下。查查这里吧 ...

CPU板的74AHC573出来信号到底板,底板将此信号加上光耦隔离去驱动MOSFET,MOSFET去驱动直流电机......

从录像监控观察应该是异常信号被锁存到了74AHC573,因为输出异常不是脉冲信号,是持续信号,一直等到下一次新的数据刷新到74AHC573才能矫正回来。

出0入85汤圆

发表于 2013-7-17 11:36:24 | 显示全部楼层
怀疑LZ的程序中共享资源没有处理好

出110入0汤圆

发表于 2013-7-17 11:52:58 | 显示全部楼层
只在一个特定的位出现异常?

出0入0汤圆

 楼主| 发表于 2013-7-17 12:10:25 | 显示全部楼层
Flyback 发表于 2013-7-17 11:52
只在一个特定的位出现异常?

不是在特定的位......

出0入0汤圆

 楼主| 发表于 2013-7-17 12:14:38 | 显示全部楼层
marshallemon 发表于 2013-7-17 11:36
怀疑LZ的程序中共享资源没有处理好

marshallemon,您的意思是中断或者其他地方改变了这个输出?

24路输出确实是long型的全局变量,但是绝对没有在中断中去操作过这个变量......

我们在输出函数的接口那里加了串口调试信息,在监控录像出现异常点时,串口调试信息确实没有让输出执行这个输出动作的。

所以,应该不是软件的问题,硬件的问题可能性稍微大一些......

出0入85汤圆

发表于 2013-7-17 12:19:03 | 显示全部楼层
哦,这样啊,如果外接锁存就要注意了,注意空闲状态了锁存信号的电平,防止干扰意外的造成锁存信号从而形成误动作,另外试着给这个锁存信号线增加下驱动能力

出0入0汤圆

发表于 2013-7-17 12:23:46 | 显示全部楼层
另外还要仔细考虑芯片之间接口电平之间的匹配。另外再搜索“总线竞争”看看

出0入0汤圆

发表于 2013-7-17 12:30:22 | 显示全部楼层
估计是你的电路受到EMI的干扰导致形成的。你在你的马达和电机这些要处理好干扰的屏蔽处理, 传感器信号线你必须要包屏蔽层,电机的电源线你需要接磁环做滤波处理,电机的电源端子需要用电容接外壳滤波处理,你板子的电源部分最好用磁珠或者多孔砖做滤波处理。

出0入0汤圆

发表于 2013-7-17 12:32:10 | 显示全部楼层
用的什么编程,可能程序有问题

出0入0汤圆

发表于 2013-7-17 12:37:07 | 显示全部楼层
要求高可靠性的设备上,一般不会用到总线开放的片子的,总线开放会带来很多意想不到的问题。

出0入0汤圆

发表于 2013-7-17 12:40:07 | 显示全部楼层
如果是CPU板上的问题,74HC573应该是被CPU操作了 —— 只不过此操作并非程序有意为之,估计还是程序什么地方有 BUG !

出0入0汤圆

发表于 2013-7-17 12:42:57 | 显示全部楼层
xjmlfm1 发表于 2013-7-17 12:37
要求高可靠性的设备上,一般不会用到总线开放的片子的,总线开放会带来很多意想不到的问题。 ...

不能同意你的观点,PLC能驱动那么多点,没有总线难道都靠CPU的IO去控制?也没见有什么问题么

出0入0汤圆

发表于 2013-7-17 12:46:59 | 显示全部楼层
会不会问题出在PCB上面?

出0入0汤圆

发表于 2013-7-17 12:51:52 | 显示全部楼层
大概看了一下你的电路在附件的电路上你最好做下处理  你做的LC滤波器在达到你的lc谐振点时你的这里会出现峰化现象,然而这个锋化尖峰干扰是个致命的干扰,你可以用示波器或者频谱仪观察得到这个点的锋化现象。串一个几欧的电阻后就能抑制锋化现象。

大多的干扰肯定来自你的电机部分。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2013-7-17 12:54:16 | 显示全部楼层
AVR本身抗干扰能力还是很强大的,曾经用到高干扰场合。没出过问题。                                                                  

出0入0汤圆

 楼主| 发表于 2013-7-17 13:05:04 | 显示全部楼层
CPU的Datasheet上要求不要用74HC573,推荐用74AHC573,那配套的74hc138和74hc00是不是也要上个高速性能的IC呢?下午去趟华强北,搞点74AHC138和74AHC00回来换上,死马当活马医了,哎,试一下......

出0入0汤圆

 楼主| 发表于 2013-7-17 13:06:13 | 显示全部楼层
Wxy8030 发表于 2013-7-17 12:40
如果是CPU板上的问题,74HC573应该是被CPU操作了 —— 只不过此操作并非程序有意为之,估计还是程序什么地 ...

这个不好说,真的不好说,因为程序是另外一个小伙子写的,但是整体的底层框架是我提供的,应该还好,我再查查!我怀疑的还是硬件问题居多......

出0入0汤圆

发表于 2013-7-17 13:13:02 | 显示全部楼层
用排除法,你说的出错没说清楚,去掉强干扰源的设备实验看看会有无问题

出0入0汤圆

 楼主| 发表于 2013-7-17 13:14:32 | 显示全部楼层
wbq_88@126.com 发表于 2013-7-17 12:30
估计是你的电路受到EMI的干扰导致形成的。你在你的马达和电机这些要处理好干扰的屏蔽处理, 传感器信号线你 ...

wbq_88@126.com 说的是,不过设备中这个模块只有一个伺服和一个步进,8个直流电机,比其他模块伺服和步进还少,单就是这个模块出问题......

之前这边的直流马达输出都是两芯线直接拉过去的,还没有搞屏蔽线,看来要找点屏蔽线试试了...

对看不见的EMI没什么经验呀,郁闷,向前辈学习!

出0入0汤圆

发表于 2013-7-17 13:22:51 | 显示全部楼层
本帖最后由 alias 于 2013-7-17 13:27 编辑

要真正明白原因,就要使用逻辑分析仪,设定为输出异常触发,把触发点设在缓冲记存的 90%。

出0入0汤圆

发表于 2013-7-17 13:24:49 | 显示全部楼层
怀疑程序是不是有bug,比如原子操作,逻辑临界状态?
串口打印调试信息或许监控不到呢,用外部的监控方式监控输出看看。。。

出0入0汤圆

 楼主| 发表于 2013-7-17 14:50:11 | 显示全部楼层
wbq_88@126.com 发表于 2013-7-17 12:30
估计是你的电路受到EMI的干扰导致形成的。你在你的马达和电机这些要处理好干扰的屏蔽处理, 传感器信号线你 ...

让小伙子拿着手电钻和砂轮机,和设备供一个排插,在控制板前猛转,没事 ,我倒是希望这个异常现象能频发一下,可惜经常一搞就是几个小时才出现一次,太耗时间捕捉了,哎~~~

出0入0汤圆

发表于 2013-7-17 14:58:50 | 显示全部楼层
关于M128总线上挂的数字器件 ,我说说以前做的一个板子,
1.总线输出开关信号,用的74HC273,WR和地址线连接到74HC02输入上,74HC02的输出作为273的输出时钟;
2.读取器件的是74HC245,地址线接OE,RD接DIR引脚。
没有用138来作为地址译码,直接PC0~PC7作为片选引脚使用,所以器件地址和138的就不一样了。
单片机时钟是14.7456MHz,设备已经出货几百台了,前后也三年了,没有出现个总线部分问题。

建议楼主在M128的总线操作上,读 / 写操作插入两个等待周期。输出新地址之前还要插入一个等待周期。反正是开关量操作,一点点的时间延迟也无所谓。

楼主加强一下控制器的硬件设计,在抗干扰性上多下下功夫。

出0入0汤圆

 楼主| 发表于 2013-7-17 15:10:21 | 显示全部楼层
marshallemon 发表于 2013-7-17 12:19
哦,这样啊,如果外接锁存就要注意了,注意空闲状态了锁存信号的电平,防止干扰意外的造成锁存信号从而形成 ...

数据线、地址线和RD/WR等线是否有必要加上拉电阻增强驱动能力呢?我们做技术的总监建议加上拉电阻。加上拉电阻要加20来个,需要重新布一版PCB了,但是还怕有其他的问题...

出0入0汤圆

 楼主| 发表于 2013-7-17 15:34:08 | 显示全部楼层
erxun 发表于 2013-7-17 14:58
关于M128总线上挂的数字器件 ,我说说以前做的一个板子,
1.总线输出开关信号,用的74HC273,WR和地址线连 ...

刚查了下程序,SRWn1和SRWn0均配置成了1,确实是读/写操作插入两个等待周期,输出新地址之前还要插入一个等待周期。

这个慢一点不会影响程序控制的,但是多一些时序余量,对电路要求稍微低一些。



刚仔细分析了一下逻辑,貌似还是能走得通,看来还是好好好算一下时序余量够不够。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2013-7-17 15:48:37 | 显示全部楼层
erxun 发表于 2013-7-17 14:58
关于M128总线上挂的数字器件 ,我说说以前做的一个板子,
1.总线输出开关信号,用的74HC273,WR和地址线连 ...

erxun,你用的74HC273,这个是上升沿锁存,锁存的信号是地址和WR通过74HC02(或非门)出来,那么应该是地址线为低且WR为低时,数据线被锁存进74HC273。看楼上的AVR单片机外部总线时序图,应该在WR的下降沿,AVR的数据线被锁存到指定的74HC273了。

而我用的是74HC573,这个是高电平直通,低电平不通,也可以74HC573是下降沿锁存,74HC573的锁存信号是138译码(低有效)输出取反(自己和自己进74HC00与非)输出。经分析应该是在WR的上升沿,AVR的数据线被锁存到指定的74HC573,理论上来说,我这个时序余量比你的应该更多才对......

哎,不知道为什么你的稳定性这么好,我也要查一下PCB的问题了......

出0入85汤圆

发表于 2013-7-17 17:06:51 | 显示全部楼层
本帖最后由 marshallemon 于 2013-7-17 17:09 编辑
roken2000 发表于 2013-7-17 15:10
数据线、地址线和RD/WR等线是否有必要加上拉电阻增强驱动能力呢?我们做技术的总监建议加上拉电阻。加上 ...


值得一试,数据地址线先不加,只把控制信号线先加上上拉测试,我看你用的是HC系列的片子,你考虑扇出系数了吗?如果你操作的速度不是太快,有没有考虑过使用LS系列的试试

出0入0汤圆

 楼主| 发表于 2013-7-17 17:25:20 | 显示全部楼层
marshallemon 发表于 2013-7-17 17:06
值得一试,数据地址线先不加,只把控制信号线先加上上拉测试,我看你用的是HC系列的片子,你考虑扇出系数 ...


总线上只挂接了3路74AHC573,5路74HC245,其中74HC245是输入到CPU总线的,会算作CPU的扇出吗?如果不算的话,只扇出3路74AHC573,应该能力够吧?

出0入0汤圆

 楼主| 发表于 2013-7-17 17:27:06 | 显示全部楼层
本帖最后由 roken2000 于 2013-7-17 18:12 编辑

另外一个前辈建议不要用WR和RD引入74HC138,用CPU的ALE来代替这两个信号进74HC138,然后RD和WR来去接245和574......

但是我只用了高8位地址线中的3位来做译码,请问各位,我有必要用ALE信号吗?

出0入85汤圆

发表于 2013-7-17 18:24:47 | 显示全部楼层
roken2000 发表于 2013-7-17 17:25
总线上只挂接了3路74AHC573,5路74HC245,其中74HC245是输入到CPU总线的,会算作CPU的扇出吗?如果不算的 ...

这样来说貌似也没啥问题,先把控制线加上拉试试再说吧
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-26 22:13

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表