原创 被干扰的状态机

2009-8-5 14:35 4494 10 14 分类: FPGA/CPLD

    一直以为CPLD不会被干扰,一直相信在CPLD上只要验证通过就绝对不会出现在现场不稳定,当机器出现问题时我还一直在困惑,之前测试蛮好的机器,为什么会一到生产就不行了呢,而且现像是那样的莫名其妙。


     其实CPLD完成的功能很简单,输入二组开关,控制二路电机,在四个状态之间转换;其中有一路开关优先级最高,只要开关动作,必有一路电机启动,且至少连续工作5秒,在这5秒内没有任何条件能改变它的运行状态,可现在出现的问题是开关动作,电机启动然后又马上停了,有时干脆就启不动,怀疑电机驱动电路有问题,于是拔掉电机测量从CPLD输出的驱动信号,发现正常,于是在带电状态下接上电机,电机动作一下立即就停止了,再用表测量CPLD引脚的驱动信号,发现没有了。俺范迷糊了,咋回事呢!


   接下来的事情就更怪了,俺怀疑有可能是板上CPLD或其它元件有虚焊之嫌疑,于是乎把控制板拆下来,把各个引脚全部检查了一番,并把自认为有嫌疑的地方通通补焊了一遍,再通电,电机启动了!俺那个高兴啊,心想还寻思着,就说嘛,这个产品俺做第一台的时候测试了好久的,而且出过几台的货都没出现这个问题,怎么可能会有问题呢,于是我就多操作了几下,突然发现不对了,电机不停了,且另外一电机在呈周期性的转动,且每几次操作的结果都不一样,俺硬是扎扎实实试了30分钟都没找出规律,俺再次范迷糊,换了几块控制板试出的结果都是一致,于是回到办公室打开电脑里的程序,看看是否程序中存在BUG。


     程序中找不到可疑之处,我便将电机拔掉,直接用万用表来监测CPLD各引脚驱动信号 ,在一轮连续的测试下,发现都正常,没有出现状态跑飞的状态。


    莫非电机干扰CPLD运行了!


   为了证实CPLD是否真的被电机干扰了,于是我将状态机时钟信号通过CPLD引脚输出,用示波器测量该时钟信号波形,发现电机在不工作的时候,波形良好,电机一工作,波形便开始据烈的抖动。看来果真是这样,状态机被干扰了。


     后来换了一台电机,机器正常。


    俺扭了扭酸痛的腰,看着这折磨了俺一天的电机,还是想不明白,这电机怎么了,竞有如此大能耐.........


   

文章评论4条评论)

登录后参与讨论

用户1278632 2009-8-12 15:17

俺也搞不清是怎么回事,只知道换一台电机就行了 有干扰的电机转速很慢,20000转/分的电机只有7000多转,而且轴很没力手都能抓死 不过想想,CPLD被干扰的问题还是没有解决

用户1278632 2009-8-7 11:18

re:captainliuy 控制部分是做了隔离的 我想干扰来源应该是来自于空间幅射。 re:riple 如果出现的问题有些不同寻常,则要考虑是否是逻辑器件或CPU被干扰了,单片机还可以通过程序输出到终端来判断,而CPLD则是将内部敏感信号输出用示波器监测合适。

ash_riple_768180695 2009-8-6 09:04

强电确实厉害,俺也碰到过被强电干扰的问题。不过不是CPLD,也不是电机。是一个单片机,被一个110v高压直流照明灯干扰。当时由于电路设计错误,单片机上电复位状态是开启照明灯,然后程序立刻关闭照明灯。结果表现为上电后照明灯反复开启、关闭。后来发现,是照明灯的一根电源线离单片机控制板过近(4-5个厘米),单片机在上电复位过程中把照明灯点亮,然后程序把灯关闭,这一过程会产生瞬间的电磁干扰,造成单片机“跑飞”,“喂狗”失败。1.7s后外部的“看门狗”重新复位单片机,上述过程重新启动,如此反复循环。后来把那根悬空的电源线拉远了固定在机壳的远端,问题就解决了。

用户142112 2009-8-5 20:52

可能需要隔离吧

用户195098 2009-6-25 18:37

最早的时候是看他的“红拂夜奔”,电子版的,爆笑不止,很有趣。但同时也很发人深思。确实是好书。欢迎huangna常来逛逛。

用户1584993 2009-6-25 18:16

谢谢你提供的参考,虽然看他的书看的很少,但是感觉还不错

用户195098 2009-6-25 00:09

这是今天在淘宝上偶然看到的。现在市面上王小波作品的版本太多,虽然喜欢看,但总怕买错了。这个帖子倒是提供了一些参考。
相关推荐阅读
用户1278632 2011-09-15 12:49
解决FPGA配置成功,但不能初始化运行的BUG
摘要:    遇到两次FPGA配置完成,却不能正常运行的问题,一次是ALTERA的A1C3,另一次是XILINX的XC3S700A。两次都是DONE信号的问题。问题虽不大,但却很折腾人,今天在这里作下...
用户1278632 2011-09-15 12:41
Code Edit的神器UltraEdit
摘要:      我不是一个专职的程序员,但经常会要写一些单片机底层的code和hdl code,起初用UE,是因为查找和批量修改很方便,而且不会额外的生成一些“垃圾”文件;现在用UE三年多了,一直都...
用户1278632 2010-12-29 09:29
ISE与EDK联合设计报错 ERROR:NgdBuild:604 logical block
做一个很简单的测试在ISE的SCH里调用EDK的symbol,EDK的功能也很简单,就是CPU通过串品打印一串字符首先,我建一个ISE工程再建一source  sch类型,并设置为顶层,取名为top....
用户1278632 2010-12-22 14:49
EDK12.2中 mch_emc IP的时序问题
mch_emc IP可以将PLB总线时序转为inter 8080时序 下面是我用chipscope抓到的波形Mem_DQ_O_In :  数据输入 Mem_OEN:      读信号  Mem_A: ...
用户1278632 2010-12-22 14:29
xilinx FPGA的配制与应用程序引导-范例
两个Xilinx FPGA应用程序引导的范例1、run_in_flash是直接在NOR FLASH里运行程序2、spi_flash_boot是将BIT和bootloader和APP全部固化到SPI F...
用户1278632 2010-12-19 13:48
EDK下sram IP的使用
EDK软件的memory and memory controller中有一个xps multi-channel external memory controller(sram/flash)的IP,用来...
我要评论
4
10
关闭 站长推荐上一条 /2 下一条