Hallo Zusammen, ich bin neu hier, mein neues Projekt ist: Computer-PWM 2-4 in 1 Zweck des Projektes ist zwei (minimum) bis vier Computer-PWMs auf nur ein Ausgang mit der Mittelwert der Eingänge zu belegen. Wie der Ausgang auf die verschieden "Verbraucher" verteil ist kein Problem für mich. Erklärung: In ein Computer gibt mehrere PWM-Signale z.B. Hauptprozessor & Grafikkarte, bei einer Wasserkühlung aber nur eine Pumpe (in der Regel) die seriell die Bauteile (CPU & GPU) mit Kühlwasser versorgt. Das Problem wird heute mit "Zero-Fan"-Grafikkarte noch verstärkt und zwingt zur Bildung ein eigenständiges Kreislauf für die (GPU). Ziel: Ein ("zum verteilen" bzw. an die Wasserpumpe) PWM-Signal das Minimum 30% "output" hat aber in alle andere Fälle den Mittelwert von PWM-1, PWM-2, etc. hat. Hier der Link zur PWM-Specs.: http://formfactors.org/developer/specs/REV1_2_Public.pdf und hier die PWM-Input-Specs: PWM Control Input Signal / The following requirements are measured at the PWM (control) pin of the fan cable connector: PWM Frequency: Target frequency 25 kHz, acceptable operational range 21 kHz to 28 kHz Maximum voltage for logic low: VIL = 0.8 V Absolute maximum current sourced: Imax = 5 mA (short circuit current) Absolute maximum voltage level: VMax = 5.25 V (open circuit voltage) Präzisierung: T = 40 µs (25 KHz) = t1 + t2 = T-ein + T-aus. Gesucht sind Mittelwerte von alle t1 und t2 bzw. von T-ein und T-aus Ein andere "Problem" stellt (für mich) die Ablese-Geschwindigkeit/Auflösung, 1 MHz (=1µs) oder 2 MHz (=500ns)? Ich bitte um Entschuldigung wenn das Thema schon behandel worden ist (habe nur das gefunden: https://www.mikrocontroller.net/articles/Pulsweitenmodulation) und vielen Dank im Voraus für jegliche Hilfe. MfG
Eine Herangehensweise: Wandle die PWM-Signale in analoge Signale (Spannung) um, addiere die Spannungen und erzeuge daraus Dein gewünschtes neues PWM-Signal. PWM-Signale in analoge Signale umzuwandeln ist kein Hexenwerk, sondern wird oft bei µCs angewandt, die keinen DAC haben, um einen DAC zu simulieren. https://www.allaboutcircuits.com/technical-articles/turn-your-pwm-into-a-dac/ Die Spannungen können mit einem OpAmp addiert werden: https://www.elektronik-kompendium.de/sites/slt/0210152.htm Daraus wiederum lässt sich mit einem NE555 eine PWM erzeugen: http://www.falstad.com/circuit/e-555pulsemod.html Fertig. Kein µC nötig.
Hallo, eine digitale Verknüpfung wird möglicherweise einfacher, wenn man berücksichtigt, dass hier an sich nicht der Mittelwert, sondern der Maximalwert der PWM benötigt wird, denn die Komponente mit dem höchsten Kühlbedarf bestimmt die benötigte Kühlleistung. Beispiel: 4 Komponenten melden 20% Bedarf, eine Komponente meldet 90% Bedarf. Du stellst mit Mittelwert, also 34% des Volumenstroms ein. Was glaubst Du, wird bei der 90%-Komponente passieren? Insgesamt wird aber vermutlich der Aufwand sowieso nicht viel bringen, da die Kühlleistung nicht sehr stark von dem Durchfluss abhängt, wenn man erst einmal den minimal notwendigen Durchfluss hat (siehe https://www.computerbase.de/forum/showthread.php?t=1527805). Eine Steuerung des Durchflusses über die normalen PWM-Signale des Mainboards bringt hier nicht viel, da der minimale Durchfluss schon bei 30° Komponententemperatur erreicht werden sollte und eine Erhöhung des Durchflusses über die Mainboard-PWM bei Erhöhung der Komponententemperatur auf 90° wegen fehlender Kühlleistung Dich dann nicht rettet. Was dann gesteigert werden muss, ist die Kühlleistung auf der anderen Seite der Wasserkühlung, also die Drehzahl der Ventilatoren. Die kann man aber einfacher und sinnvoller über eine Messung der Wassertemperatur als über eine Verknüpfung der PWM-Signale regeln. Und die im verlinkten Artikel angesprochene Problematik, dass man bei vielen Hitzeerzeugern besser einen höheren Durchfluss haben sollte, ist zwar korrekt, allerdings wäre es dann definitiv auch sinnvoller, die Komponenten parallel und nicht seriell zu verschalten und einen hydraulischen Abgleich durchzuführen (bei der jede Komponente dann den Anteil des Kühlstroms bekommt, den sie im Normalfall benötigt). Schöne Grüße, Martin
Vielen Dank (rufus), es sieht garnicht schlecht aus. Nun der RC-Pass scheint die beste Lösung zu sein (laut gelinkte Artikel) wobei ob ich ein Kondensator für 6 ct. kaufen oder ein IC für 70 ct. macht auf den viel teuere Transport garnichts aus, aber bei der Schaltung und Dimensionierung (des RC) da... Siehe RC-Bild. Nun anstatt R2 würde ich sogar ein D2 einsetzen. Was mir aber am meistens Kopfschmerzen bereitet ist aber der 'OpAmp' der im 'Unglücksfall' tatsächlich als Addirer wirkt und da habe ich eine Pumpe die mit 5700 RPM läuft, außerdem brauche ich die 1.575V (=30% von max 5,25V) die garantiert werden müssen. Das entsprechen ca. 4V an Pumpe und Lüfter (manche Lüfter starten mit 3,9v erst) und ist 30% von 12V. Außerdem da der 'OpAmp' auch als DAC verwenden kann brauche ich den RC-Pass garnicht, oder? Ein IC mit (sagen wir mal) 4-8 OPAmps drauf und fertig. Nun, da ich die Kurzschlüßfestigkeit garantieren muss (möchte keine Späße mit der Motherboard machen) und die Umkehrströme/Spannungen am Eingang des OP kappen muss (z.B. durch Dioden mit eigene Spannungsabfall um die 1V)... scheint mir die Analoge-Lösung ein bisschen wackelig. Anders wäre mit ein Digitales-Baustein mit hochohmige Eingang und 24 Bit das die Verbraucher-Spannung (12V für Pumpe und Radiator-Lüfter) in 0,5V/Stepp mich (bzw. automatisch) erhöhen lässt. Dazu kommt die gängige Toleranz von 20% der Wiederstände und Kondensatoren bzw. Analoge-Bausteine dass bei 8 Bit 1,6=2 Bit ausmacht und bei 24 Bit gleich 4,8=5 Bit ausmacht. Es will keine Kritik an Niemanden sein und ich glaube das den Vorschlag schon seine Berechtigung hat, nun bin ich überzeugt das anders gehen muss und würde sogar eine galvanische Trennung (z.B. durch Optokoppler) zwischen PWM und weitere Signalbearbeitung um sicher zu gehen das das MainBoard kein Schaden hinzugefügt wird. Wenn man die 25 KHz in 24 Bit teilen will kommt man auf eine Abtastfrequenz von 600 KHz d.h. eine Zählung jede 1,6 Period µs. Im Grund genommen ein TTL/UART-Zähler 24 Bit mit 1MHz Takt wäre am bestens. Hat jemand eine Idee wie am besten machen kann?
:
Bearbeitet durch User
Hallo maveric00 und Dir auch vielen herzlichen Dank, habe dein Antwort nach meinem Beitrag gesehen, sorry. Wie auch immer, Du hast Recht und mein Ansatz war nicht korrekt nach Deine Beschilderung. Nun PWM-Ausgang muss immer (as default und nach specs) 30% haben (1,5-1,575V) das Problem sind die neue GPUs mit 'Zero-Fan'-Technologie die zwingend ein zweites Kühlkreislauf verlangen (verkaufen wollen). Natürlich, wen man ein RPM an die GPU schickt... ist dann ausgeschmissen weil Nichts mehr regeln kann, heute haben sogar RAMs angeblich zum regeln der LED ein defacto PWM. Dein Ansatz 'den höchstes Wert' zu nehmen ist durchaus richtig weil dann das am meistens verlangte Komponent würde auch die (Kühl)-Leistung abrufen und bekommen, in Konsequenz würde auch sofort herunter-regeln. Der Ansatz in Deinem verlikte Artikel ist soweit falsch weil die Lüfter von der Regelung ausgenommen werden, kein 'distributed PWM', aber, wenn alle Lüfter und sie Pumpe an die 12V hängen und nur den PRM der Pumpe an die CPU geschickt wird, dann läuft alles einwandfrei weil die Lüfter werden genuso geregelt wie die Pumpe, oder Nicht? Ich überlege mich gerade ob im enddefekt reicht einfach die CPU-PWM an Pumpe und alle Lüfter zu 'verteilen' und nur die Pumpe-RPM an den CPU zu schicken. In der Versuch-Anordnung auf mein Tisch laufen auch 8 Lüfter auf nur ein PWM (CPU-PWM) und alle Lüfter laufen denselben Geschwindigkeit und regeln gleichzeitig, nur ein Lüfter sendet den RPM an CPU zurück. Die 12V Spannung kommt aber nicht von CPU-PWM sondern von zwei SATA bzw. Molex-Stecker. Da die CPU 100W verbraucht (größte Abnehmer) geht's, nun wenn ein GPU mit 200W und ein CPU mit 170W im Spiel sind und die GPU 'Zero-Fan' hat... dann sieht komplett anders aus weil fast alle Anwendungen benötigen 'nur' ein Core der CPU aber alle Anwendungen, vorallem Spiele nehmen die komplette GPU in Anspruch. Das wollte ich gerade Vermeiden, und zwar (zumindest) eine zweite Pumpe zu kaufen wenn nicht gleich ein zweite Reservoir + Radiator und Lüfter. Man muss auch den Platz dafür haben außer 400€ noch dazu. Da fällt mir ein zweiteres Problem ein und zwar: Je nachdem welche Komponente die größte Leistung abruft braucht auch als Feedback das PRM der Pumpe (z.B.) zugesandt zum herunterregeln bei erhalten der Kühlleistung, oder nicht? Braucht man da jetzt ein Arduino oder Bana-Pi zum Realisierung der Schaltung?
:
Bearbeitet durch User
Hallo zusammen, jetzt habe was gefunden das die 4 PWMs auf einmal bearbeiten könnten: http://www.linear.com/solutions/5683 http://www.linear.com/product/LTC2645 allerdings braucht man da für jede Ausgang 'an external CMOS buffer' bzw. ein 4-Fache 'CMOS-Buffer'. Bleibt allerdings das Problem mit der Weiterleitung des größte PWM-Wert an der http://www.falstad.com/circuit/e-555pulsemod.html Also bleibt die Frage: Wie kann ich das größte PWM-Signal selektieren?
Hallo maveric00, die digitale Bausteine (bzw. 4 OR) bzw. 1 OR mit vier Eingänge) ist in Theorie die beste Lösung. Das Problem ist: - Wie viele Digit sind enthalten in der 40 µs? (1/25 kHz = 40µs) - Wie lang (vieviele Bit) ist das Data-Wort 2 hoch? - Hat das Data-Wort ein Start oder ein Start und ein Stop-Bit und wie erkennt man es? - Da verschiedene Komponente (nicht nur Motherboard) sondern auch GPU 2*CPU, Chassis Fan, wie synchronisiert man die 4 PWM-Signale? Nehmen wir an alle vier Signale senden 0001 (4 Bit wobei nur ein 'High' ist) aber nicht synchron dann hätten wir im schlimmsten Fall auf der 4 Eingänge des OR-Gatters: 0001 0010 0100 1000 Dann hätten wir am Ausgang anstatt den dezimal-Wert 1 den dezimal-Wert 15 und das bedeutet anstatt minimal-Leistung höchste-Leistung und das nur bei ein halben Byte, wenn ein ganzes Byte oder mehr... ist wahrscheinlicher am Lotto zu gewinnen als die Kühlung durch die 4 PWMs (or mostly demanding) zu regeln. Meinst Du nicht? Oder hast Du mehr Infos oder ein Lösung für dieses Problem?
Hallo, bei synchronen PWM ist es einfach: Signale ver-odern und fertig. Ob das Mainboard die PWM synchron erzeug müsste man nachmessen (da gibt es eine gewisse Chance, dass das so ist), allerdings ist es eher unwahrscheinlich, dass Mainboard und Grafikkarte synchrone PWM erzeugen. Um das Maximum von nicht-synchronen PWMs zu ermitteln wird man wohl am Einfachsten einen Mikrocontroller benutzen, bei dem man die Flankenwechsel an den Eingängen dazu benutzt, einen kontinuierlichen Timer auszulesen, um so den PWM-Wert zu bestimmen. Alternativ gibt es auch Mikrocontroller, die genügend Input-Capture-Eingänge haben, so dass man quasi direkt die Timer-Werte bekommt. Diese haben aber häufig sehr viele Pins (>=64). Allerdings glaube ich fast, dass Du das Konzept einer PWM noch nicht ganz verstanden hast, wenn Du von Start/Stopp-Bits, wieviele Digits,... sprichst. Nur um es noch einmal klar zu stellen: eine PWM (Pulse-Width-Modulation) kodiert einen beliebigen Wert in dem Verhältnis zwischen High und Low einer Rechteck-Schwingung mit konstanter Frequenz. Beispiel: Es soll der Wert 137 einer 8-Bit-Variablen übertragen werden. 137 ist rund 53,5% von 256, also wird in einer Schwingungsperiode der Pin 53,5% der Zeit auf High und 46,5% der Zeit auf Low sein. Diese Abfolge wird immer wiederholt. Dies misst der Empfänger und berechnet dann den Wert, der zu den 53,5% gehört. Wenn der gleiche Wert wie beim Sender herauskommen soll, muss er natürlich die gleiche Basis (hier 256) benutzen, ansonsten ist er vollkommen frei in der Entscheidung der Basis. Er könnte also z.B. 35062 als 16-Bit-Wert setzen, oder 5,35 V im Bereich 0-10 Volt. Auflösung und Genauigkeit hängt sowohl von der Qualität des Senders als auch vom Empfänger ab. Für Deine Anwendung reichen 8 Bit Empfängerauflösung mehr als aus, daher sollte man das in Software mit einem Mikrocontroller machen können (auch bei 25 kHz PWM-Frequenz), allerdings muss man eventuell Wert auf das Timing des Programmablaufs legen, was manchmal den Einsatz von Assembler bedingt. Aber noch einmal: Ich glaube nicht, dass Du diesen Aufwand treiben musst! Vergiss alle PWMs, die Dein Mainboard oder die Grafikkarte zur Verfügung stellen. Stelle Deine Wasserkühlung auf einen festen Durchfluss ein und regel die Ventilatoren des Kühlers mit der gemessenen Wassertemperatur (geht im Zweifel auch ganz analog mit Thermo-Widerstand und Transistor als Stromquelle für den Lüfter). Damit erreichst Du auch das minimale notwendige Lüftungsgeräusch für die benötigte Kühlleistung. Den Impuls-Ausgang des Lüfters kannst (musst?) Du dann ggf. mit den Lüfter-Steckern vom Mainboard und Grafikkarte verbinden, damit diese keinen Lüfterdefekt melden. Schöne Grüße, Martin Edit sagt: Besser "Rechteck" als "Digital"
:
Bearbeitet durch User
Hallo maveric00, da hast du absolut recht wegen µC (64 Pins, Assembler+ Programmierung, Kosten, Aufwand), die Späße mit der Sync mache ich auch nicht allerdings wäre auch eine 'dedicated solution' und da ich bis Ende des Jahres zwei PC und ein Server aufbauen muss... brauche eine Standard-Lösung. Soweit ich verstanden habe (danke dir, nach deine Erklärung) die Zeit-Länge des High-Signals innerhalb der 40 µs (25 kHz die von 21 bis 28 schwanken können) bestimmt den Wert des PWM (die Höhe der Spannung unten der die Lüfter und Pumpe laufen sollen). Auflösung: Da gibt der IC: http://www.linear.com/purchase/LTC2645 in 8, 10 und 12 Bit für 4,65 $. Diesen IC hat 4 PWM-Eingänge und 4 DAC-Ausgänge und bearbeitet PWMs von 30 Hz bis 100 kHz (der Swiss-Knife das ich gesucht habe). Was an Genauigkeit angeht, hier wird empfohlen ein 4-Fache 'CMOS-Buffer'. Das muss ich suchen oder kannst du mir ein Tipp geben? Meine Frau wird bestimmt Nichts einstellen an Ihren PC ganz zu schweigen von nachregeln, sie spielt oft aber regelt nicht mal die Lautstärke und die Indirekte-Messung des Wassers (mit Temperatur-Wiederstand) ist zu langsam bzw. zu weit hinten (nicht direkt an CPU, GPU), für den Preis von nur ein solche Sensor muss ich viel mehr ausgeben (min. 30 €) als für die gesamte Schaltung und ist auch zu riskant. Nun an diesem Punkt habe ich 4*PWM-Wert-Analog und jetzt muss ich immer den höchste Wert auspicken. Wie mache ich das am bestens? Ob den 'CMOS-Buffer' überhaupt brauche... bin mir auch nicht ganz sicher. Schöne Grüßen und Danke dir vielmals für deinen schon gegebene Antworten.
Hallo, zu den anderen Sachen fällt mir momentan nichts ein, aber hierzu: Tony A. schrieb: > Meine Frau wird bestimmt Nichts einstellen an Ihren PC ganz zu schweigen > von nachregeln, sie spielt oft aber regelt nicht mal die Lautstärke und > die Indirekte-Messung des Wassers (mit Temperatur-Wiederstand) ist zu > langsam bzw. zu weit hinten (nicht direkt an CPU, GPU), für den Preis > von nur ein solche Sensor muss ich viel mehr ausgeben (min. 30 €) als > für die gesamte Schaltung und ist auch zu riskant. Das die Temperaturmessung "ganz hinten" erfolgt ist im Fall der Wasserkühlung nicht schlimm, da Wasser eine recht hohe Wärmekapazität hat: Wenn Du in Deinem System 0,5 L Wasser hast (mit Ausgleichsbehälter), dann erwärmt sich das Wasser bei einem Standard-Computer (~500W) mit rund 1°C alle 4 Sekunden. Da die Kühlleistung "vorne" nur von der Temperaturdifferenz zwischen Chip und Wasser abhängt, verringert sie sich selbst dann nicht nennenswert, wenn die Kühlung "hinten" 10 Sekunden verzögert erfolgen würde, im Gegensatz zu einem Luftkühler, bei dem nach 10 Sekunden Lüfterstillstand eventuell der Chip schon gestorben ist. Auch sind 30 Euro viel zu viel für nur den Sensor; die komplette Lüftersteuerung kann z.B. mit diesem Bausatz erfolgen: https://www.pollin.de/p/bausatz-pc-lueftersteuerung-810243 Da ist dann für 6,95€ alles 'drin (nur eventuell ein kleiner Kühlkörper an T2, wenn mehrere Lüfter angeschlossen werden sollen). Wichtig bei diesem Ansatz ist halt, dass der Durchfluss auf einen festen, ausreichenden Wert eingestellt wird. Das sollte aber kein Problem sein, da sowohl die Leistungsaufnahme als auch vor allem die Lautstärke der Wasserpumpe vernachlässigbar sein sollten. Schöne Grüße, Martin
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.