Wie kann man ein verrauschtes Signal bereinigen?

Ich steuere einen 4-Pin-PWM-PC-Lüfter von einem PIC16F684, wobei die Lüftergeschwindigkeit von einem ADC-Messwert eines Näherungssensors gesteuert wird. Das funktioniert alles ok.

Ich hatte ursprünglich nicht vor, den Tachometerausgang des Lüfters zu verwenden, aber da er verfügbar ist, habe ich ihn mit meinem Oszilloskop überwacht, nur um zu sehen, ob meine Zuordnung zwischen Nähe und Lüftergeschwindigkeit funktioniert.

Was mir nun aufgefallen ist, ist, dass das Tachosignal (das ein über einen 10K-Widerstand hochgezogener offener Abfluss ist) schön und sauber ist, wenn die PWM den Lüfter mit 100% betreibt:

tachclean

Wenn ich jedoch mit weniger als 100% laufe, ist es laut:

tachschmutzig

Zoomen Sie auf dieses Geräusch:

tachdirtyzoom

Ich vermute, es wird durch das PWM-Signal beeinflusst, aber ich würde gerne verstehen, warum und wie, damit ich es bei Bedarf in Zukunft bereinigen kann. Mich interessiert wirklich, was Sie tun sollten, wenn Sie solche Geräusche sehen, wie Sie die Ursache finden und wie Sie sie "beheben". Das Oszilloskop schafft es, in Ordnung zu triggern, also frage ich mich, ob ich es einfach an den externen Interrupt-Pin am PIC (RA2) füttere, der ein Schmitt-Trigger-Eingang mit CMOS-Pegeln ist, dann werde ich das Rauschen nicht "sehen" und ich könnte zB ein sauberes Signal aus einem anderen Pin ausgeben, um eine LED oder so etwas zu verblassen.

Kann also jemand allgemein erklären, wie man verrauschte Signale erkennt und korrigiert? Oder wenn das zu weit gefasst ist, vielleicht nur dieses spezielle Problem? Auch wenn etwas mit meiner Schaltung nicht stimmt, wäre es auch schön zu wissen. Im folgenden Schema ist das von mir angezeigte Signal der TACH-Eingang links von der Schaltung:

schematisch

UPDATE
Nach hilfreichen Vorschlägen von @MichaelKaras und @techydude habe ich Q2 als Ursache für Probleme ausgeschlossen, indem ich es vollständig aus dem Stromkreis entfernt und den Lüfter direkt geerdet habe. Keine nennenswerte Auswirkung auf das Rauschen.

Also habe ich den externen Interrupt auf RA2 so codiert, dass er ein "gereinigtes" Signal aus einem Ersatzstift (in diesem Fall RA1) ausgibt, was sehr hilfreich war, aber aufgrund falscher Interrupts immer noch flackerte. (Also würde ich den Interrupt so einstellen, dass er die steigende Flanke abfängt und dann beim Auslösen auf die fallende Flanke umschaltet und umgekehrt, RA1 entsprechend einstellen / zurücksetzen).

Aber nachdem ich auch einen 100-nF-Kondensator über R3 hinzugefügt habe (als Teil des Vorschlags von @techydude), erhalte ich jetzt einen viel stabileren Ausgang. Der folgende Screenshot zeigt das TACH-Signal nach der Reinigung über den Schmitt-getriggerten RA2-Eingang und die erneute Ausgabe an RA1:

tachclean

