Board logo

标题: 请问在FPGA中如何消除机械开关造成的脉冲抖动? [打印本页]

作者: xbao    时间: 2006-8-18 11:07     标题: 请问在FPGA中如何消除机械开关造成的脉冲抖动?

请问在FPGA中如何消除机械开关造成的脉冲抖动?

有一个按钮接到FPGA的一个引脚上,理想情况是:按钮被按下一次产生一个很纯净的脉冲,但实际情况是:当手按下按钮时,会由于抖动产生一个稳定脉冲和许多窄的脉冲,现在就是想将窄脉冲滤掉,只取稳定脉冲。


如果用VHDL语言,能否实现呢?谢谢各位了 !


作者: stone133    时间: 2006-9-2 10:51

可以实现,消抖电路是一种比较典型的电路,他完成两个作用:按钮按下一次只产生一个脉冲,并且脉冲的宽度是固定的(一般是一个时钟周期的宽度);
做一个计数器,检测到按钮被按下后开始计数,如果在一段时间内(大概几十个毫秒)这个按钮还处于按下的状态,说明确实有按钮按下,就可以产生一个高电平,将这个高电平延时一个时钟周期并取反再与未延时的相与,就可以得到一个时钟周期的宽度的脉冲了;
作者: anotherchen    时间: 2006-9-2 12:01

外部电路也可以加大电容滤滤波吧
作者: stone133    时间: 2006-9-3 18:19

外围电路也有消抖电路,一般是一个双稳态触发器;
如果用软件(单片机或者fpga)来做这个工作,一般的方法就是延时然后再检测,这个实际上是根据工程上的经验来的,因为人按键的速度是有个极限的,而且有一个范围,如果延时调整的好,绝大多数抖动都能够消除
作者: newbeesile    时间: 2006-9-4 11:15

ISE language template里有典型的消抖电路
作者: xbao    时间: 2006-9-4 11:32

谢谢楼上的朋友们!!




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0