Permalänk
Medlem

Idé - CPU-laststyrd fläktstyrning

Jag har funderat lite på att bygga en fläktstyrning, men då ska den givetvis vara avancerad så man får lite utmaning.

Det jag undrar är om det finns något program som tar CPU-lasten i % och skriver till en COM-port?

Idén är att jag med en PIC ska läsa av det värdet och sedan reglera fläktarna utifrån det + andra parametrar, plus erbjuda larmfunktioner och annat smått och gott.

Eftersom jag har vattenkylning är det inte optimalt att enbart reglera efter temperaturen.

Permalänk
Medlem

Jag har skrivit ett liknande program själv. Det funkar iofs bara i windows, för jag har användr windows APIn för att ta reda på CPU belastningen.
Mitt program räknar ut CPU belastning och tänder sedan en diodstapel bakom fronten på datorn via parallellporten.
Om det är nåt av intresse så kan jag förklara lite hur jag har gjort.

Visa signatur

Flest prylar när man dör vinner

Permalänk
Medlem

Men borde det inte räck om man mätar cputemp och möjligen vattentemp samt kanske någon till temp och sen så styr man fläktarna med det bara??

Edit: För det är ju ändå förhållandevis enkelt men samtidigt väldigt smidigt.....

Edit2: Samt att nyare moderkort har väl varken com-portar eller paralell portar... vilket är kasst...

Visa signatur

Numer nästan helt drogfri!

Permalänk
Citat:

Ursprungligen inskrivet av Fredde
Men borde det inte räck om man mätar cputemp och möjligen vattentemp samt kanske någon till temp och sen så styr man fläktarna med det bara??

Edit: För det är ju ändå förhållandevis enkelt men samtidigt väldigt smidigt.....

Edit2: Samt att nyare moderkort har väl varken com-portar eller paralell portar... vilket är kasst...

Om den skulle mäta vattentemp skulle den nog bli för "långsam" skulle jag tro, att det skulle ta för lång tid innan fläktarna går igång/får högre spänning.

Visa signatur

Workstation: Intel Core i5-10400 | Gigabyte B460M DS3H | 16GB DDR4 | Geforce GTX1660 SUPER 6GB |
Server: Dell R730xd | Intel Xeon E5-2640 | 64GB DDR3 ECC RAM | Dell VMware vSphere ESXi 6.5
NAS: Synology 212J 2x4TB, Synology 218play 2x4TB | MSMCP CCNA1

Permalänk
Medlem

Helt korrekt, temperaturerna i ett vattensystem varierar väldigt långsamt och över ett litet spann. Särskilt det lilla spannet (i mitt fall ca 6°) gör att systemet även måste mäta väldigt exakt, ett mätfel på 2° kan ge hög ljudnivå i onödan. Att använda CPU-belastningen gör att fläktarna bara går på fullvarv när det bäst behövs.

Angående portarna så har mitt (NF7-S 2.0) definitivt COM- och LPT-portar. Skulle inte köpa ett moderkort utan det.

Angående programmeringen så vill jag undvika att göra själva Windows-programmet själv. Jag kan helt enkelt inte sådan programmering eftersom jag inte hållit på med det. C-programmeringen till PIC:en är lagom avancerat.

Permalänk
Medlem

Det finns ytterliggare problem med att bara styra på processorlasten, om du kör HLT i Win 9x så belastas cpu'n med 100% trots att den går svalare (HLT = maskinkommando som stoppar processorn och stryper onödig spänning osv till den).

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Trash
Det finns ytterliggare problem med att bara styra på processorlasten, om du kör HLT i Win 9x så belastas cpu'n med 100% trots att den går svalare (HLT = maskinkommando som stoppar processorn och stryper onödig spänning osv till den).

Eftersom jag kör win XP så är det inget problem.

Permalänk
Medlem

Men det program jag har skrivit kommer inte att påverkas av HLT problemet. Det listar alla processer som körs och kollar sedan under ett känt tidsintervall, säg 500 ms, hur länge vaje program kört på CPUn och summerar alltihop och delar med tidsintervallet.

Ghost: Jag tror det blir svårt att hitta ett färdigt program som gör exakt det du vill ha. Men du skulle kunna få mitt program färdigkomplierat och klart.

Visa signatur

Flest prylar när man dör vinner

Permalänk
Medlem

Jag skulle satsa på att mäta vattentempen. Om processorn bara jobbar i korta intervall kommer det att låta i onödan. Sen är det väl kul om temperaturen är densamma när det är varmt i rummet som när det är kallt?
Skaffa en termometer med hög upplösning bara, behöver ju inte vara så exakt.
Sen ere "bara" att programmera ett riktigt reglersystem, alltså så du kan ställa in "håll 30C" och så gör den det no matter what.
Alltså oberoende av rumstemp och så.

Byggde ett reglersystem i skolan, fast då var det bara en vattentank med hål i och en pump där vattennivån skulle hållas konstant.
Fast det var rätt avancerat ändå, använde sk. PID regulering.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Blahhzt
Jag skulle satsa på att mäta vattentempen. Om processorn bara jobbar i korta intervall kommer det att låta i onödan. Sen är det väl kul om temperaturen är densamma när det är varmt i rummet som när det är kallt?
Skaffa en termometer med hög upplösning bara, behöver ju inte vara så exakt.
Sen ere "bara" att programmera ett riktigt reglersystem, alltså så du kan ställa in "håll 30C" och så gör den det no matter what.
Alltså oberoende av rumstemp och så.

Byggde ett reglersystem i skolan, fast då var det bara en vattentank med hål i och en pump där vattennivån skulle hållas konstant.
Fast det var rätt avancerat ändå, använde sk. PID regulering.

Jag har också hållit på med reglersystem i plugget, med tanke på att jag klarade (om)tentan i den kursen med noll poängs marginal så är det nog inget jag ska fippla för mycket med.

Det skulle ju faktiskt gå att använda vattentempen, jag har en A/D-omvandlare PCF8591 över sedan ett projekt i plugget. Bara en lämplig sensor som fattas, den ska vara hyfsat linjär och tåla vatten.

Rumstempen är inga problem eftersom den är 20+/-2° konstant (bor i källaren).

Permalänk
Medlem

kan du inte använda en termistor med låg tolerans...??

Visa signatur
Permalänk
Medlem
Citat:

Ursprungligen inskrivet av macdick
kan du inte använda en termistor med låg tolerans...??

Termistorer är ju inte linjära, och linjärisering är allmänt jobbigt att hålla på med.

Permalänk

men varför hålla på att mäta CPU belastningen? Mät CPU tempen och vattentempen. Sedan jämför du dom och ställer in en viss gräns den inte får gå över eller nåt. Om du mäter belastningen kommer ju fläktarna att gå upp och ner i varvtal hela tiden. Är inte det ännu värre? Jag tror det är svårare att hålla på att läsa av tempsensorer och jämföra dom än att läsa av belastningen från datorn.

Visa signatur
Permalänk
Medlem

Föreslår att du använder något av de här båda chippen för att styra fläkthastigheten istället för att använda COM-porten...

http://www.maxim-ic.com/quick_view2.cfm/qv_pk/2296/ln/en

EDIT: Så här kan du koppla in dig på SMBussen...

http://w1.500.telia.com/~u50014558/1668application/Epox_8rda_...

Det är baksidan av minnessocketarna på mitt EPOX 8rda+.

Visa signatur

Man kan inte polera en bajskorv

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Pelle76
EDIT: Så här kan du koppla in dig på SMBussen...

http://w1.500.telia.com/~u50014558/1668application/Epox_8rda_...

Det är baksidan av minnessocketarna på mitt EPOX 8rda+.

Men det finns ju en fin kontakt märkt "SM-bus", varför då hålla på med att löda? Eller kontakten kanske inte finns på alla moderkort?

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Ghost
Men det finns ju en fin kontakt märkt "SM-bus", varför då hålla på med att löda? Eller kontakten kanske inte finns på alla moderkort?

Lyckliga du... Näe den är inte så vanlig, men grattis...

Visa signatur

Man kan inte polera en bajskorv

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Pelle76
Lyckliga du... Näe den är inte så vanlig, men grattis...

De Socket A-kort jag har haft tidigare (Asus A7V, Abit KT7A-RAID) och mitt nuvarande Abit NF7-S har alla den kontakten. Men jag behöver inte SM-bussen, eftersom chippen (som nu är på väg till mig som samples) stöder I2C så kan jag lätt få PIC:en att snacka med dem.

Nu letar jag bara efter små tempsensorer som kommunicerar med I2C, skulle vara jäkligt smutt.

Såg förresten att båda kretsarna var ytmonterade. Det ska bli skönt att köra 100% ytmonterat och slippa det där #¤&#¤& borrandet.

Permalänk
Medlem

Men du behöver ju inte piccen om du kör med dom där chippen... Du kan ju köra allt ifrån datorn...

Jag kan rekomendera Maxim 1668 för att logga temps...

Så här gjorde jag
http://forum.sweclockers.com/showthread.php?s=&threadid=13631...

Edit: Maxim har massor med olika temsensor-chip som kommunicerar via SMB/I2C. (SMB och I2C är i stort sett samma sak)

Visa signatur

Man kan inte polera en bajskorv

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Pelle76
Men du behöver ju inte piccen om du kör med dom där chippen... Du kan ju köra allt ifrån datorn...

Jag kan rekomendera Maxim 1668 för att logga temps...

Så här gjorde jag
http://forum.sweclockers.com/showthread.php?s=&threadid=13631...

Edit: Maxim har massor med olika temsensor-chip som kommunicerar via SMB/I2C. (SMB och I2C är i stort sett samma sak)

Jag vill inte köra från datorn, det ska vara en display på fronten som visar vissa parametrar. Dessutom är jag bättre på att programmera PIC:ar (går utmärkt i C), jag har överhuvudtaget aldrig hållit på med programmering för Windows.

Måste få tag på en billig LCD-display med RS232-interface också. Helst 4x20, och kan man köpa från ett svenskt företag är det bara bra.