Warum benötigen Sie den IRF510 FET, um die Stromversorgung zum Lüfter zu schalten? Wenn Sie die PWM auf 0 % Arbeitszyklus fahren, sollte der Lüfter entweder ausgeschaltet oder auf seine minimale Betriebsgeschwindigkeit gebracht werden.
@MichaelKaras Ja, der Lüfter hat eine Mindestgeschwindigkeit, also stoppt er nicht, es sei denn, Sie unterbrechen die Stromversorgung. Per Design ignoriert es jede PWM von weniger als ~10% und läuft mit 400 U / min. Also benutze ich diesen FET, um ihn bei Bedarf vollständig zu töten.
Ich verstehe. Dies bedeutet jedoch, dass Sie, wenn Sie beabsichtigen, den Lüfter aus einem +12-V-Aus-Zustand neu zu starten, ihn möglicherweise mit einem höheren als dem minimalen PWM-Tastverhältnis starten müssen. Ich habe dies bei einigen Arten von Lüftern erlebt, da sie einen Kickstart benötigen, damit sie beim Einschalten zuverlässig starten. Die Lüftersteuerungsalgorithmen vieler Server-Computer laufen in den ersten 10 bis 20 Sekunden beim Start mit 100 % Einschaltdauer, um sicherzustellen, dass alle Lüfter ordnungsgemäß starten.
@MichaelKaras Danke, das ist nützlich, obwohl es gut funktioniert, wenn ich bei etwa 15% anfange. Dies ist nur ein Hobby- / Lernprojekt - ich mache einen Lötdampfabsauger, der sich einschaltet und hochfährt, wenn ich meine Hände zur Arbeit bewege, und dann herunter- und herunterfahre, wenn ich fertig bin.
Bei fast allen Lüfter-Subsystemen, an denen ich gearbeitet habe, habe ich das TACH-Signal in ein Widerstandsnetzwerk eingebunden, das das Signal von der +12-V-Schiene vorspannt und dann zusätzlich ein Paar Teilerwiderstände hat, die das TACH-Signal auf + bringen 5 oder +3,3 V Pegel für das Überwachungssystem erforderlich. Eine kleine Kappe über dem unteren Widerstand des Teilers kann helfen, Rauschspitzen auf dem TACH-Signal zu filtern.
@MichaelKaras Ahh, ich habe ähnliche Schaltungen online gesehen, aber ich habe nicht verstanden, warum ich sie auf 12 V hochziehen sollte, nur um sie wieder nach unten zu teilen. Hilft das, den Lärm zu reduzieren? Was, wenn ich eine kleine Kappe über meinen Klimmzug ziehe, wird das ähnlich funktionieren?
Eine weitere zu beachtende Sache ist, dass es eine Reihe von Verhaltensweisen der kleinen PWM-Controller-Chips gibt, die in Vierdraht-Lüftern verwendet werden. Einige akzeptieren variable PWM bis hinunter zu 0 %, obwohl es normalerweise einen Arbeitszyklus gibt, unter dem sich der Lüfter nicht dreht. Andere werden sich so verhalten, wie Sie es beschreiben, wo sie PWM bis zu einem bestimmten Niveau akzeptieren, unter dem die Lüftergeschwindigkeit konstant bleibt. Bei einem weiteren Typ schaltet der Lüfter vollständig ab, wenn die PWM unter einem bestimmten Schwellenwert liegt, und springt dann auf eine Betriebsgeschwindigkeit über diesem Schwellenwert an.
Der Hauptzweck der Verwendung der +12-V-Schiene zur Vorspannung des TACH-Signals besteht darin, dass sie eine Isolierung zwischen den +12-V- und den digitalen Spannungssignalen mit niedrigem Pegel des Steuersystems bietet. Drei Überlegungen sind: 1) Lüfterdrähte können zwischen Gehäuseteilen eingeklemmt werden und Kurzschlüsse zwischen den vier Drähten werden möglich. 2) Lüfter in einer staubigen Umgebung könnten sich statisch aufladen und die Widerstände können dazu beitragen, jegliche ESD-Entladung vom Eingang des TACH-Detektors fernzuhalten. 3) Die RC-Zeitkonstante des Teilers mit Streukapazität oder mit hinzugefügter Kappe wirkt als Filter für das TACH-Signal.

Antworten (4)

Zu deinem Schaltplan:

Alles scheint in Ordnung zu sein, Sie können den R2 auf 10k oder sogar 100k erhöhen, die Kapazität des MOST ist so klein, dass der FAN viel mehr Drehträgheit haben wird als die Ausschaltverzögerung im MOST, wahrscheinlich sogar mit 1M. Auf diese Weise ist der Standort Ihres 100R irrelevant und Sie verschwenden keine mAs. Wenn Sie de uC nie im Reset halten, ist dies technisch überhaupt nicht erforderlich, da Ihr uC es aktiv hoch oder niedrig zieht.

