flying_xhua
驱动牛犊
驱动牛犊
  • 注册日期2004-07-07
  • 最后登录2006-08-20
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
阅读:2958回复:7

请教如何消除CPLD输出信号严重的毛刺干扰

楼主#
更多 发布于:2004-07-07 17:08
    我采用的是LATTICE公司的IM4A5-128/64和WINBOND的W78E58单片机设计一个32位频率计。IM4A5用来计数,当计数完成后,反馈一个信号给W78E58的中断口,用来确定开始读取计数结果及显示。现在此反馈信号有着严重的毛刺干扰,由于单片机采用的是下降沿触发,因此程序一上电就被毛刺干扰,进入了中断,程序不能正常运行。已经测过,工作电源正常。当IM4A5的反馈信号输出脚悬空时,问题仍然存在,因此个人认为是CPLD这一块电路的问题。
    请教个位大侠,如何消除此干扰,采取软件方面的措施还是硬件方面的措施。
    不胜感谢。
winter
驱动小牛
驱动小牛
  • 注册日期2001-03-23
  • 最后登录2013-08-15
  • 粉丝4
  • 关注0
  • 积分5分
  • 威望40点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-07-08 10:51
不太明白你说的毛刺是什么东西
一般来讲数字器件是不会由于其它设备的干扰产生毛刺的
你凭什么判断是毛刺呢?

你问的比较胡涂,我也胡涂的回答一下,看能不能解决你的问题
使用CPLD生成计数器一般会产生毛刺(格雷码除外),所以你要避免在毛刺产生的地方进行判断操作。具体办法你可以查查网上关于消除毛刺的办法,很多的。
请原谅我的无知与直率
flying_xhua
驱动牛犊
驱动牛犊
  • 注册日期2004-07-07
  • 最后登录2006-08-20
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-07-08 15:10
    不好意思,是我说得不够清楚。其实这程序说起来也很简单。主要是由单片机提供一个CL信号(高电平)给CPLD,控制CPLD开始计数。CPLD接收到CL(高电平)信号后,内部经过一个D触发器,输出一个START(高电平)信号给单片机(中断口),标示计数开始。计数过程中START应保持高电平。经过一定时间后,单片机把CL信号置低电平,CPLD接收到CL(低电平)信号后,经过D触发器,输出START(低电平)信号给单片机,标示计数结束。
    现在问题是在START保持高电平的过程中,会出现很多的突然之间的下跳沿,不能保持稳定的高电平。
    理论上本应很简单,此程序也在MAXPLUSII中做过波形仿真,START波形正常,但实际工作时却有非常多的下跳沿出现,实在想不通。希望各位前辈高人不吝指教,非常感谢。
winter
驱动小牛
驱动小牛
  • 注册日期2001-03-23
  • 最后登录2013-08-15
  • 粉丝4
  • 关注0
  • 积分5分
  • 威望40点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-07-09 12:39
你的计数器是用CPLD实现的吧,当计数器的数值达到你想要的数值时就将START复位,是这样吧。这在实现的过程中应该用到了一个比较,你应该将这个比较的结果做半个时钟周期的延时。要是还有问题先把你的源程序传上来把
请原谅我的无知与直率
flying_xhua
驱动牛犊
驱动牛犊
  • 注册日期2004-07-07
  • 最后登录2006-08-20
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-07-09 16:45
   原理大致上如你所说。CPLD有两个时钟频率输入,一个50M的标准频率,及一个待测频率。在一定的时间内对两个输入频率进行计数,计数后的结果送单片机进行比较处理。START信号就是CPLD计数结束后给单片机,通知单片机读取计数结果,下跳沿有效。
   我已把源程序发邮件给你了,你方便的话可查收一下。由于格式问题,可能不是很方便读。若是不介意,你可把邮箱地址发给我,我再把源程序以附件形式发给你。再次表示感谢。
chxg
驱动牛犊
驱动牛犊
  • 注册日期2001-07-14
  • 最后登录2010-04-29
  • 粉丝0
  • 关注0
  • 积分-9分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-07-10 15:29
这种毛刺一般都是竞争冒险产生的,尤其是输出的时候没有经过flip-flop 或者经过ff 但是ff的时钟信号不干净造成的
flying_xhua
驱动牛犊
驱动牛犊
  • 注册日期2004-07-07
  • 最后登录2006-08-20
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-07-11 12:33
那由竞争冒险所产生的毛刺,在波形的软件仿真阶段能不能看出来,还是只能在硬件运行的时候才能看出来?我在输出的时候加了一个D触发器,而不是双稳触发器。而且我这D触发器的时钟信号是由印制板上MAX038产生的,会不会有影响?虽然我用示波器观察过,波形还是比较好的。
luorenfei
驱动小牛
驱动小牛
  • 注册日期2003-02-17
  • 最后登录2006-11-30
  • 粉丝0
  • 关注0
  • 积分55分
  • 威望6点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-07-19 12:05
由竞争冒险所产生的毛刺,在波形的软件仿真阶段能看出来,着取决于你的仿真方式,如果你的仿真方案包含了所有的可能情况,那就可以看到了。
你的问题可能是输入cpld的cl信号有毛刺。即单片机有问题,而且你提到“当IM4A5的反馈信号输出脚悬空时,问题仍然存在”既然cpld的输出已经悬空,单片机还是不能正常工作,你应该查查单片机的问题!!!1

游客

返回顶部