关于您的原理图:
一切看起来都很好,你可以将R2增加到10k甚至100k,MOST的电容很小,FAN的旋转惯性比MOST的关闭延迟要大得多,甚至可能有1M。这样你的 100R 的位置就无关紧要了,而且你不会浪费任何 mA。如果您从不将 de uC 置于复位状态,从技术上讲甚至根本不需要,因为您的 uC 会主动将其拉高或拉低。
对于 PWM 信号,您可以查看数据表是否允许外部上拉至 12V,尽管我怀疑这两种方式都会产生很大的不同。
关于噪音:
编辑:我误读了你的千赫图,如果你想到它,那是愚蠢的,它是赫兹。我的一些故事会发生一些变化(例如关于数字工作需要 MHz 的讨论),但总体思路仍然存在。
我将保留整个帖子,但是对于具有 30kHz 噪声的 100Hz 信号,而不是具有 >5MHz 噪声的 100kHz(也没有真正意义,是吗?),您可能会增加与电容器相互作用的电阻器增加 10 倍,并将电容器增加 50 至 100 倍。在所有示例中,这将使您的滤波频率降低 1000 倍。但也可以将电容器增加 10 到 20 倍,以获得更锐利的边缘或更快的响应信号,因为 30kHz 与 100Hz 相差甚远。
所以考虑这篇文章是为高频而写的,并缩小这些想法,使它们更容易实现!(尤其是 3 中的数字拒绝。)
编辑结束
由于您通过降噪方法制作了一个很好的用例,我将尝试制作一个适用于您的情况的用例。
对于任何阅读的人,请注意:
这仅与数字信号上的噪声有关
在数字信号中,您可以假设只有两个电压您对“开”和“关”感兴趣。介于两者之间的任何事情都是毫无意义的,属于噪音或错误。在模拟信号中,您需要了解每个电压电平,并且需要对负载 C、L 等进行一些实际滤波。
信号中的一个问题是高电平的负噪声尖峰和低电平的正噪声尖峰非常接近,所以一个简单的标准触发器,即使是可调电平也不能绝对保证你永远不会得到使困惑。
您的选择:
- 改变偏见
- 更改电压电平
- 添加“慢”滞后
- 过滤掉噪音
1. 改变偏见:
正面有非常低的负面尖峰,那是因为你的引体向上无法从噪音中获胜。您可以尝试的最简单的方法是降低阻力。存在这样的风险,这只会增加关闭信号的尖峰,因此这可能并不总是有效。但是很有可能它会给你一些尖峰之间的空间来设置一个简单的滞后。
2. 改变电压等级
如果风扇允许,您可以轻松地将 Tacho 更改为更高的电压电平并添加中间状态:
模拟此电路- 使用CircuitLab创建的原理图
现在,高尖峰和低尖峰之间可能有足够的空间来确保 MOST 始终开启,即使存在负尖峰并且始终关闭,即使存在正尖峰也是如此。在新情况下可能需要一些二极管、齐纳二极管或电阻器才能获得设定点,但如果负信号上的尖峰保持不变,它们不应该触发 MOSFET,只要你不将其替换为栅极阈值低于 2V 的器件。
3.添加“慢”滞后:
当您知道尖峰噪声信号至少比您感兴趣的信号大一个数量级时,这是一种常用的技巧。它会稍微延迟信号,因此不能在精确时刻的情况下使用开/关变化很重要。
但是对于您只想知道它的形状或频率的信号,这是一种非常稳健的方法。它基本上在电压超过阈值时开始触发,但只有在它停留在那里时才会完成该动作。有很多方法可以构建一个。
您可以在控制器中执行此操作(这在组件计数方面最简单):您可以在侧面触发,然后以足够的速度采样更多的值以查看噪声尖峰之间的高点,但不要因为错过整个低点而感到困惑。然后根据对信号和噪声的了解做出预定义的判断。例如,如果您可以在 10MHz 采样,您可以捕获 50 个采样并确保如果您采用多数规则,则不会忽略 100kHz 的最高频率。即:至少需要 25 低才能使其实际低。您的尖峰非常细,而且大部分时间都是原始信号,因此可以正常工作,但是可以调整多数的数量。这也适用于 1MHz 和 6 或 7 个样本,但它不会占实际多数,因此那里可能再次存在一些风险。
您也可以在外部执行此操作:
但它已经比添加简单过滤器复杂得多,尤其是当您使用 uC 查看结果时,其输入中已经存在一些滞后。但是想想很有趣,所以让我们:
模拟这个电路
U1 是任何合适的运算放大器或比较器。比较器是更好的切换器,通常具有更好的摆幅,但对于 sub-MHz,具有不错的轨/轨摆幅的运算放大器将很容易做到。
虽然这种类型的滞后可以用至少一个电阻来构建,但这种滞后更容易解释,因此更容易修改。
首先想象一下没有电容器的情况:
首先,看到电阻分压器受 U1 输出的影响,它会通过 20kOhm 的视在电阻将其拉低或高一点。假设U1的正输入是1.1V的电压,输出为0时向下取整,输出为5V时向上取整为3.9V。
如果稳态启动转速计输入为高电平,由于转速计输入的反相特性,U1 的输出将为低电平。因此,由于额外的上拉电阻,负输入将约为 2.3V。由于正输入仅为 1.1V,因此输入需要降至 2.2V 以下,以使负输入看到较低的电压并使输出翻转。
当输出翻转时,负输入会看到3.6V(因为此时输入信号是2.2V,U1的输出是5V,所以它们的中间,由10k电阻制成约3.6V),但正输入将从 1.1V 翻转到 3.9V,因此负极仍低于正极输入,输出将保持 5V。
如果信号现在迅速“中止”并重新翻转,U1 的输出将很快再次恢复,但尖峰已经下降到 2.2V 以下,所以这总比没有好。
如果信号进一步下降到 0,稳定的情况只会变得更强,负输入将下降到 2.5V(因为我们假设 FAN 的转速计足够强,可以下拉),正输入将保持在 3.9 左右五。
现在信号需要升高到 2.7V 以上才能使输出反向翻转。很可能 95% 的峰值已经被忽略了。
添加电容:
使用电容器,输入信号需要提供足够的能量,以便有足够的时间对电容器进行充电或放电。实际上,这已经是一个 RC 过滤器。任何快速下降然后恢复的尖峰都无法使电容器放电。
C 的值当然取决于源信号和噪声信号。对于 100kHz 源信号与 1us 尖峰持续时间,我将球停在 510pF 上,但我并没有真正做太多的数学运算,这只是基于 RC 时间的直觉,这可能接近可行的方法。
4.过滤掉噪音
这有点像过滤模拟信号。您可以使用简单的 RC 网络,如上一节所述:
模拟这个电路
由于噪声尖峰等于或小于 1us,它们不会对电容器上的电压产生非常显着的变化,因为其 RC 时间为 5us。这意味着尖峰中的能量被拉平到平均水平。由于您看到尖峰的高点和低点,平均值甚至可能非常接近 0V 和 5V,但这只能通过更好的图片或实验来说明。由于您将其馈送到 uC 引脚,因此 RC 时间可能足以将其视为高电平或低电平。由于上拉电阻引起的充电慢于放电,这将产生小的失真。对值进行一些调整可能会产生可以忽略不计的结果。
如果这还不够,您可以添加更多组件,但是当您的主要噪声比您的信号“快”至少 10 倍时,您很快就会过度使用它。
您可以添加一个与电阻串联的 4.7uH 电感器,以平滑更多高频侧翼,甚至可能是 10uH。
但老实说,在“将其馈送到 uC”的情况下,在您的信号中尝试 L 的唯一原因是找到一个平衡,其中 R 大,C 小,L 只是有助于平滑一些侧面,因此 R2/R1 将足够小以忽略上升和下降时间的差异。例如 33k 的 R1、150pF 的 C 和与 56uH 的 R1 串联的 L。或者可能是铁氧体磁珠而不是电感器,这在一定程度上取决于尖峰的锐度。
但我会说,我已经想多了。