Für das PWM-Signal können Sie sehen, ob das Datenblatt ein externes Pull-up auf 12 V zulässt, obwohl ich bezweifle, dass es so oder so einen großen Unterschied machen wird.

Zum Thema Lärm:

BEARBEITEN: Ich habe Ihre Handlung für kHz falsch gelesen, was dumm ist, wenn Sie daran denken, wo es Hz ist. Einige meiner Geschichten werden sich ein wenig ändern (z. B. das Gerede über die Notwendigkeit von MHz für digitales Arbeiten), aber die allgemeine Idee bleibt bestehen.

Ich werde den gesamten Post so lassen, wie er ist, aber für ein 100-Hz-Signal mit 30-kHz-Rauschen können Sie anstelle von 100-kHz mit > 5-MHz-Rauschen (auch nicht wirklich sinnvoll, oder?) Die Widerstände erhöhen, die mit Kondensatoren interagieren um den Faktor 10 und erhöhen Sie auch die Kondensatoren um den Faktor 50 bis 100. Dadurch erhalten Sie in allen Beispielen eine um den Faktor 1000 niedrigere Filterfrequenz. Aber es ist auch in Ordnung, die Kondensatoren einfach um den Faktor 10 bis 20 zu erhöhen, um schärfere Flanken oder eine schnellere Reaktion auf Ihr interessierendes Signal zu erzielen, da 30 kHz sehr weit von 100 Hz entfernt sind.

Betrachten Sie diesen Beitrag also als für hohe Frequenzen geschrieben und reduzieren Sie die Ideen, wodurch sie auch viel einfacher zu implementieren sind! (Besonders die digitale Ablehnung in 3.)

Ende der Bearbeitung

Da Sie so einen schönen Anwendungsfall für die Arbeit mit Methoden zur Rauschunterdrückung abgeben, werde ich versuchen, einen zu erstellen, der auf Ihre Situation zutrifft.

Jeder, der das liest, sollte sich bewusst sein:

Hier geht es nur um Rauschen bei einem digitalen Signal

In einem digitalen Signal können Sie davon ausgehen, dass es nur zwei Spannungen gibt, an denen Sie interessiert sind: "Ein" und "Aus". Alles dazwischen ist sinnlos und gehört zu Lärm oder Unrecht. Bei einem analogen Signal müssen Sie jeden Spannungspegel kennen und eine tatsächliche Filterung mit vielen Cs, Ls usw. durchführen.

Ein Problem in Ihrem Signal ist, dass die negativen Rauschspitzen auf dem hohen Pegel und die positiven Rauschspitzen auf dem niedrigen Pegel sehr nahe beieinander liegen, sodass ein einfacher Standardtrigger, selbst mit einstellbarem Pegel, Ihnen nicht absolut garantieren kann, dass Sie es nie bekommen werden verwirrt.


Deine Optionen:

  1. Ändern Sie die Vorspannung
  2. Ändern Sie die Spannungspegel
  3. "langsame" Hysterese hinzufügen
  4. Filtern Sie das Rauschen heraus

1. Ändern Sie die Vorspannung:

Das Positive hat sehr niedrige negative Spitzen, das liegt daran, dass Ihr Klimmzug nicht vom Rauschen profitieren kann. Das Einfachste, was Sie versuchen können, ist, diesen Widerstand zu verringern. Es besteht die Gefahr, dass dies auch nur die Spitzen des Aus-Signals erhöht, sodass dies möglicherweise nicht immer funktioniert. Aber es ist sehr wahrscheinlich, dass es Ihnen etwas Headroom zwischen den Spikes gibt, um eine einfache Hysterese einzustellen.

2. Ändern Sie die Spannungspegel

Wenn der Lüfter es zulässt, können Sie den Tacho einfach auf eine höhere Spannungsstufe ändern und einen Zwischenzustand hinzufügen:

schematisch

Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan

