在做硬件设计的时候,按键是最常见的模块之一,也是学硬件的人入坑接触的第一二个实例。
人手在按下按键的时候会有一定频率的抖动,反映在按下和释放的上升下降沿会有信号的反复跳动,如下示意图。单片机在识别IO信号的时候,经常会根据前后电平值来判断是否有跳变,如果在单片机的采样窗口内连续出现反复多次的高低电平,就会影响单片机的判断,采集到多次高低电平信号。不仅是人手主动按,不小心碰到按键也是会存在一定几率的抖动信号,可能导致误触。
不过成熟、高可靠性的按键设计一定不是只有按键,通常我们会看到有并联电容,用来消除按键抖动。抖动不消除会有一定几率造成产品的不良影响,比如按键失灵、响应错误、误触等。
既然电容可以消除抖动,那消抖电容的容值是怎么选的。
首先电容在这里的作用是滤波的,那么滤除什么频率的波就是我们需要考虑的因素了。通过查阅资料,按键抖动的频率一般在100Hz以内,抖动的时间经验值通常在5~10ms,即在这个时间内通常会有多次的跳变信号。
电容两端的电压是不能突变的,充电和放电都会有一个过程,如上图。因此在出现抖动的时候,电容会使其两端的电压缓慢变化,只要在其充放电时间内,抖动能够结束,就能有效消除掉抖动。
也就是说,根据充放电的时间计算,通常选择0.01uF~1uF的电容,就能够消除大部分机械按键的抖动。
相对应的,在产品设计时,软件层面也会做消抖,程序会考虑在第一次接收到电平跳变后delay10ms左右再次做检测,这样也能有效避免误检测。
全部0条评论
快来发表一下你的评论吧 !