简介
开关的金属触点在断开闭合的过程中产生了多个信号,消抖就是保证只有一个信号起到作用。这样的小抖动不像快脉冲一样造成市电上的其他设备出现故障。但是会导致模拟电路快速翻转的数字信号电路出现故障。
便宜的电脑键盘通常使用导电橡胶制成的薄膜触点,软橡胶和金属触点接触后,橡胶起到接触缓冲,因而不会出现抖动信号,这是硬件机械消抖的一个例子。
- RC消抖
最常见最容易实现的消抖电路,电阻电容串起来并联到开关上起到缓解电压变换的作用。下图电路容易出现一个问题,就是快速开关的时候可能误以为是抖动而消除,导致开关不动作。
2.在上述基础上加一个逻辑门电路(施密特触发器)构成一个滞回工作曲线:开启阈值比关闭阈值要高
3.在上述结构生在加一个二极管
4.使用两个与非门制作交叉耦合闩,或者使用RS触发器,在开关触点悬空的时候状态保持上一个触点的状态。除非开关抖动的状况是在两个触点反复横跳,否则所有的抖动都会消除。
5.软件延时400-500ms
6.中断延时消抖
7.计数器延时消抖
消抖指南
注意事项:
- 与消抖相关的CPU开销应当最小化
- 避免多次触发中断,从而导致增加cpu开销
- 中断程序保证快速
- 开关输入的取样频率不应当与外界事件同步或者接近同频,否则就回硬气EMI,例如同市电50Hz保持一样的采样频率,对于汽车而言甚至机械振动的同步频率都会导致EMI
- 系统应当对开关输入立即响应,避免出现人机交互延迟等待的状况(使用体验)
- 使用定时器间隔查询消抖,方便移植
多开关消抖
使用专门的消抖芯片:美信maxim的MAX6818等