Jetzt ist möglicherweise gerade genug Platz zwischen den hohen und niedrigen Spitzen, um sicherzustellen, dass MOST immer eingeschaltet ist, selbst wenn es negative Spitzen gibt, und immer ausgeschaltet ist, selbst wenn es positive Spitzen gibt. Es kann einige Dioden, Zener oder Widerstände erfordern, um den Sollwert in der neuen Situation zu erhalten, aber wenn die Spitzen des negativen Signals so bleiben, wie sie sind, sollten sie den MOSFET nicht auslösen, solange Sie dies nicht tun Ersetzen Sie es durch eines, das eine Gate-Schwelle unter 2 V hat.

3. "langsame" Hysterese hinzufügen:

Dies ist ein Trick, der häufig verwendet wird, wenn Sie wissen, dass ein stacheliges Rauschsignal mindestens eine Größenordnung größer ist als das Signal, an dem Sie interessiert sind. Es verzögert das Signal ein wenig, sodass es nicht in Situationen verwendet werden kann, in denen der genaue Moment einer Ein/Aus-Änderung ist wichtig.

Aber für ein Signal, bei dem Sie nur die Form oder Frequenz wissen möchten, ist dies eine sehr robuste Methode. Es beginnt im Grunde zu triggern, wenn eine Spannung den Schwellenwert überschreitet, schließt diese Aktion jedoch nur ab, wenn sie dort bleibt. Es gibt viele Möglichkeiten, einen zu bauen.

Sie können dies im Controller tun (was bei der Anzahl der Komponenten am einfachsten ist): Sie können auf eine Flanke triggern und dann einige weitere Werte mit ausreichender Geschwindigkeit abtasten, um das Hoch zwischen den Rauschspitzen zu sehen, aber nicht verwirren, wenn Sie eine ganze Periode mit niedrigem Pegel verpassen. Dann treffen Sie ein vordefiniertes Urteil basierend auf der Kenntnis Ihres Signals und Rauschens. Wenn Sie beispielsweise bei 10 MHz abtasten könnten, könnten Sie 50 Abtastungen erfassen und sicher sein, dass eine höchste Frequenz von 100 kHz nicht ignoriert wird, wenn Sie sich für die Mehrheitsregel entscheiden. Dh: mindestens 25 müssen niedrig sein, damit es tatsächlich niedrig ist. Deine Spikes sind nur sehr dünn und die meiste Zeit ist es das Originalsignal, also könnte das funktionieren, aber die Anzahl einer Mehrheit kann angepasst werden. Dies funktioniert auch mit 1 MHz und 6 oder 7 Samples, aber es wird weniger eine tatsächliche Mehrheit sein, so dass es dort wieder einige Risiken geben kann.

Sie können es auch extern machen: Aber es ist schon VIEL komplizierter als das Hinzufügen eines einfachen Filters, besonders wenn Sie das Ergebnis mit einem uC mit einer gewissen Hysterese in seiner Eingabe betrachten. Aber es macht Spaß, darüber nachzudenken, also lasst uns:

schematisch

Simulieren Sie diese Schaltung

U1 ist ein beliebiger geeigneter Operationsverstärker oder Komperator. Komperatoren sind bessere Umschalter, oft mit besserem Swing, aber für Sub-MHz reicht ein OpAmp mit anständigem Rail/Rail-Swing problemlos aus.

Während diese Art von Hysterese mit mindestens einem Widerstand weniger aufgebaut werden kann, ist dieser einfacher zu erklären und als solcher leichter zu modifizieren.

Stellen Sie es sich zunächst ohne Kondensator vor:

Sehen Sie zuerst, dass der Widerstandsteiler durch den Ausgang von U1 beeinflusst wird, er wird ihn durch den scheinbaren Widerstand von 20 kOhm etwas niedriger oder höher ziehen. Nehmen wir an, am positiven Eingang von U1 ist eine Spannung von 1,1 V, abgerundet, wenn sein Ausgang 0 ist, und 3,9 V, aufgerundet, wenn sein Ausgang 5 V ist.

Wenn der stationäre Start-Tacho-Eingang hoch ist, wird der Ausgang von U1 aufgrund der invertierenden Natur des Eingangs zum Tacho niedrig sein. Der negative Eingang liegt also wieder aufgrund des zusätzlichen Pull-up-Widerstands bei etwa 2,3 V. Da der positive Eingang nur 1,1 V beträgt, muss der Eingang auf unter 2,2 V abfallen, damit der negative Eingang eine niedrigere Spannung sieht und der Ausgang umkippt.

