首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

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

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

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

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


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

可以实现,消抖电路是一种比较典型的电路,他完成两个作用:按钮按下一次只产生一个脉冲,并且脉冲的宽度是固定的(一般是一个时钟周期的宽度);
做一个计数器,检测到按钮被按下后开始计数,如果在一段时间内(大概几十个毫秒)这个按钮还处于按下的状态,说明确实有按钮按下,就可以产生一个高电平,将这个高电平延时一个时钟周期并取反再与未延时的相与,就可以得到一个时钟周期的宽度的脉冲了;
美梦成真-->噩梦降临!
外部电路也可以加大电容滤滤波吧
╔☆→────────────────←☆╗
┊寻觅在电子中, , , 寻求适合自己的一席┊┊┊┊
┊也许生活本忙碌,  想享受安逸只能是心态了吧┊
╚☆→────────────────←☆╝      &
外围电路也有消抖电路,一般是一个双稳态触发器;
如果用软件(单片机或者fpga)来做这个工作,一般的方法就是延时然后再检测,这个实际上是根据工程上的经验来的,因为人按键的速度是有个极限的,而且有一个范围,如果延时调整的好,绝大多数抖动都能够消除
美梦成真-->噩梦降临!
ISE language template里有典型的消抖电路
谢谢楼上的朋友们!!
返回列表