Einfache Frage, aber die Suche gestaltet sich schwierig. Ich möchte einfach nur einen 12V PC-Lüfter mit PWM-Eingang (4pol) mit einem ESP32 steuern und überwachen (Drehzahlüberwachung mittels Tachosignal). Bei der Suche nach Spezifikationen findet man alles, nur nicht das, was man haben möchte. Ich möchte keine PWM auf der Versorgungsspannung erzeugen, ich will auch keinen der millionenfach angebotenen Lüfter kaufen... ich möchte einfach nur wissen, ob man die PWM aus dem GPIO eines ESP32 mit 3,3V direkt auf den PWM-Eingang des Lüfters legen darf und wie das Tachosignal aussieht, kann man das mit einem GPIO des ESP32 direkt auswerten oder braucht man dafür noch eine Hilfsbeschaltung. Im Forum gab es ein paar Threads zu dem Thema, aber wie üblich sind die alle zu alt und die URLs zu den Dokumenten nicht mehr gültig. Ich hoffe, für einen der Anwesenden ist das super einfach oder jemand hat die Spezifikationen auf der Platte zu liegen, darüber würde ich mich freuen. Danke!
Vor 20 Jahren hat Intel es klar definiert. Was heute verkauft wird, wurde vielleicht "optimiert"...
Ben B. schrieb: > ich möchte einfach nur wissen, ob man die PWM aus dem GPIO eines ESP32 > mit 3,3V direkt auf den PWM-Eingang des Lüfters legen darf Nein > und wie das Tachosignal aussieht, Bei beuden Leitungen wird auf Ausgangsseite ein ach Masse schaltender Transistor 'open collector' erwartet und auf Eingangsseite ein pull up zum gewünschten high Pegel. Der Lüfter zieht maximal bis 5.25V hoch, der Tachosusgang verträgt maximal 12.6V Zudem spielt die PWM Frequenz eine Rolle Das ist der Standard: https://www.intel.com/content/dam/support/us/en/documents/intel-nuc/intel-4wire-pwm-fans-specs.pdf
Pulsweitenmodulation Pulsweitenmodulation (PWM) ist eine gängige Methode zur Steuerung von Computerlüftern. Ein PWM-fähiger Lüfter wird üblicherweise an einen 4-poligen Stecker angeschlossen (Pinbelegung: Masse, +12 V, Sense, Steuerung). Der Sense-Pin dient zur Weiterleitung der Lüfterdrehzahl, der Steuerungs-Pin ist ein Open-Drain- oder Open-Collector-Ausgang, der einen Pull-up auf 5 V bzw. 3,3 V im Lüfter erfordert. Im Gegensatz zur linearen Spannungsregelung, bei der die Lüfterspannung proportional zur Drehzahl ist, wird der Lüfter mit einer konstanten Versorgungsspannung betrieben; die Drehzahlregelung erfolgt durch den Lüfter anhand des Steuersignals. Das Steuersignal ist eine Rechteckwelle mit 25 kHz, wobei der Tastgrad die Lüfterdrehzahl bestimmt. 25 kHz wird verwendet, um die Lautstärke des Signals über den menschlichen Hörbereich anzuheben; eine niedrigere Frequenz könnte ein hörbares Summen oder Heulen erzeugen. Typischerweise kann ein Lüfter mit einem Signal mit bis zu 100 % Tastgrad zwischen etwa 30 % und 100 % der Nenndrehzahl betrieben werden. Das genaue Drehzahlverhalten bei niedrigen Regelstufen (linear, Aus bis zu einem Schwellenwert oder Mindestdrehzahl bis zu einem Schwellenwert) ist herstellerabhängig. [ 9 ] Viele Motherboards verfügen über Firmware und Software, die diese Lüfter basierend auf der Temperatur des Prozessors und des Computergehäuses regelt.
> Das ist der Standard: [..]
Danke, danach hatte ich gesucht.
Also zwei open collector Ausgänge, einmal in Richtung Controller für das
Tachosignal und einmal mit 5/12V PullUp seitens des Lüfters für das
PWM-Signal. Heißt ich muss das PWM-Signal mit einem Transistor
invertieren, keine Lust auf 5/12V am GPIO des ESP32.
Weiß jemand, ob die Lüfter bei weniger als 20% Tastverhältnis stoppen?
Oder muss man zum Stoppen des Lüfters die Betriebsspannung abschalten?
:
Bearbeitet durch User
Ben B. schrieb: > Weiß jemand, ob die Lüfter bei weniger als 20% Tastverhältnis stoppen? Hängt vom Lüfter ab. Manche gehen auf Stop unter einem bestimmten Wert, manche gehen auf Failsafe und laufen mit einer bestimmten Drehzahl ohne PWM (Langsam, mittel oder Vollgas, je nach Laune). Es gibt auch welche, die brauchen <10% zum stoppen, aber bei 0% laufen sie wieder an, wegen "da ist ein Kabel ab, besser ein bissel propellen als gar nix". Nach oben ist es übrigens ähnlich, oft wird die volle Drehzahl schon (weit) vor 100% erreicht.
Ben B. schrieb: > (...) Heißt ich muss das PWM-Signal mit einem Transistor > invertieren, keine Lust auf 5/12V am GPIO des ESP32. Wenn es preiswert sein soll, reicht eine Diode zum open-collectorisieren. Der Pullup ist ja im Lüfter.
Soul E. schrieb: > Wenn es preiswert sein soll, reicht eine Diode zum > open-collectorisieren. Das mal mir mal bitte auf.
Ich überlege gerade ob ich das als Kaskode-Schaltung mit dem ESP baue, die würde das Signal nicht invertieren, aber ggf. den Anschluss nicht weit genug herunterziehen. Ob invertiert oder nicht spielt keine Rolle, es ist egal ob ich einen Wert 0..100% oder 100..0% berechnen muss. Wenn manche Lüfte Vollgas schon weit vor 100% erreichen, dann werde ich das sowieso adaptiv probieren. Oder ich regle das Ding auf eine Solldrehzahl. Ich muss nur noch rauskriegen, wie ich mit dem ESP32 eine genau laufende Zeitbasis hinkriege und Impulse an einem Pin zähle. Mit einem AVR kein Problem, mit dem ESP32/Arduino Neuland.
Jens M. schrieb: > Soul E. schrieb: >> Wenn es preiswert sein soll, reicht eine Diode zum >> open-collectorisieren. > > Das mal mir mal bitte auf.
1 | -------- |
2 | | |
3 | R |
4 | R |
5 | | |
6 | ESP ---|<---------+---- Lüfter |
Der Pullup-Widerstand ist zum Verständnis mit eingezeichnet, befindet sich aber im Lüfter und muß nicht separat bestückt werden.
Das löst aber nicht das Problem, daß der Lüfter u.U. 5 oder 12V mit ein paar mA an den GPIO eines 3,3V Controllers anlegt... Ich weiß nicht ob der ESP32 das so toll findet.
Ben B. schrieb: > Heißt ich muss das PWM-Signal mit einem Transistor invertieren Geht auch nicht-invertierend, und auch in die andere Richtung (dann braucht der MC-Eingang einen Pullup).
:
Bearbeitet durch User
Das ist die angedachte Kaskode-Variante. Das Tachosignal stellt der Lüfter über einen open collector Ausgang zur Verfügung. Da müsste eigentlich ein 3,3V GPIO mit internem PullUp ausreichen, das probiere ich auf jeden Fall erstmal aus (falls ich das in Arduino-Sprech hinkriege).
Mal ein Danke für bauformbs und laberkopps Hinweise auf die Intel-Spezifikation! Kleines Dokument bringt mehr Klarheit als 1000 Suchmaschinen-Ergebnisse... Ein Gedanke: Was, wenn man den PWM-Pin einfach mit 1.5k Ohm in Richtung Masse zieht? (Dass er offen max. 5.25 V liefert und kurzgeschlossen max. 5 mA, deutet ja auf einen internen 1k-Pullup-Widerstand hin.) Dann wären es nur noch < 3.3 V und der GPIO sollte auf jeden Fall sicher sein. Sofern der Lüfter das dann immernoch als "High" wertet, wäre das Problem gelöst. Gangbarer Weg? Oder Vatertags-Schnappsidee? Übersehe ich was?
> Hängt vom Lüfter ab.
Endlich spricht es mal einer aus. :-D
Mein Mainboard hat dafuer extra einen Menuepunkt um die Kennlinie des
Luefters zu kalibrieren/lernen. Weil es nur so einen
vernuenftigen/leisen aber ausreichenden Betrieb sicherstellen kann.
Vanye
Vanye R. schrieb: > Endlich spricht es mal einer aus. :-D > Mein Mainboard hat dafuer extra einen Menuepunkt um die Kennlinie des > Luefters zu kalibrieren/lernen. Weil es nur so einen > vernuenftigen/leisen aber ausreichenden Betrieb sicherstellen kann. Eigentlich ist die Kennlinie (so lange monoton steigend) vollkommen egal so lange der Lüfter Teil einer Regelstrecke ist mit Istwert per Temperatursensor, dann dreht er immer so hoch wie nötig aber nicht schneller um die Temperatur zu halten, trotz unterschiedlicher Umgebungstemperatur und eben auch bei anderer Kennlinie. Aber schön dass du für ein nutzloses Werbefeature deines PC mehr Geld ausgegeben hast und dich darüber freust.
Michael B. schrieb: > Eigentlich ist die Kennlinie (so lange monoton steigend) vollkommen egal > so lange der Lüfter Teil einer Regelstrecke ist mit Istwert per > Temperatursensor, dann dreht er immer so hoch wie nötig aber nicht > schneller um die Temperatur zu halten, trotz unterschiedlicher > Umgebungstemperatur und eben auch bei anderer Kennlinie. > > Aber schön dass du für ein nutzloses Werbefeature deines PC mehr Geld > ausgegeben hast und dich darüber freust. Das ist totaler Unsinn was du schreibst. Welcher Lüfter hat eingebaute Temperatursensoren? Mir fallen nur paar spezielle Papstlüfter ein. Alle Standard PC Lüfter haben keinen. Auch Intel CPU Boxed Lüfter nicht. Die CPU Temp. wird in der CPU gemessen und auf dem Mainboard sind je nach Ausstattung weitere Temperatursensoren verteilt bzw. Anschlüsse für ansteckbare Sensoren. Im Bios stellt man ein mit welcher Drehzahl welcher Lüfter bei welcher Temperatur drehen soll. Das ist kein nutzloses Werbefeature.
Veit D. schrieb: > Das ist totaler Unsinn was du schreibst. Welcher Lüfter hat eingebaute > Temperatursensoren? Was ist an Veit D. schrieb: > so lange der Lüfter Teil einer Regelstrecke ist mit Istwert per > Temperatursensor so schwer zu verstehen ? Der Temperatursensor muss nicht im Lüfter sitzen. Aber wozu ist der Lüfter per PWM in der Drehzahl regelbar, wenn ihn keiner regelt ? Es wird das Mainboard sein, das aus dem Temperatursensorsignal die PWM für den Lüfter regelt. PID oder so. Aver ich beginne zu verstehen, warum du nix verstehst Veit D. schrieb: > Im Bios stellt man ein mit welcher Drehzahl welcher Lüfter bei welcher > Temperatur drehen soll. Komplett unsinnig. Das wäre nur ein Stell- und kein Regelalgorithmus.
:
Bearbeitet durch User
Veit D. schrieb: > Das ist totaler Unsinn was du schreibst. Welcher Lüfter hat eingebaute > Temperatursensoren? Mir fallen nur paar spezielle Papstlüfter ein. Alle > Standard PC Lüfter haben keinen. Auch Intel CPU Boxed Lüfter nicht. Der Temperatursensor sitzt im Prozessor. In allen aktuellen CPUs befinden sich mehrere Temperaturfühler. Ein Mikrocontroller ("Management Engine") liest die aus und steuert die Lüfter entsprechend. Das ist der oben genannte Regelkreis. Die Lüfter werden nicht einfach an und ausgemacht wie beim Backofen, sondern die Drehzahl wird abhängig von der absoluten Temperatur und von der Differenz zwischen aktueller Temperatur und erlaubter Temperatur geregelt. Dazu nutzt man PI-Algorithmen.
:
Bearbeitet durch User
> Eigentlich ist die Kennlinie (so lange monoton steigend) vollkommen egal
Nein ist sie nicht. Der Normalfall eines heutigen PCs sind ja 1-2Luefter
an der CPU, einer im Netzteil, 1-2 fuer Gehaeuse und oder Chipssatz, 1-2
an der Grafikkarte.
Im Normalfall drehen die nur mit ihrer Mindestdrehzahl weil ein PC kaum
noch Abwaerme erzeugt. Mein Rechner ist in diesem Moment z.B unhoerbar
weil ich ja nur all paar Millisekunden einen Buchstaben druecke. Das
geht wegen diesem Aufwand.
Bei hoeherer Leistung geht das ganze in den Regelungsbetrieb, da waere
dein Einwand korrekt wenn es nur einen Luefter gaebe. Es gibt aber
mehrere die idealerweise zumindest halbwegs gleichmaessig hoch fahren
sollten damit ein brauchbarer Luftstrom gewaehrleistet ist und man nicht
nur eine billige Radaukiste da stehen hat.
Vanye
Imho gibt es zur Ansteuerung nur 2 sinnvolle Möglichkeiten: 1. direkt an den ESP anschließen. Kein Bauteil, aber das bereits erwähnte Risiko, dass der Strom vom Lüfter dem ESP nicht gefällt. Ich habe jetzt etliche ESP-Datenblätter durchsucht und dort keine Spezifikation möglicher Schutzdioden gefunden. Maximale Spannung ist Vdd+0,3V. Selbst wenn der ESP Schutzdioden hat, müsste man sicher stellen, dass die bis zu 5mA sicher verbraucht werden. Imho fachlich falsch und riskant, aber Versuch macht klug. 2. Man spendiert ein Bauteil. Das ist dann ein N-Fet in Source-Schaltung, die Invertierung korrigiert man in Software. Alle anderen Varianten (Diode, Kaskode, Widerstand...) funktionieren nicht unbedingt nach Spezifikation, aber vermutlich trotzdem. Sie brauchen aber alle mindestens ein Bauteil und Platinenfläche. Warum dann nicht gleich Variante 2 nehmen?
Michael B. schrieb: > Aber schön dass du für ein nutzloses Werbefeature deines PC mehr Geld > ausgegeben hast und dich darüber freust. Es macht schon Sinn, wenn man Tempertur und PWM-Werte beeinflussen kann, denn es kann sonst zum Lüfterpumpen kommen. Und auch in diesem Fall mit dem ESP sollte man die Möglichkeit vorsehen, MinPWM, MinTemp, MaxPWM und MaxTemp vorzugeben. Der Lüfter sieht nie weniger als MinPWM, ab MinTemp steigt der PWM-Wert linear bis MaxTemp auf MaxPWM an. Je nach Prozess sollte es noch eine Übertemperaturabschaltung geben, für den Fall das MaxPWM nicht genug Kühlleistung erzeugt. Gigabyte z.B. ermöglicht das, und das ist teilweise auch notwendig, weil die Temperatursteuerung den Lüfter anhält (anhalten kann), aber die Lüfterüberwachung weiß das nicht. Ergebnis: die ersten Minuten ist der PC an sich totenstill, da CPU unter 35°, aber es kräht ganz erbärmlich weil "Alarm, die Propeller tuns nicht". Durch die fehlende Drehzahl wird im Regler irgendein Wert maximiert, sobald die Temperatur bzw. das resultierende PWM den Lüfteranlaufwert erreicht schlägt dieser Wert zu und die Lüfter gehen alle von jetzt auf gleich auf Vollgas, die Temperatur ist aber so gerade eben an der man-merkt-das-der-Kasten-an-ist-Grenze. Also regeln alle Propeller wieder runter, teilweise wieder in den Stillstand, mit alarm. Das kann sich auch ein paar mal wiederholen. Dann stabilisiert sich die Temperatur und der Rechner rauscht leise vor sich hin, alles ok. Ist total klasse, wenn im Büro der Tag anfängt mit 5 Minuten brääääp brääääp brääääp brääääp, dann in wooooosch brääääp brääääp wooooosch brääääp brääääp brääääp übergeht und über woooosch brääääp woooosch zum shhhhhhhhhhh wird. Kurz im BIOS MinPWM auf 20% gestellt, MinTemp auf 40°, und die Mühle ist von Anfang an leise, für den ganzen Tag.
Jens M. schrieb: > weil > die Temperatursteuerung den Lüfter anhält (anhalten kann), aber die > Lüfterüberwachung weiß das nicht. Offensichtlich Programmiererpfusch. Jens M. schrieb: > sollte man die Möglichkeit vorsehen, > Gigabyte z.B. ermöglicht das Besser wäre es, wenn die vernünftig programmieren würden.
Arctic 120mm, PWM & Tacho direkt an ESP/ESP32 funktioniert seit Jahren problemlos.
Michael B. schrieb: > Offensichtlich Programmiererpfusch Ja ach. Die wenigsten Leute die an der Herstellung eines beliebigen Geräts beteiligt sind nutzen es selber. Daher findet man fast immer an einem beliebigen irgendwann ein "oh jesses wer war denn so dämlich?"
> Daher findet man fast immer an einem beliebigen irgendwann ein "oh > jesses wer war denn so dämlich?" Genau! Das gilt fuer alle Geraete ausser denen von mir entwickelten. Die erfuellen alle meine Beduerfnisse. :-D BTW: Ich weiss nicht was daran so schwierig ist so einen kleinen Luefter zu programmieren das es dafuer einen riesen Thread braucht. Ich musste das vor 10-15Jahren auch mal fuer irgendwas machen. Einfach kurz die Spec gezogen (haenge ich mal an) und kurze Zeit spaeter lief das... Vanye
Soul E. schrieb: > Veit D. schrieb: >> Das ist totaler Unsinn was du schreibst. Welcher Lüfter hat eingebaute >> Temperatursensoren? Mir fallen nur paar spezielle Papstlüfter ein. Alle >> Standard PC Lüfter haben keinen. Auch Intel CPU Boxed Lüfter nicht. > > Der Temperatursensor sitzt im Prozessor. In allen aktuellen CPUs > befinden sich mehrere Temperaturfühler. Ein Mikrocontroller ("Management > Engine") liest die aus und steuert die Lüfter entsprechend. Das ist der > oben genannte Regelkreis. > > Die Lüfter werden nicht einfach an und ausgemacht wie beim Backofen, > sondern die Drehzahl wird abhängig von der absoluten Temperatur und von > der Differenz zwischen aktueller Temperatur und erlaubter Temperatur > geregelt. Dazu nutzt man PI-Algorithmen. Hatte ich etwas anderes geschrieben?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.