Wenn der Ausgang umschaltet, sieht der negative Eingang 3,6 V (weil das Eingangssignal zu diesem Zeitpunkt 2,2 V beträgt, der Ausgang von U1 5 V beträgt, sodass ihre Mitte, die von den 10k-Widerständen gebildet wird, etwa 3,6 V beträgt), aber der positive Der Eingang hat sich von 1,1 V auf 3,9 V geändert, sodass der negative Wert immer noch unter dem positiven Eingang liegt und der Ausgang 5 V bleibt.

Wenn das Signal jetzt schnell "abbricht" und wieder hochklappt, geht der Ausgang von U1 schnell wieder zurück, aber dann musste die Spitze schon unter 2,2 V fallen, also besser als nichts.

Wenn das Signal weiter auf 0 abfällt, wird die stabile Situation nur stärker, der negative Eingang fällt auf 2,5 V (da wir davon ausgehen, dass der Tacho des Lüfters stark genug für einen Pulldown ist) und der positive Wert ruht bei etwa 3,9 v.

Jetzt muss das Signal über 2,7 V ansteigen, damit der Ausgang in die andere Richtung kippt. Sehr wahrscheinlich werden bereits 95 % Ihrer Spikes ignoriert.

Hinzufügen des Kondensators:

Beim Kondensator muss das ankommende Signal genug Energie für genügend Zeit liefern, um den Kondensator zu laden oder zu entladen. Tatsächlich ist das bereits ein RC-Filter. Jede Spitze, die schnell abfällt und sich dann erholt, kann den Kondensator nicht entladen.

Der Wert von C hängt natürlich vom Quellensignal und dem Rauschsignal ab. Ich habe 510 pF für ein 100-kHz-Quellsignal gegenüber einer Spike-Dauer von höchstens 1 us geparkt, aber ich habe nicht wirklich viel gerechnet, es ist nur ein RC-Zeit-basiertes Bauchgefühl, dass dies nahe an dem liegen könnte, was funktionieren wird.

4. Filtern Sie das Rauschen heraus

Das ist ein bisschen wie das Filtern eines analogen Signals. Sie können ein einfaches RC-Netzwerk verwenden, wie im vorherigen Abschnitt beschrieben:

schematisch

Simulieren Sie diese Schaltung

Da die Rauschspitzen bei oder unter 1 us liegen, können sie keine sehr signifikante Änderung der Spannung am Kondensator bewirken, da seine RC-Zeit 5 us beträgt. Dies bedeutet, dass die Energie in den Spikes auf einen Durchschnitt abgeflacht wird. Da Sie hohe Spitzen und niedrige Einbrüche auf den Spikes sehen, ist es sogar möglich, dass die Durchschnittswerte sehr nahe bei 0 V und 5 V liegen, aber das kann nur mit besseren Bildern oder nur einem Experiment gesagt werden. Da Sie es einem uC-Pin zuführen, reicht die RC-Zeit wahrscheinlich aus, um es als hoch oder niedrig zu sehen. Dies führt zu einer kleinen Verzerrung aufgrund des langsameren Ladens als des Entladens, verursacht durch den Pull-up-Widerstand. Einige Anpassungen der Werte können zu einem Ergebnis führen, bei dem dies vernachlässigbar ist.

Wenn das nicht ausreicht, könnten Sie einige weitere Komponenten hinzufügen, aber Sie übertreiben es sehr schnell, wenn Ihr dominantes Rauschen mindestens 10-mal "schneller" ist als Ihr Signal.

Sie könnten eine 4,7-uH-Induktivität in Reihe mit dem Widerstand hinzufügen, um weitere Hochfrequenzflanken zu glätten, vielleicht sogar 10 uH.

Aber um ehrlich zu sein, im Falle des "Fütterns an einen uC" besteht der einzige Grund, mit Ls in einem Signal Ihrer Art zu experimentieren, darin, ein Gleichgewicht zu finden, bei dem R groß, C klein ist und L nur beim Glätten hilft einige Flanken, so dass R2/R1 klein genug ist, um den Unterschied in Anstiegs- und Abfallzeit zu ignorieren. wie ein R1 von 33k, C von 150pF und ein L in Reihe mit R1 von 56uH. Oder vielleicht eine Ferritperle anstelle des Induktors, hängt ein wenig von der Schärfe Ihrer Spikes ab.

