消除抖动电路

欢迎回到Digilent博客!

按钮是敏感电路内部问题的一个固有来源。理想情况下,我们倾向于认为,当一个按钮被按下时,它要么被“按下”,要么被“未按下”,没有任何有趣的事情发生。不幸的是,由于按钮是一种机械组件,所以缺少有趣的业务是不可能的。

机械按钮和开关都存在固有的弹跳问题。这种现象就像它听起来的那样:在改变状态之后(从on到off或反之),组件会经历少量的文字弹跳。当物理材料振动时,输出的电压水平受到影响,导致从on到off的过渡边缘不像我们希望的那样干净。各种微控制器和fpga的速度足够快,可以捕捉到开关状态时在几百微秒内发生的一些波动。

系统板将能够在实际变化发生之前捕获一些波动。黄线为按钮电压状态,蓝线为被测数字逻辑读数。从图片learn.blog.digilentinc.com

如果弹跳有足够大的变化,系统板可能将其解释为额外的按钮按下,这对某些类型的程序是有害的。幸运的是,我们可以通过实现一种称为debounce的方法来缓解这个问题。有许多潜在的方法可以同时通过这两种方式使电路衰减推迟软件一个图书馆,或者硬件通过类似于555定时器,但我要讲的是使用RC电路。

RC电路利用一个电阻和一个电容来“平滑”电压变化。当按钮被按下时,电容器储存能量,然后当按钮被释放时,缓慢释放能量。电阻的作用是限制电路中流过的电流,有效地改变时间常数τ, τ。当τ值越大时(τ = R * C),对应的电阻和电容也越大,则表明电容器充电或放电的时间越长。在实际意义上,tau值越大,表明任何发生的过渡将在较长一段时间内变得平滑。

这是示波器上按下按钮的样子,但如果我们把它放大,就不那么清晰了learn.blog.digilentinc.com
当一个按钮被释放时,一个放大的视图实际上发生了什么。从图片learn.blog.digilentinc.com
当我们在电路中添加RC滤波器后,按钮按下波形的过渡就更加平滑了。从图片learn.blog.digilentinc.com

虽然这些看起来都很好,理论上也很有帮助,但熊市何时会在我们的生活中真正发挥作用呢?一个例子是当你按电视遥控器上的按钮时。没有人愿意在按了静音键后,电视变成了静音状态,然后又因为键弹开而自动取消静音,这样在你拿遥控器的时候就很尴尬了。这就是熊市可以拯救世界的地方。通过调整电阻器和电容值,我们可以确保这些变化只会在适当的时间内得到缓解,这样玩家就可以连续多次按下按钮,而不会错过任何有意的转换。

0
第一个投票。

关于詹姆斯·科尔文

我最喜欢的事情就是学习新东西。特别是涉及某些技术的事情;电脑组件、有趣的小工具、游戏、编码技术等。我喜欢和我的妻子和两个儿子在一起,也喜欢和朋友们在一起。在我的日常工作中,我管理Digilent论坛和北美支持团队。

查看所有由James Colvin→发布的帖子

2评“debabonds Circuits”

  1. 我不确定我会推荐这条路线。将模拟电压输入到数字CMOS输入会消耗过多的电流(因为在某些电压下,pmos和nmos晶体管都会激活,有效地造成短路)。数字市场很容易崩溃。

  2. 你好卡尔,

    感谢您对一些更深层次问题的反馈和见解。我没有触及这个因为我假定系统板的上半部分和下半部分将提供电压范围的RC电路以及按钮,将安全电压范围内(理想情况下),输入密码芯片上可以接受,比如0 v, 3.3 v之间。

    你认为哪个电压会导致上述的短?

    谢谢,
    詹姆斯·科尔文

留下一个回复

您的电子邮件地址将不会被公布。必填字段被标记