Obsah:

CPU a GPU řízený řadič ventilátoru: 6 kroků (s obrázky)
CPU a GPU řízený řadič ventilátoru: 6 kroků (s obrázky)

Video: CPU a GPU řízený řadič ventilátoru: 6 kroků (s obrázky)

Video: CPU a GPU řízený řadič ventilátoru: 6 kroků (s obrázky)
Video: Going Rogue: How Out of Band Management Revolutionizes IT: A Look at HP iLO 2024, Červenec
Anonim
Ovladač ventilátoru poháněný CPU a GPU
Ovladač ventilátoru poháněný CPU a GPU

Nedávno jsem upgradoval grafickou kartu. Nový model GPU má vyšší TDP než můj CPU a starý GPU, takže jsem také chtěl nainstalovat další ventilátory skříně. Můj MOBO má bohužel pouze 3 konektory pro ventilátory s regulací otáček a lze je propojit pouze s teplotou CPU nebo čipové sady. Rozhodl jsem se to napravit tím, že jsem navrhl svůj vlastní řadič PC ventilátoru, který čte otáčky již nainstalovaných ventilátorů (oba připojené k MOBO a poháněné teplotou CPU a ty, které chladí GPU) a má dva výstupní kanály. Kanál A využívá rychlost teplotně propojených ventilátorů CPU a GPU k řízení 3pólových výstupních ventilátorů s proměnnou rychlostí. Kanál B snímá pouze rychlost ventilátorů GPU a jeho výstupní obvod využívá přídavný tranzistor, který umožňuje dosáhnout nižších otáček jím poháněných ventilátorů (funguje dobře se semipasivní grafickou kartou).

Čtení rychlosti jiných ventilátorů je podle mého názoru jednodušší a levnější než instalace dalších teplotních sond přímo u procesorů pokrytých chladiči (v zásadě vyžaduje připojení drátu tachometru ventilátoru přímo na kolík mikrokontroléru).

Zde jsou popsány některé ze způsobů ovládání otáček ventilátoru. Rozhodl jsem se použít nízkofrekvenční PWM, ale s několika úpravami metody popsané v článku. Za prvé, každý kanál má 6 diod zapojených do série, které lze použít ke snížení napětí, které napájí ventilátor o 4-5V. V tomto nastavení jsou úrovně napětí PWM ~ 8V - 12V a 0V - ~ 8V (není k dispozici v kanálu A) místo 0V - 12V. To výrazně snižuje hluk vytvářený ventilátorem. Zde je popsán další trik, který jsem použil k tomu, aby se ventilátor ovládaný tímto způsobem ztišil. Tento trik vyžaduje instalaci RC obvodu mezi výstup mikrokontroléru a bránu MOSFETu, který jsem použil k přepínání úrovní napětí ventilátoru. To snižuje rychlost přeběhu signálu, který ovládá MOSFET, a tím činí úhlové trhnutí ventilátoru během změny úrovně napětí méně výrazným, což snižuje vibrace a napěťové špičky.

Zásoby

Díly a materiály:

  • ATtiny13 nebo ATtiny13A v pouzdře 8-PDIP
  • 8kolíková zásuvka DIP
  • 3x tranzistor IRF530
  • 12x dioda 1N4007 (jakákoli jiná 1A dioda s poklesem napětí kolem 0,7V by měla fungovat)
  • Radiální elektrolytický kondenzátor 220uF/25V
  • Radiální elektrolytický kondenzátor 10uF/16V
  • 5x 100nF keramický diskový kondenzátor
  • Rezistor 10k 0,25W
  • 4x odpor 22k 0,25W
  • 2x 1k 0,25W odpor
  • Hmatové tlačítko 6x6 mm
  • 2x 2kolíkový 2,54mm přímý zástrčkový kolíkový konektor
  • 4x 3pinový konektor ventilátoru (Molex 2510), alternativně můžete použít běžné kolíkové záhlaví, pokud chcete (udělal jsem to), ale pak musíte být opatrní při připojování ventilátorů a konektory těchto ventilátorů budou připevněna méně bezpečně
  • 4kolíkový konektor Molex, zásuvka/kolíky (napájecí konektor AMP MATE-N-LOK 1-480424-0), použil jsem jeden, který byl součástí adaptéru Molex samec na 2x SATA samice dodávaný s nějakým starým MOBO
  • 2x propojovací kabely s 2,54 mm zásuvkami (nebo pouzdry konektorů + kolíky + vodiče), budou připájeny ke vstupním kabelům otáčkoměru (nebo přímo k jejich konektorům na deskách plošných spojů)
  • prefabrikáty (50 mm x 70 mm, min. pole 18 x 24 otvorů), alternativně můžete lepenou měděnou desku vyleptat sami a vyvrtat otvory
  • pár kousků drátu
  • izolační páska
  • páska z hliníkové fólie (pokud se chystáte připojit konektor k zadní desce GPU, viz krok 5)
  • papír