Aber ich überlege es mir schon, würde ich sagen.

Ich bin sprachlos! Was für eine fantastische, gut erklärte, umfassende und nützliche Antwort. Ich kann Ihnen nicht genug danken, das ist genau die Art von Antwort, auf die ich gehofft hatte. So viel zu lernen hier und sehr dankbar. Ich muss das ein paar Mal durchlesen, aber auf den ersten Blick sehe ich die Optionen jetzt klarer und Sie haben mir wirklich die Augen geöffnet. Ausgezeichnet, einfach ausgezeichnet.
@RogerRowland Das ist der Hauptpunkt einer Site wie dieser. Freue mich zu helfen. Alle weiteren Komplikationen/Mathematikierungen können im Chat vorgenommen werden. Ich bin regelmäßig dort. Ich muss nur eine Anmerkung hinzufügen, dass ich Ihre Darstellung als kHz und nicht als Hz falsch gelesen habe

Solche Geräusche von einem Lüfter-Tacho sind üblich, da die Schaltung (die normalerweise einen Hall-Effekt-Sensor enthält) im Lüfter, der den Tacho-Ausgang erzeugt, selbst bei Ihrer PWM-Frequenz ein- und ausgeschaltet wird (wenn Ihr PWM-Ausgang bei irgendetwas anderem liegt). als 100 %-Ein), nicht nur die Versorgung des Motors selbst. Sicher, sie haben eine gewisse Kapazität, um die Versorgung dieser Schaltung zu glätten, aber wenn beispielsweise eine 12-V-Lüfterstromversorgung gegeben ist, reicht die Kapazität aus, um mehrere Volt zwischen den minimalen PWM-Ausschaltperioden aufrechtzuerhalten. Effektsensor & Pull-up des Tachoausgangs (wenn der Lüfter einen eigenen Pull-up am Tachoausgang hat), um ein wiederherstellbares Ausgangssignal bereitzustellen. Ja, Lüfter sind unordentlich, wenn Sie ihre Versorgung PWM. Einige Lüfter bieten einen PWM-Geschwindigkeitseingang, der von ihrer +12-V-Versorgung getrennt ist.

Ihre PWM scheint ungefähr 27 kHz zu sein. Das Gute in dieser speziellen Situation ist also, dass Ihre Tachoausgabe bei 100% Ausgabe etwa 800 Hz zu betragen scheint, was < 1/30 der Frequenz Ihrer PWM ist. Daher muss diese Tachoausgabe gefiltert werden, um den größten Teil des PWM-Rauschens zu beseitigen einfach & lohnenswert. Es ist spät hier, also habe ich CBF die Berechnungen durchgearbeitet, aber weil es Open-Drain ist und es Ihre Pull-up-Versorgungsspannung (im Lüfter) ist, die von PWM belästigt wird, einer Obergrenze zwischen Tacho und +12 V-Schiene (nicht der PWM Ausgang von Ihrer Lüfterantriebsschaltung) ist wahrscheinlich eine bessere Option als eine Kappe am Tacho an Masse. Probieren Sie beides aus und sehen Sie. Beginnen Sie mit einer 100-N-Keramikkappe mit geeigneter Spannung und sehen Sie, wie sie aussieht.

Mit einem Schmigger-Eingang am PIC können Sie möglicherweise sogar davonkommen, ohne diesen Tachoausgang zu filtern, bevor Sie ihn in Ihren PIC einfügen, aber Sie haben dieses Frequenzdifferential, mit dem Sie leicht einen großen Beitrag zur Reinigung leisten können hoch.

Ein mögliches Problem bei Ihrer Handhabung des Tachosignals vom Lüfter: Wenn der Lüfter es intern mit 10k auf +12 hochzieht (einige tun dies, andere nicht) und Sie auch das Tachosignal zu Ihrem hochziehen +5V-Schiene, dann ziehen Sie sie tatsächlich nach unten! Es gibt verschiedene Schaltungskonfigurationen, um damit umzugehen, abhängig von der Lüfterversorgungsspannung, wie stark der Pull-up ist usw. Versuchen Sie es mit Ihrem Multimeter zu messen und lassen Sie es uns wissen.

