多个串联的施密特触发器可以完全消除开关的抖动吗?

电器工程 开关 按钮 施密特触发器 去抖
2022-02-04 20:09:54

在处理了一段时间的软件去抖动之后,我发现它对系统造成了巨大的损失,所以我最初想用一个施密特触发器(74HC14)、一个电容器、按钮和电阻器来制作一个硬件去抖动器,如下图来自talkelectronics.com :

会说话的电子电路

但是我读到施密特触发器在确定何时输出高电平或低电平时只有普通逆变器的一半,因为它在 33% 和 66% 标记处切换状态,而普通逆变器将切换到更接近 50% 标记(但对于 HC 版本,它可能更高,为 55%)。

我想知道,因为施密特触发器是一个封装中的六个反相器,如果我在右侧使用相同的组件值制作六个电路并连接所有电路,那么我选择的任何按钮应用于第一个输入时,去抖会显着改善它们是串联的吗?(示例:第一个电路的输出到第二个电路的输入,其中电容器和电阻相遇。)

2个回答
多个串联的施密特触发器可以完全消除开关的抖动吗?

前面带有模拟滤波器的单个施密特触发器可用于去抖动。然而,在施密特触发器之后,信号是完全数字的。任何额外的施密特触发器都不会改变这一点。理想情况下,它们会保留信号。

在一个单独的主题上,固件中的去抖动不应该带来太多的负载。通常的方法是在您已经拥有的周期性中断中对开关状态进行采样。当您在 N 个连续样本中看到开关处于该状态时,您将去抖动状态声明为当前开关值。我通常要求开关在 50 个连续 1 毫秒的中断中处于相同状态,以使新状态被认为是有效的。这通常只占整个处理器周期的一小部分。

串联使用施密特触发器不会进一步减少反弹。

考虑过滤器:

施密特触发波形比较

输入是 (U)。红线是 50% 的阈值,其输出被视为信号 (A)。每次输入交叉时它都会反弹。

正如你所说,绿线是 33% 和 66%。但输出 (B) 仅在输入 (U) 从一个绿色阈值越过另一个绿色阈值时切换。

最重要的是,输出要么是全高要么是全低(数字)。因此,如果将施密特触发器的输出馈入另一个触发器的输入,则基本上没有区别。

从上面 (B) 中获取过滤后的输出,并考虑另一个施密特触发器将如何看到它:

施密特触发器与另一个串联

同样,第一个的输出将是 HIGH 或 LOW。因此它会同时越过阈值,从而产生与输入相同的输出。没有什么可以去抖动!如果有的话,我希望它会产生更多的噪音,因为你要引入更多的组件,从而有更多的出错空间。

听起来您可能正在寻找具有可调节阈值的施密特触发器。有些是对称的(例如:33% 和 66%,或 10% 和 90%)。其他是非对称的(例如:33% 和 80%)。您可以使用运算放大器创建自己的。

尝试玩一下我不久前整理的这个模拟: 施密特触发器模拟 - 非反相非对称

施密特触发器模拟 - 非反相非对称