Turinys:
2025 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2025-01-13 06:57
Neseniai atnaujinau savo vaizdo plokštę. Naujasis GPU modelis turi didesnį TDP nei mano procesorius ir senas GPU, todėl taip pat norėjau įdiegti papildomų dėklų ventiliatorių. Deja, mano MOBO turi tik 3 ventiliatoriaus jungtis su greičio valdymu ir jas galima susieti tik su procesoriaus ar mikroschemų rinkinio temperatūra. Aš nusprendžiau tai ištaisyti, sukūręs savo asmeninio kompiuterio ventiliatoriaus valdiklį, kuris nuskaito jau įdiegtų ventiliatorių (tiek prijungtų prie MOBO, tiekiamo pagal CPU temperatūrą ir tuos, kurie atvėsina GPU), apsukų greitį ir turi du išvesties kanalus. A kanalas naudoja tiek su CPU, tiek su GPU susietų ventiliatorių greitį, kad būtų galima valdyti kintamo greičio 3 kontaktų išvesties ventiliatorius. B kanalas jaučia tik GPU ventiliatorių greitį, o jo išvesties grandinėje naudojamas papildomas tranzistorius, leidžiantis pasiekti mažesnį jo varomų ventiliatorių greitį (jis gerai veikia su pusiau pasyvia vaizdo plokšte).
Mano nuomone, skaityti kitų ventiliatorių greitį yra lengviau ir pigiau, nei įdiegti papildomus temperatūros zondus šalia procesorių, uždengtų radiatoriais (tam iš esmės reikia prijungti ventiliatorių tachometrų laidus tiesiai prie mikrovaldiklio kaiščio).
Čia aprašyti kai kurie ventiliatoriaus greičio valdymo būdai. Aš nusprendžiau naudoti žemo dažnio PWM, tačiau šiek tiek pakeisdamas straipsnyje aprašytą metodą. Pirma, kiekviename kanale yra 6 nuosekliai prijungti diodai, kurie gali būti naudojami 4-5 V įtampai, kuri maitina ventiliatorių, sumažinti. Šioje sąrankoje PWM įtampos lygiai yra ~ 8V - 12V ir 0V - ~ 8V (nėra A kanale), o ne 0V - 12V. Tai labai sumažina ventiliatoriaus keliamą triukšmą. Čia aprašytas dar vienas triukas, kuriuo ventiliatorius valdomas taip tyliau. Šiam triukui reikia įdiegti RC grandinę tarp mikrovaldiklio išvesties ir MOSFET vartų, kuriuos naudoju ventiliatoriaus įtampos lygiui keisti. Tai sumažina signalo, valdančio MOSFET, pasukimo greitį, o tai sumažina ventiliatoriaus kampinį trūkčiojimą, kai keičiasi įtampos lygis, sumažėja vibracija ir įtampos šuoliai.
Prekės
Dalys ir medžiagos:
- ATtiny13 arba ATtiny13A 8-PDIP dėkle
- 8 kontaktų DIP lizdas
- 3x IRF530 tranzistorius
- 12x 1N4007 diodas (turėtų veikti bet kuris kitas 1A diodas, kurio įtampos kritimas yra apie 0,7 V)
- 220uF/25V radialinis elektrolitinis kondensatorius
- 10uF/16V radialinis elektrolitinis kondensatorius
- 5x 100nF keraminis diskinis kondensatorius
- 10k 0,25W rezistorius
- 4x 22k 0,25W rezistorius
- 2x 1k 0,25W rezistorius
- 6x6 mm lytėjimo jungiklio mygtukas
- 2x 2 kontaktų 2,54 mm tiesi kištuko galvutė
- 4x 3 kontaktų vyriško ventiliatoriaus jungtis („Molex 2510“), jei norite, galite naudoti įprastas kaiščių antraštes (aš tai padariau), tačiau tuomet turite būti ypač atsargūs, kai prijungiate ventiliatorius, o tų ventiliatorių jungtys bus pritvirtintas mažiau saugiai
- 4 kontaktų „Molex“jungtis, moteriškas korpusas/kištukiniai kaiščiai (AMP MATE-N-LOK 1-480424-0 maitinimo jungtis), aš naudoju tą, kuris buvo „Molex male“dalis ir 2 x SATA adapteris, komplektuojamas su senu MOBO
- 2x trumpieji kabeliai su 2,54 mm jungtimis (arba jungčių korpusai + kaiščiai + laidai), jie bus lituojami prie įvesties ventiliatorių tachometro laidų (arba tiesiai prie jų jungčių PCB)
- paruošiamoji lenta (50 mm x 70 mm, min. 18 x 24 skylių matrica), taip pat galite patys išgraviruoti variu dengtą plokštę ir gręžti skyles
- keli vielos gabalai
- izoliacinė juosta
- aliuminio folijos juosta (jei ketinate prijungti jungtį prie GPU galinės plokštės, žr. 5 veiksmą)
- popieriaus
Įrankiai:
- įstrižainės pjaustytuvas
- replės
- plokščiasis atsuktuvas
- naudingas peilis
- multimetras
- litavimo stotis
- lituoklis
- AVR programuotojas (atskiras programuotojas, pvz., „USBasp“arba galite naudoti „ArduinoISP“
- duonos lentos ir jungiamieji kabeliai, kurie bus naudojami mikrovaldiklio programavimui už PCB ribų (arba bet kuriam kitam įrankiui, galinčiam pasiekti šį tikslą)
1 žingsnis: atsisakymas
Šio prietaiso konstrukcija reikalauja naudoti vidutiniškai pavojingus įrankius ir gali pakenkti turtui. Kai kurie būtini veiksmai gali panaikinti jūsų techninės įrangos garantiją arba net sugadinti ją netinkamai atlikus. Jūs kuriate ir naudojate aprašytą įrenginį savo rizika
2 veiksmas: kaip veikia ventiliatoriaus valdymas
A kanalas naudoja du įėjimus. Kiekvienas iš šių A kanalo įėjimų turi su juo susietą lygį, leidžiama vadinti tuos lygius A0 ir A1. Pagal numatytuosius nustatymus abu šie lygiai yra 0. Abu įėjimai turi slenksčio PTP reikšmes (3 slenksčiai vienam įėjimui). Kai pasiekiama pirmoji riba, A0 arba A1 padidėja iki 1, antroji - iki 2, o trečioji riba nustato vieną iš įvesties lygių iki 3. Vėliau A0 ir A1 sujungiami (tiesiog sudedami ir neleidžiama pasiekti didesnės vertės) nei 3), todėl pagrindinio išėjimo A kanalo lygio skaičius yra 0–3 diapazone. Šis skaičius naudojamas išėjimo ventiliatorių greičiui kontroliuoti, 0 reiškia, kad jie maitinami 7-8 V įtampa (0%darbo ciklas). Didesnis išėjimo lygis reiškia, kad ventiliatorius maitinamas iš viso 12 V, 33%, 66% arba 100% 100 ms arba 33 ms ciklo (tai priklauso nuo pasirinkto dažnio).
B kanalas turi tik vieną įvestį (B1, fiziškai jis yra bendrinamas su A kanalu [PB1 kaištis]). Yra šeši galimi B1 lygiai (1-6), numatytasis lygis yra 1. Yra penkios ribinės vertės, galinčios padidinti B1. B1 naudojamas kaip pagrindinis išėjimo kanalo B lygis. Kai yra 1, 7-8 V galios išėjimo ventiliatoriai 33% ciklo laiko per vieną ciklą, kitame-66%, likusiam laikui maitinimas atjungiamas. 2 lygis reiškia, kad 66% kiekvieno ciklo yra 7–8 V, poilsis-0 V. 3 lygis reiškia, kad 7-8V nuolat veikia. 4–6 lygiai reiškia, kad ventiliatorius maitinamas iš 12 V įtampos 33%, 66% arba 100% ciklo, o likusį laiką įtampa yra 7–8 V.
Šio PWM valdymo dažnis pagal numatytuosius nustatymus yra 10 Hz. Jį galima padidinti iki 30 Hz, uždarius J7 trumpiklius.
Pasiekus aukštesnę ribą, A0, A1 ir B1 lygiai akimirksniu padidėja. Tačiau kai RPM sumažėja, lygis palaikomas 200 ms ir gali sumažėti tik 1 per 200 ms. Taip siekiama užkirsti kelią staigiems tų lygių pokyčiams, kai įėjimo ventiliatoriaus apsisukimų dažnis yra labai arti slenksčio.
3 žingsnis: Elektroninių komponentų litavimas
Lituokite visus elektroninius komponentus prie plokštės (išskyrus „Attiny13“, vėliau ji bus įdėta į lizdą). Naudokite varinius laidus (0,5 mm skersmens laidai iš UTP kabelio turėtų būti tobuli), kad sujungtumėte komponentus. Jei kyla sunkumų stumiant didelius laidus, išeinančius iš „Molex“(AMP MATE-N-LOK) jungties, galite jiems išgręžti didesnes skyles. Jei nenorite naudoti gręžtuvo, visada galite keletą kartų pasukti varžtą mažų skylių viduje. Įsitikinkite, kad laidai nesukelia trumpojo jungimo.
Jei norite gaminti savo PCB, taip pat pateikiu.svg (plokštės matmenys 53.34x63.50mm) ir.pdf (A4 formato puslapio,.zip archyvo viduje) failus. Vienos pusės vario plakiruotos plokštės turėtų pakakti, nes priekinėje pusėje yra tik viena jungtis (ją galima padaryti viela), todėl priekinės pusės failai pateikiami pagrindiniai, kad būtų galima nustatyti šį ryšį.
Aš primygtinai rekomenduoju uždengti PCB galą izoliacine medžiaga, kuri apsaugo nuo atsitiktinio trumpojo jungimo. Aš naudojau kelis įprasto popieriaus sluoksnius, kurie yra pritvirtinti prie PCB kraštų keliomis izoliacinės juostos juostelėmis.
4 žingsnis: „ATtiny“mikrovaldiklio programavimas
Programa, kuri veikia MCU, užfiksavo keletą įvesties ventiliatorių apsisukimų dažnio slenksčių. Šios ribos yra failo fan_controller.c pradžioje. Eilutė, kurioje yra pirmasis slenkstis, kuris yra atsakingas už šiek tiek padidėjusį A kanalo išvesties lygį, reaguojant į „input_0“ventiliatorių, viršijantį 450 aps./min., Atrodo taip:
#define A0_SPEED_0 3 // 450 aps./min
Jei norite pakeisti slenksčio PTP vertę, turite pakeisti numerį 3 kitu. Padidinus šį skaičių 1, slenkstis pasikeis 150 aps./min.
Kitas dalykas, kurį galbūt norėsite pakeisti, yra išėjimo lygio delsos sumažėjimas. Šis uždelsimas neleidžia staigiems išėjimo lygio pokyčiams, kai įėjimo ventiliatoriaus apsisukimų dažnis yra labai arti slenksčio. Yra 3 linijos, kurios tai valdo (kadangi A kanalas naudoja 2 įvestis, o B kanalas naudoja 1), o pirmasis iš jų atrodo taip:
jei (channel_A0_lower_rpm_cycles> 2) {
Padidinus skaičių 2, šis uždelsimas padidės. Delsimas skaičiuojamas 100 ms ciklais.
Norėdami surinkti šaltinio kodą ir tada programuoti lustą, jums reikės tam tikros programinės įrangos. „Debian“pagrįstame „Linux“platinime jį galima įdiegti vykdant šią komandą:
sudo apt-get install avr-libc gcc-avr avrdude
Jei naudojate „Windows“, galite pabandyti įdiegti „WinAVR“paketą, kuriame taip pat yra reikalinga programinė įranga.
Norėdami sudaryti šaltinio kodą, turite atlikti šiuos veiksmus:
avr -gcc -mmcu = attiny13 -Os -Wall fan_controller.c -o fan_controller.out -lm
Norėdami sukurti.hex failą, turite nukopijuoti šią eilutę į terminalą:
avr -objcopy -O ihex -R.eeprom fan_controller.out fan_controller.hex
Ši komanda leidžia patikrinti, kiek atminties bus naudojama programai (tekstas yra „Flash“, duomenys yra kintamieji, kurie bus saugomi „Flash“, o tada nukopijuojami į RAM, o „bss“yra kintamieji, kurių inicijuota reikšmė 0 RAM):
avr dydžio fan_controller.out
Kai jūsų.hex failas yra paruoštas, turite įterpti ATtiny13 į duonos lentą ir prijungti prie programuotojo jungiamuoju kabeliu. Geriausia atjungti maitinimą nuo programuotojo, kai jungiate jį prie MCU. Laikykite numatytuosius saugiklių antgalius (H: FF, L: 6A). Jei jūsų programuotojas yra USBasp, ši komanda užprogramuos MCU „flash“atmintį:
avrdude -c usbasp -p t13 -B 8 -U blykstė: w: fan_controller.hex
-B 8 keičia perdavimo greitį tarp programuotojo ir MCU (bitclock). Jei kyla problemų prisijungiant prie mikrovaldiklio, gali tekti jį pakeisti į didesnę vertę.
Kai MCU bus paruoštas, įdėkite jį į DIP 8 lizdą. Norėdami išimti MCU iš duonos lentos, aš paprastai jį kišu plokščiu atsuktuvu.
5 veiksmas: ventiliatorių prijungimas prie įrenginio
Kaip „Input 0“ventiliatorius (tas, kuris prijungtas prie PB0) pasirinkau vieną iš korpuso ventiliatorių, prijungtą prie MOBO, kurio greitis kinta priklausomai nuo procesoriaus temperatūros. Nuėmiau izoliaciją nuo ventiliatoriaus tachometro laido dalies ir prie jo prilitau vieną jungiamojo kabelio galą. Kitas galas (prie jo pritvirtinta 2,54 mm jungtis) bus prijungtas prie ventiliatoriaus valdiklio. Jei jungiamasis kabelis yra per trumpas, prailginkite jį, lituodami kitą kabelį tarp anksčiau paminėtų. Tada visus atvirus laidininkus uždenkite izoliacine juostele.
1 įvestis nuskaito GPU ventiliatorių greitį (mano atveju iš tikrųjų yra 3 iš jų, tačiau grafikos plokštės PCB yra tik viena ventiliatoriaus jungtis). Lituodavau 1 įvesties jungiamąjį kabelį tiesiai prie vieno iš 4 kontaktų mini GPU ventiliatoriaus jungties laidų, esančių PCB. Kadangi šis laidas buvo tarp PCB ir galinės plokštės, aš pirmiausia izoliavau galinę plokštelę popieriaus lapu (ypač todėl, kad plokštės medžiaga buvo gana lituojama), o tada tvirtai pritvirtinau kabelio jungtį prie kitos plokštės pusės, naudodami aliuminio folijos juostą.. Tada GPU ventiliatorius (-iai) gali būti prijungtas (-i) prie PB1 kaiščio naudojant kitą (prailgintą) trumpiklį. Jei nenorite nieko lituoti grafikos plokštės PCB, galite pritvirtinti trumpiklį prie ventiliatoriaus laidų arba pagaminti adapterį, kuris bus tarp ventiliatoriaus (-ių) ir jungties PCB, sprendimas yra jūsų.
Ventiliatorius perduoda savo dabartinį greitį per tachometro laidą, prijungdamas šį laidą prie žemės per atvirą kanalizaciją/kolektorių du kartus per sukimąsi (ventiliatoriaus rotorius paprastai turi 4 polius [NSNS], kuriuos aptinka Hall jutiklis, ventiliatoriaus galia sumažėja, kai nustatomas poliaus tipas). Kita vertus, ši viela paprastai ištraukiama iki 3,3 V įtampos lygio. Jei nesate tikri, ar gavote tinkamą laidą, galite naudoti osciloskopą arba sukurti vieną iš aptikimo grandinių, nubrėžtų pagal paskutinę šio veiksmo nuotrauką. Pirmasis iš jų leidžia patikrinti maksimalią įtampą, kuri atsiranda matuojamoje vietoje, antroji - ar ten pasirodo žemo dažnio impulsai.
3.3V ATtiny įvesties kaiščiai turėtų skaityti kaip HIGH būseną, tačiau jei turite problemų dėl to, galite pabandyti sumažinti įtampą, kuri maitina MCU (tai padidins ir MOSFET atsparumą!). Neturėjau jokių problemų, vis dėlto nusprendžiau šią mintį įtraukti čia.
Kai įėjimo ventiliatoriai yra paruošti, galite įdėti ventiliatoriaus valdiklį į savo kompiuterio dėklą pasirinktoje vietoje. Aš jį pritvirtinau prie dviejų tuščių 5,25 colių pavarų dėžių šono, stumdamas jį tarp metalinių įlankos dalių, uždėdamas už jo popieriaus ir užfiksuodamas, užsegamas užtrauktuku per vieną iš didelių skylių paruošiamojoje plokštėje ir kai kuriose kitose skylėse 5,25 colių įlankoje. Įsitikinkite, kad jokios metalinės kompiuterio korpuso dalys negali liesti jokių atvirų ventiliatoriaus valdiklio laidininkų.
Dabar prie valdiklio galite prijungti 3 kontaktų išvesties ventiliatorius. Prie A kanalo prijungti išėjimo ventiliatoriai bus susieti su procesoriaus ir GPU ventiliatoriais, o minimali įtampa, kuri juos maitins, bus apie 7–8 V. Ventiliatoriai, prijungti prie kanalo B išvesties jungčių, bus varomi tik GPU aušintuvo ventiliatoriaus (-ių), o jų įtampa gali nukristi iki 0 V (bet tik 66 ms kas antrą 100 ms ciklą esant žemiausiam išėjimo pavaros lygiui). Ventiliatoriai neturėtų pritraukti daugiau kaip 1A vienam išvesties kanalui.
6 veiksmas: kiti mano kompiuterio pakeitimai
A kanalas varo du ventiliatorius, esančius mano korpuso viršuje. Jie yra to paties modelio ir maitinami ta pačia įtampa, todėl jie sukasi labai panašiu greičiu. Dėl to atsirado girdimas ritmas (trukdžių tarp dviejų šiek tiek skirtingo dažnio garsų). Norėdami tai išspręsti, su vienu iš ventiliatorių nuosekliai sumontavau 2 diodus (vieną įprastą ir vieną „Schottky“). Tai sumažino ventiliatoriaus įtampą ir greitį, todėl ritmas išnyko.
Kitas pakeitimas, susijęs su vienu iš mano padarytų ventiliatorių, yra popieriaus sieninio viršutinio ventiliatoriaus, esančio labiau priekyje, montavimas. Jo tikslas yra neleisti šiam ventiliatoriui siurbti oro, kuris dar nepraėjo nė vieno radiatoriaus. Taip pat bandžiau padaryti kitas popierines sienas, kurios neleido GPU išmetamam orui įsiurbti į procesoriaus aušintuvą. Jie iš tikrųjų sumažino procesoriaus temperatūrą, tačiau GPU šildymo kaina buvo didesnė, todėl galiausiai juos pašalinau.
Kitas neįprastas pakeitimas, kurį aš padariau, yra dulkių filtro pašalinimas iš tų dviejų viršutinių ventiliatorių išmetimo angų (dažniausiai oras vis tiek išstumiamas iš korpuso, o kai mano kompiuteris yra išjungtas, stalčius, esantis šiek tiek virš kompiuterio dėklo, jį apsaugo nuo dulkių). Taip pat prieš dvi tuščias 5,25 colių pavaros vietas įrengiau 92 mm ventiliatorių (ventiliatoriaus valdiklis yra už jo). Šio ventiliatoriaus nelaiko jokie varžtai, jis tiesiog gražiai telpa tarp 120 mm ventiliatoriaus ir jo optinio įrenginio (abiejų paviršiai yra padengti izoliacine juostele, kad būtų šiek tiek slopinama vibracija).