"Einige Lüfter bieten einen PWM-Geschwindigkeitseingang, der von ihrer +12-V-Versorgung getrennt ist" - Ja, das habe ich :-) Dieser 4-Pin-Lüfter hat eine PWM-Steuerung, die von 12 V/GND getrennt ist, das ist also die Leitung I fahre. Der andere FET (Q2) ist nur da, damit ich den Lüfter komplett abschalten kann, weil er eine Mindestdrehzahl hat. Also PWM'e ich nicht Q2, sondern nur Q1.
Im Allgemeinen wird bei einem 4-Draht-Lüfter, wenn er eine konstante 12-V-Versorgung erhält und der PWM-Eingangsdraht zur Steuerung der Geschwindigkeit verwendet wird, keine PWM-Schaltfrequenz im TACH-Ausgang angezeigt. Es wäre nur der Fall, dass versucht wird, die PWM an die Lüfterstromkabel anzulegen.
"Wenn der Lüfter es mit 10k intern auf +12 hochzieht" - Hmmm, es wird nicht auf +12 hochgezogen, aber wenn ich meinen Pullup entferne, scheint es vom Lüfter auf etwa 2 V hochgezogen zu werden. Scheint mir seltsam, erklärt aber vielleicht, warum meine verrauschten Signale eher bei 6 V als bei 5 V liegen. Ich bin mir nicht sicher, was ich jetzt tun soll!
D'oh! Entschuldigung, ich habe auf Ihrem sch nicht einmal bemerkt, dass es sich um einen 4-Draht-Lüfter handelt. Und jetzt erinnere ich mich an deine anderen Fragen :). OK, nachdem ich jetzt das IRF510-Datenblatt überprüft habe, denke ich, dass @Michael Karas eher Recht hat, dass Q2 möglicherweise nicht vollständig eingeschaltet ist (und nicht dadurch unterstützt wird, dass R1 und R2 ein 1:10-Teiler sind, sodass Sie nicht mehr als Vgs erhalten = 4,5 V, sodass Ihre +12 zum Lüfter möglicherweise absacken (zu schwer, um anhand Ihrer Zielfernrohraufnahmen sicher zu sein, müssen innerhalb der PWM-Periode gesehen werden). Ändern Sie R2 auf 100 k (mehr als genug, um bei Tri- state) & sehen, ob das hilft.Wenn ja, wählen Sie einen MOSFET mit niedrigerem Vgs-Schwellenwert.
@Techydude lol, egal, es ist immer noch ein Rätsel. Wie ich Michael sagte, habe ich jetzt Q2 entfernt und den Lüfter direkt geerdet, und ich sehe immer noch das gleiche Geräusch. Ich habe auch versucht, den TACH über INT an einen anderen Pin zu senden, aber der Schmitt reinigt ihn nicht genug von sich aus und der Echoausgang ist immer noch unregelmäßig. Vielleicht liegt es daran, dass das alles noch auf einem Steckbrett ist? Tatsächlich haben 100nF zwischen TACH und Vcc geholfen.

Eine mögliche Quelle des Rauschens auf dem TACH-Signal kann darauf zurückzuführen sein, dass der IRF150-FET keine ausreichend niedrige EIN-Impedanz hat. Dies könnte darauf zurückzuführen sein, dass der FET RdsON ziemlich hoch ist oder der FET bei der bereitgestellten Gate-Treiberspannung nicht vollständig eingeschaltet ist.

Wenn der FAN-Strom mit dem PWM-Signal ein- und ausgeschaltet wird, entsteht ein Abfall über dem FET-Widerstand, der dazu führt, dass die "GND" -Referenz des Lüfters auf und ab stößt und sich in das Rauschen übersetzt, das auf dem TACH-Signal zu sehen ist.

Sie können dies überprüfen, um zu sehen, ob der von mir beschriebene Effekt der Fall ist, indem Sie die GND-Leitung des Oszilloskops auf den FET-Drain legen und dann das TACH-Signal betrachten. Das Signal würde viel sauberer aussehen.

Die Lösung wäre, einen FET mit viel niedrigerem RdsON auszuwählen, wenn er mit einem Gate-Treiber ausgestattet ist, den Ihr System bereitstellt.

Eine andere mögliche Idee ist, einen P-FET zu verwenden, um die +12-V-Leitung des Lüfters anstelle der GND-Leitung zu schalten.

Beachten Sie, dass die von Ihnen verwendete Gate-Widerstandsanordnung dazu führt, dass Sie einen Teil Ihrer potenziellen Gate-Ansteuerung verlieren. Bewegen Sie den 1K-Widerstand auf die andere Seite der 100 Ohm.

Danke Michael, ich schätze deinen Rat sehr. Ich habe Q2 jetzt vollständig ausgehängt und den Lüfter direkt geerdet, aber ich sehe immer noch das gleiche TACH-Geräusch bei allem unter 100 % PWM. Guter Punkt über die Platzierung des 1K-Widerstands!

Das klingt nach einem Job für einen Tiefpassfilter. Sie müssen das nützliche Signal mit f 1 um 1 kHz halten und das störende Signal mit f 2 nahe 25 kHz entfernen. Die Grenzfrequenz kann als geometrischer Mittelwert von f 1 und f 2 gewählt werden (suboptimal, aber einfach):

f c =sqrt(1*25) = 5 kHz.

Unter der Annahme, dass ein einfaches RC-Filter ausreicht und Sie bereits den Widerstand in der TACH-Schaltung haben (R 3 = 10 kOhm), sollte der entsprechende Kondensatorwert so berechnet werden, dass er der 5-kHz -Zeitkonstante entspricht :

Geben Sie hier die Bildbeschreibung ein

C = 1/(2 * pi * fc * R) = 1/(6,28 * 5000 * 10000) = 3,2 * 10 -9 F.

Also alles, was Sie tun müssen, ist, einen 3nF-Kondensator zwischen die TACH-Leitung und Masse zu löten. Es dämpft das hochfrequente Rauschen um den Faktor 20 oder mehr, was für Ihre Anwendung ausreichen sollte.

Danke, das ähnelt dem, was @techydude vorgeschlagen hat (obwohl Ihre Berechnung offensichtlich besser als eine Schätzung ist), aber wissen Sie, warum ich mit der Kappe zwischen TACH und 5 V eine bessere Rauschunterdrückung finde als mit TACH und GND? Beeinflusst diese Wahl, wo das Rauschen unterdrückt wird (dh im hohen Teil des Impulses oder im niedrigen Teil) oder sollte es gleichermaßen unterdrückt werden?
Die Tatsache, dass eine Kappe zwischen TACH und 5V besser funktioniert als eine Kappe zwischen TACH und GND, überrascht mich. Normalerweise sollten Sie das Filter an den Spannungspegel anschließen, der in Ihrem System als Referenz verwendet wird, und in 99% der Fälle ist es GND. Außerdem sind VCC und GND über eine Spannungsquelle mit einem Innenwiderstand nahe Null (im Vergleich zu einem 10k-Widerstand) verbunden, sodass dies eigentlich keine Rolle spielen sollte.
Nach einem genaueren Blick auf den Schaltplan denke ich, dass dies mit der Tatsache zusammenhängt, dass Ihr Eingang Open-Drain ist, was Rauschen mit asymmetrischen Kanten erzeugt (schnelle Abfälle und geglättete Anstiege). Wenn Sie das Schema aus der Antwort von @Asmildof verwenden , wird das verrauschte Signal an den Eingang des RC-Filters angelegt und nicht in dessen Mitte, und es sollte für jede Art von Rauschen wie erwartet funktionieren.
Danke @Dmitry, das asymmetrische Rauschen, das du beschreibst, scheint mit meiner gezoomten Spur übereinzustimmen, so dass es für mich Sinn macht. Ich werde noch etwas an der Strecke arbeiten, basierend auf all den guten Ratschlägen, die ich hier erhalten habe. Ihr Beitrag wird sehr geschätzt.