Nástroje:

  • diagonální řezačka
  • kleště
  • plochý šroubovák
  • užitkový nůž
  • multimetr
  • pájecí stanice
  • pájka
  • Programátor AVR (samostatný programátor jako USBasp nebo můžete použít ArduinoISP
  • propojovací kabely a propojovací kabely, které budou použity k programování mikrokontroléru mimo PCB (nebo jakýkoli jiný nástroj, který může dosáhnout tohoto cíle)

Krok 1: Prohlášení

Konstrukce tohoto zařízení vyžaduje použití středně nebezpečných nástrojů a může způsobit újmu nebo poškození majetku. Některé z požadovaných kroků mohou způsobit neplatnost záruky na váš hardware nebo dokonce jeho poškození při nesprávném provedení. Popsané zařízení stavíte a používáte na vlastní nebezpečí

Krok 2: Jak funguje ovládání ventilátoru

Jak funguje ovládání ventilátoru
Jak funguje ovládání ventilátoru

Kanál A používá dva vstupy. Ke každému z těchto vstupů kanálu A je přiřazena úroveň, takže můžeme volat tyto úrovně A0 a A1. Standardně jsou obě tyto úrovně 0. Oběma vstupům jsou přiřazeny prahové hodnoty otáček (3 prahy na vstup). Když je dosažen první práh, A0 nebo A1 se zvýší na 1, když druhý se zvýší na 2 a třetí práh nastaví jednu ze vstupních úrovní na 3. Později se A0 a A1 spojí (jednoduše sečtou a zabrání dosažení vyšší hodnoty než 3), takže hlavní výstupní číslo úrovně kanálu A v rozsahu 0-3. Toto číslo se používá k řízení rychlosti výstupních ventilátorů, 0 znamená, že jsou napájeny 7-8V (pracovní cyklus 0%). Vyšší výstupní úrovně znamenají, že ventilátor je napájen z plného napětí 12V na 33%, 66% nebo 100% cyklu 100 ms nebo 33 ms (záleží na zvolené frekvenci).

Kanál B má pouze jeden vstup (B1, fyzicky je sdílen s kanálem A [pin PB1]). Existuje šest možných úrovní B1 (1-6), výchozí úroveň je 1. Existuje pět prahových hodnot, které jsou schopny zvýšit B1. B1 se používá jako hlavní výstupní úroveň kanálu B. Když je 1, 7-8V napájí výstupní ventilátory na 33% doby cyklu v jednom cyklu, v druhém na 66%, po zbytek času je napájení odpojeno. Úroveň 2 znamená, že 66% každého cyklu je 7-8V, zbytek 0V. Úroveň 3 znamená, že je neustále aplikováno 7-8V. Úrovně 4-6 znamenají, že ventilátor je napájen z plných 12 V pro 33%, 66% nebo 100% cyklu, po zbytek času je napětí 7-8V.

Frekvence tohoto řízení PWM je ve výchozím nastavení 10 Hz. Lze jej zvýšit na 30 Hz zavřením propojovacích kolíků J7.

Když je dosaženo vyšší prahové hodnoty, úrovně A0, A1 a B1 se okamžitě zvýší. Když však otáčky klesnou, úroveň se udrží 200 ms a může se snížit pouze o 1 za 200 ms. Má zabránit rychlým změnám těchto úrovní, když jsou otáčky vstupního ventilátoru velmi blízko prahu.

Krok 3: Pájení elektronických součástek

Pájení elektronických součástek
Pájení elektronických součástek
Pájení elektronických součástek
Pájení elektronických součástek
Pájení elektronických součástek
Pájení elektronických součástek

Pájejte všechny elektronické součásti na prefboard (kromě Attiny13, bude později vloženo do zásuvky). K elektrickému propojení mezi součástmi použijte měděné dráty (ty z UTP kabelu o průměru 0,5 mm by měly být perfektní). Pokud máte potíže s tlačením velkých vodičů vycházejících z konektoru Molex (AMP MATE-N-LOK), můžete pro ně vyvrtat větší otvory. Pokud nechcete používat vrtačku, můžete vždy několikrát otočit šroubem uvnitř malých otvorů v prefabrikátech. Zajistěte, aby vodiče nezpůsobily žádné zkraty.

Pokud dáváte přednost výrobě vlastních desek plošných spojů, poskytuji také soubory ve formátu.svg (rozměry desky jsou 53,34x63,50 mm) a.pdf (velikost stránky A4, uvnitř archivu.zip). Jednostranná měděná deska by měla stačit, protože na přední straně je pouze jedno připojení (lze jej provést pomocí drátu), takže soubory pro přední stranu jsou k dispozici jako hlavní, aby bylo možné toto spojení identifikovat.

Důrazně doporučuji pokrýt zadní stranu desky plošných spojů izolačním materiálem, který zabrání náhodnému zkratu. Použil jsem několik vrstev běžného papíru, které jsou k okrajům desky plošných spojů přidržovány několika proužky izolační pásky.

Krok 4: Programování mikrokontroléru ATtiny

Programování mikrokontroléru ATtiny
Programování mikrokontroléru ATtiny
Programování mikrokontroléru ATtiny
Programování mikrokontroléru ATtiny

Program, který běží na MCU, má pevně naprogramováno několik prahů otáček vstupních ventilátorů. Tyto prahové hodnoty jsou umístěny na začátku souboru fan_controller.c. Řádek, který obsahuje první práh, který je zodpovědný za mírné zvýšení výstupní úrovně kanálu A v reakci na vstup_0 ventilátoru přesahující 450 ot / min, vypadá takto:

#define A0_SPEED_0 3 // 450 ot / min

Pokud chcete změnit prahovou hodnotu RPM, musíte číslo 3 nahradit něčím jiným. Pokud toto číslo zvýšíte o 1, změní se práh o 150 otáček za minutu.

Další věc, kterou můžete chtít změnit, je snížení zpoždění výstupní úrovně. Toto zpoždění zabraňuje rychlým změnám výstupní úrovně, když jsou otáčky vstupního ventilátoru velmi blízko prahu. Ovládají to 3 řádky (protože kanál A používá 2 vstupy a kanál B používá 1) a první z nich vypadá takto:

if (channel_A0_lower_rpm_cycles> 2) {

Zvýšení čísla 2 prodlouží toto zpoždění. Zpoždění se počítá v cyklech 100 ms.

Ke kompilaci zdrojového kódu a poté programového čipu budete potřebovat nějaký software. Na distribuci Linuxu založenou na Debianu ji lze nainstalovat spuštěním následujícího příkazu:

sudo apt-get install avr-libc gcc-avr avrdude

Pokud používáte Windows, můžete zkusit nainstalovat WinAVR suite, který také obsahuje požadovaný software.

Chcete -li zkompilovat zdrojový kód, musíte provést toto:

avr -gcc -mmcu = attiny13 -Os -Wall fan_controller.c -o fan_controller.out -lm

Chcete -li vytvořit soubor.hex, musíte zkopírovat tento řádek do terminálu:

avr -objcopy -O ihex -R.eeprom fan_controller.out fan_controller.hex

Tento příkaz umožňuje zkontrolovat, kolik paměti program použije (text je Flash, data jsou proměnné, které budou uloženy ve Flashi a poté zkopírovány do RAM, a bss jsou proměnné inicializované s hodnotou 0 v RAM):

velikost AVR fan_controller.out

Když je váš soubor.hex připraven, musíte vložit ATtiny13 do prkénka a propojit propojovacím kabelem s programátorem. Nejlepší je odpojit programátor od napájení, když jej připojujete k MCU. Ponechte výchozí pojistkové bity (H: FF, L: 6A). Pokud je váš programátor USBasp, tento příkaz naprogramuje flash paměť MCU:

avrdude -c usbasp -p t13 -B 8 -U flash: w: fan_controller.hex

-B 8 mění rychlost přenosu mezi programátorem a MCU (bitclock). Pokud máte problémy s připojením k mikrokontroléru, bude možná nutné jej změnit na vyšší hodnotu.

Když je MCU připraven, vložte jej do zásuvky DIP 8. Chcete-li odstranit MCU z prkénka, obvykle jej vypáčím plochým šroubovákem.

Krok 5: Připojení ventilátorů k zařízení

Připojení ventilátorů k zařízení
Připojení ventilátorů k zařízení
Připojení ventilátorů k zařízení
Připojení ventilátorů k zařízení
Připojení ventilátorů k zařízení
Připojení ventilátorů k zařízení

Jako ventilátor vstupu 0 (ten připojený k PB0) jsem vybral jeden z ventilátorů skříně zapojených do MOBO, jejichž rychlost se měnila podle teploty CPU. Odstranil jsem izolaci z části drátu tachometru ventilátoru a připájel jsem k němu jeden konec propojovacího kabelu. Druhý konec (s připojeným 2,54 mm konektorem) bude připojen k regulátoru ventilátoru. Pokud je propojovací kabel příliš krátký, prodlužte jej pájením jiného kabelu mezi dříve uvedenými. Poté překryjte všechny odkryté vodiče izolační páskou.

Vstup 1 čte rychlost ventilátorů GPU (v mém případě jsou jich ve skutečnosti 3, ale na desce grafické karty je pouze jeden konektor ventilátoru). Pájel jsem propojovací kabel vstupu 1 přímo k jednomu z vodičů 4pinového konektoru ventilátoru mini GPU umístěného na desce plošných spojů. Vzhledem k tomu, že tento vodič byl umístěn mezi deskou plošných spojů a zadní deskou, izoloval jsem zadní desku nejprve kusem papíru (zejména proto, že materiál zadní desky byl docela pájitelný) a poté pevně připojenou zásuvkou kabelu na druhou stranu zadní desky pomocí pásky z hliníkové fólie. Pak lze ventilátory GPU připojit ke kolíku PB1 pomocí jiného (prodlouženého) propojovacího kabelu. Pokud nechcete nic pájet na desku grafické karty, můžete k vodičům ventilátoru připojit propojovací kabel nebo vytvořit adaptér, který bude umístěn mezi ventilátory a konektorem na desce plošných spojů, rozhodnutí je na vás.

Ventilátor přenáší svou aktuální rychlost pomocí drátu tachometru připojením tohoto vodiče k zemi přes otevřený odtok/kolektor dvakrát za otáčku (rotor ventilátoru má obvykle 4póly [NSNS], které jsou detekovány Hallovým senzorem, výkon ventilátoru klesá, když na typu pólu). Na druhé straně je tento vodič obvykle vytažen na úroveň napětí 3,3 V. Pokud si nejste jisti, zda máte správný vodič, můžete použít osciloskop nebo vytvořit jeden z detekčních obvodů, které jsou nakresleny na posledním obrázku v tomto kroku. První z nich vám umožňuje zkontrolovat maximální napětí, které se objeví v měřeném místě, druhý pak zkontrolovat, zda se tam objevují nízkofrekvenční impulsy.

Vstupní piny ATtiny by měly číst 3,3 V jako VYSOKÝ stav, ale pokud s tím máte problémy, můžete zkusit snížit napětí napájející MCU (zvýší to i odpor MOSFETů!). Neměl jsem žádné problémy, přesto jsem se rozhodl, že tuhle myšlenku zahrnu.

Když jsou vstupní ventilátory připraveny, můžete ovladač ventilátoru umístit do skříně počítače na místo, které si vyberete. Namontoval jsem ho na stranu dvou svých prázdných pozic 5,25”disku tím, že jsem jej zatlačil mezi kovové části šachty, položil za něj nějaký papír a zajistil jej na místě pomocí zipu, který se protlačil jedním z velkých otvorů v prefboardu a některých dalších otvorech v 5,25”pozici. Zajistěte, aby se žádné kovové části skříně počítače nemohly dotknout nechráněných vodičů ovladače ventilátoru.

Nyní můžete k regulátoru připojit 3pinové výstupní ventilátory. Výstupní ventilátory připojené ke kanálu A budou propojeny s ventilátory CPU i GPU a minimální napětí, které je bude napájet, bude asi 7-8V. Ventilátory zapojené do výstupních konektorů kanálu B budou poháněny pouze ventilátory chladiče GPU a jejich napětí může klesnout na 0 V (ale pouze po dobu 66 ms každých druhý cyklus 100 ms při nejnižší úrovni výstupní jednotky). Fanoušci by neměli odebírat více než 1 A na výstupní kanál.

Krok 6: Další změny, které jsem provedl na svém počítači

Další změny, které jsem provedl na svém počítači
Další změny, které jsem provedl na svém počítači
Další změny, které jsem provedl na svém počítači
Další změny, které jsem provedl na svém počítači
Další změny, které jsem provedl na svém počítači
Další změny, které jsem provedl na svém počítači
Další změny, které jsem provedl na svém počítači
Další změny, které jsem provedl na svém počítači

Kanál A pohání dva ventilátory umístěné v horní části mého kufru. Jsou stejného modelu a jsou napájeny stejným napětím, díky kterému se točí velmi podobnými rychlostmi. V důsledku toho se objevil nějaký slyšitelný rytmus (interferenční obrazec mezi dvěma zvuky mírně odlišných frekvencí). Abych to napravil, nainstaloval jsem 2 diody (jednu pravidelnou a jednu Schottky) do série s jedním z ventilátorů. Tím se snížilo napětí a rychlost ventilátoru, takže rytmus zmizel.

Další změnou, která souvisí s jednou z těch, které jsem provedl u ventilátorů, je instalace papírového nástěnného níže umístěného ventilátoru umístěného více vpředu. Jejím cílem je zabránit tomuto ventilátoru nasávat vzduch, který dosud neprošel žádným chladičem. Zkoušel jsem také vyrobit jiné papírové stěny, které zabraňovaly nasávání odpadního vzduchu z GPU do chladiče CPU. Ve skutečnosti snížily teplotu procesoru, ale za cenu většího zahřátí GPU, takže jsem je nakonec odstranil.

Další neobvyklou úpravou, kterou jsem provedl, je vyjmutí prachového filtru na výfuku těchto dvou špičkových ventilátorů (většinu času je vzduch z skříně vytlačován tak jako tak, a když je počítač vypnutý, zásuvka umístěná mírně nad skříní počítače jej chrání. z prachu). Také jsem nainstaloval 92mm ventilátor před dvě prázdné pozice 5,25”jednotek (ovladač ventilátoru je umístěn hned za ním). Tento ventilátor není držen žádnými šrouby, jen se krásně vejde mezi 120mm ventilátor pod ním a optickou mechaniku výše (povrchy obou z nich jsou pokryty izolační páskou, která zajišťuje určité tlumení vibrací).

Doporučuje: