Sisukord:
2025 Autor: John Day | [email protected]. Viimati modifitseeritud: 2025-01-13 06:57
Hiljuti täiendasin oma graafikakaarti. Uuel GPU mudelil on kõrgem TDP kui minu protsessoril ja vana GPU, nii et tahtsin paigaldada ka täiendavaid korpuse ventilaatoreid. Kahjuks on minu MOBO -l ainult 3 kiiruse reguleerimisega ventilaatori pistikut ja neid saab siduda ainult protsessori või kiibistiku temperatuuriga. Otsustasin selle lahendada, kavandades oma enda arvuti ventilaatori kontrolleri, mis loeb juba installitud ventilaatorite (nii MOBO -ga ühendatud ja protsessori temperatuuriga töötavate kui ka GPU -d jahutavate) ventilaatorite pöörlemiskiirusi ning millel on kaks väljundkanalit. Kanal A kasutab muutuva kiirusega 3-kontaktiliste väljundventilaatorite juhtimiseks nii protsessori kui ka GPU temperatuuriga ühendatud ventilaatorite kiirust. Kanal B tajub ainult GPU ventilaatorite kiirust ja selle väljundahel kasutab täiendavat transistorit, mis võimaldab saavutada selle poolt juhitavate ventilaatorite väiksemaid kiirusi (see töötab hästi poolpassiivse graafikakaardiga).
Minu arvates on teiste ventilaatorite kiiruse lugemine lihtsam ja odavam kui täiendavate temperatuuriandurite paigaldamine otse radiaatoritega kaetud protsessorite juurde (see nõuab põhimõtteliselt ventilaatorite tahhomeetrite juhtmete ühendamist otse mikrokontrolleri tihvtiga).
Siin on kirjeldatud mõningaid ventilaatori kiiruse reguleerimise meetodeid. Otsustasin kasutada madala sagedusega PWM-i, kuid artiklis kirjeldatud meetodit väheste muudatustega. Esiteks on igal kanalil 6 järjestikku ühendatud dioodi, mida saab kasutada ventilaatori toitepinge vähendamiseks 4-5 V võrra. Selles seadistuses on PWM pingetase 0V - 12V asemel ~ 8V - 12V ja 0V - ~ 8V (pole saadaval kanalil A). See vähendab oluliselt ventilaatori tekitatud müra. Siin kirjeldatakse veel ühte trikki, mille abil ventilaatorit sellisel viisil vaiksemaks muutsin. See trikk nõuab RC -ahela paigaldamist mikrokontrolleri väljundi ja MOSFET -i värava vahele, mida kasutasin ventilaatori pingetasemete vahetamiseks. See vähendab MOSFET -i juhtiva signaali pöördekiirust, muutes ventilaatori nurkliigutuse pingetaseme muutumise ajal vähem silmatorkavaks, vähendades vibratsiooni ja pingepiike.
Tarvikud
Osad ja materjalid:
- ATtiny13 või ATtiny13A 8-PDIP ümbrises
- 8 -pin DIP -pesa
- 3x IRF530 transistor
- 12x 1N4007 diood (mis tahes muu 1A diood, mille pingelangus on umbes 0,7 V, peaks töötama)
- 220uF/25V radiaalne elektrolüütkondensaator
- 10uF/16V radiaalne elektrolüütkondensaator
- 5x 100nF keraamiline ketaskondensaator
- 10k 0,25W takisti
- 4x 22k 0,25W takisti
- 2x 1k 0,25W takisti
- 6x6mm kombatav lüliti nupp
- 2x 2 kontaktiga 2,54 mm sirge isast tihvtiga päis
- 4x 3-kontaktiline isane ventilaatori pistik (Molex 2510), soovi korral võite kasutada tavalisi tihvtide päiseid (ma tegin seda), kuid siis peate ventilaatorite ühendamisel olema eriti ettevaatlik ja nende ventilaatorite naissoost pistikud vähem turvaliselt kinnitatud
- 4-kontaktiline Molexi pistik, naissoost korpus/isast tihvtid (AMP MATE-N-LOK 1-480424-0 toitepistik), ma kasutasin seda, mis oli osa Molexi isast kuni 2x SATA naissoost adapteriga, mis on komplekteeritud mõne vana MOBO-ga
- 2x hüppajakaablid 2,54 mm sisemiste pistikutega (või pistikupesad + tihvtid + juhtmed), need joodetakse sisendventilaatorite tahhomeetri juhtmetesse (või otse nende pistikutele trükkplaatidel)
- eelplaat (50 mm x 70 mm, min 18 x 24 auguga massiiv), teise võimalusena saate vaskplaadiga plaati ise söövitada ja auke puurida
- paar tükki traati
- isoleerlint
- alumiiniumfooliumlint (kui ühendate pistiku GPU tagaplaadi külge, vaadake 5. sammu)
- paber
Tööriistad:
- diagonaalne lõikur
- tangid
- lameda kruvikeerajaga
- tarbenuga
- multimeeter
- jootmisjaam
- jootma
- AVR -i programmeerija (eraldiseisev programmeerija nagu USBasp või saate kasutada ArduinoISP -d
- leivaplaat ja hüppajakaablid, mida kasutatakse mikrokontrolleri programmeerimiseks väljaspool PCB -d (või mõnda muud tööriista, mis seda eesmärki võimaldab)
1. samm: lahtiütlemine
Selle seadme ehitamiseks on vaja kasutada mõõdukalt ohtlikke tööriistu ja see võib kahjustada või kahjustada vara. Mõned nõutud toimingud võivad teie riistvara garantii tühistada või ebaõige käitamise korral isegi kahjustada. Kirjutate ja kasutate kirjeldatud seadet omal vastutusel
2. toiming: ventilaatori juhtimine
Kanal A kasutab kahte sisendit. Kõigil A -kanali sisenditel on sellega seotud tase, lubage helistada neile tasemetele A0 ja A1. Vaikimisi on mõlemad tasemed 0. Mõlema sisendiga on seotud RPM -i läviväärtused (3 künnist sisendi kohta). Kui esimene künnis on saavutatud, suureneb A0 või A1 1 -ni, teine 2 -ni ja kolmas lävi määrab ühe sisendtaseme väärtuseks 3. Hiljem ühendatakse A0 ja A1 (lihtsalt liidetakse kokku ja takistatakse kõrgemat väärtust saavutamast) kui 3), muutes põhiväljundi kanali A taseme numbri vahemikus 0-3. Seda numbrit kasutatakse väljundventilaatorite kiiruse reguleerimiseks, 0 tähendab, et nende toiteallikaks on 7–8 V (töötsükkel 0%). Kõrgemad väljundtasemed tähendavad, et ventilaator saab toiteallikaks 12 V täisvoolu 33%, 66% või 100% ulatuses 100 ms või 33 ms tsüklist (see sõltub valitud sagedusest).
Kanalil B on ainult üks sisend (B1, füüsiliselt jagatakse seda kanaliga A [PB1 pin]). Võimalikke B1 tasemeid on kuus (1–6), vaikeväärtus on 1. Olemas on viis läviväärtust, mis suudavad B1 suurendada. B1 kasutatakse kanali B põhiväljundina. Kui see on 1, annab 7–8 V väljundventilaatorid 33% tsükli ajast ühes tsüklis, teises 66%, ülejäänud aja jooksul on toide lahti ühendatud. Tase 2 tähendab, et 66% igast tsüklist on 7-8V, ülejäänud 0V. Tase 3 tähendab, et 7-8V on pidevalt rakendatud. Tasemed 4–6 tähendavad, et ventilaator saab toiteallikast 12 V toite 33%, 66% või 100% tsükli jooksul, ülejäänud aja jooksul on pinge 7–8 V.
Selle PWM -juhtimise sagedus on vaikimisi 10 Hz. Seda saab suurendada 30 Hz -ni, sulgedes J7 hüppajapoldid.
Kõrgema künnise saavutamisel suurenevad A0, A1 ja B1 tasemed koheselt. Kui aga pöörete arv langeb, hoitakse taset 200 ms ja see võib väheneda ainult 1 võrra 200 ms kohta. Selle eesmärk on vältida nende tasemete kiireid muutusi, kui sisendventilaatori pöörete arv on lävele väga lähedal.
Samm: elektrooniliste komponentide jootmine
Jootke kõik elektroonikakomponendid esipaneelile (välja arvatud Attiny13, see pannakse hiljem pistikupessa). Komponentide vaheliste elektriliste ühenduste tegemiseks kasutage vasktraate (0,5 mm läbimõõduga UTP -kaabli juhtmed peaksid olema ideaalsed). Kui teil on probleeme Molexi (AMP MATE-N-LOK) pistikust väljuvate suurte juhtmete lükkamisega, võite nende jaoks suuremaid auke puurida. Kui te ei soovi puurit kasutada, võite alati keerata kruvi paar korda väikeste esiplaadi aukude sees. Veenduge, et juhtmed ei põhjustaks lühiseid.
Kui eelistate ise PCB -d teha, pakun ka.svg (tahvli mõõtmed 53.34x63.50mm) ja.pdf (A4 lehe suurus,.zip -arhiivi sees) faile. Ühepoolsest vasest plaaditud plaadist peaks piisama, kuna esiküljel on ainult üks ühendus (seda saab teha juhtmega), seega on esikülje failid põhilised, et seda ühendust tuvastada.
Soovitan tungivalt katta trükkplaat tagasi mõne isoleermaterjaliga, mis hoiab ära juhusliku lühise. Ma kasutasin mõnda kihti tavalist paberit, mida hoiavad PCB servad mõne riba isoleerlindiga.
Samm: ATtiny mikrokontrolleri programmeerimine
MCU-l töötaval programmil on kõvakodeeritud mitu sisendventilaatorite pöörlemiskiiruse läve. Need künnised asuvad faili fan_controller.c alguses. Rida, mis sisaldab esimest künnist, mis vastutab A -kanali väljundtaseme mõnevõrra suurenemise eest, kui ventilaator input_0 ületab 450 pööret minutis, näeb välja selline:
#define A0_SPEED_0 3 // 450 p / min
Kui soovite muuta RPM läve väärtust, peate numbri 3 asendama millegi muuga. Selle arvu suurendamine 1 võrra muudab läve 150 pööret minutis.
Teine asi, mida võiksite muuta, on väljundtaseme viivituse vähenemine. See viivitus takistab väljundi taseme kiireid muutusi, kui sisendventilaatori pöörete arv on lävele väga lähedal. Seda juhib 3 rida (kuna kanal A kasutab kahte sisendit ja kanal B kasutab 1) ja esimene neist näeb välja selline:
kui (channel_A0_lower_rpm_cycles> 2) {
Numbri 2 suurendamine suurendab seda viivitust. Hilinemist arvestatakse 100 ms tsüklitena.
Lähtekoodi ja seejärel kiibi programmeerimiseks vajate tarkvara. Debianil põhinevas Linuxi distributsioonis saab selle installida, käivitades järgmise käsu:
sudo apt-get install avr-libc gcc-avr avrdude
Kui kasutate Windowsi, võite proovida installida WinAVR komplekti, mis sisaldab ka vajalikku tarkvara.
Lähtekoodi kompileerimiseks peate selle täitma:
avr -gcc -mmcu = attiny13 -Os -Wall fan_controller.c -o fan_controller.out -lm
. Hex -faili loomiseks peate selle rea terminali kopeerima:
avr -objcopy -O ihex -R.eeprom fan_controller.out fan_controller.hex
See käsk võimaldab kontrollida, kui palju mälu programm kasutab (tekst on Flash, andmed on muutujad, mis salvestatakse Flash -i ja kopeeritakse seejärel RAM -i ning bss on muutujad, mis lähtestatakse väärtusega 0 RAM -is):
avr-suuruses fan_controller.out
Kui teie.hex -fail on valmis, peate sisestama ATtiny13 leivalauale ja ühendama selle hüppajakaablitega programmeerijaga. Parim on programmeerija toide lahti ühendada, kui ühendate selle MCU -ga. Hoidke vaikimisi kaitsmeotsikud (H: FF, L: 6A). Kui teie programmeerija on USBasp, programmeerib see käsk MCU välkmälu:
avrdude -c usbasp -p t13 -B 8 -U flash: w: fan_controller.hex
-B 8 muudab programmeerija ja MCU vahelist edastuskiirust (bitclock). Kui teil on probleeme mikrokontrolleriga ühendamisel, peate selle võib -olla muutma kõrgemaks.
Kui MCU on meile valmis, pange see DIP 8 pesasse. MCU eemaldamiseks leivaplaadilt torkan seda tavaliselt lameda kruvikeerajaga.
Samm: ventilaatorite ühendamine seadmega
Sisend 0 ventilaatorina (see, mis on ühendatud PB0 -ga) valisin ühe MOBO -ga ühendatud korpuseventilaatori, mille kiirus varieerus sõltuvalt CPU temperatuurist. Eemaldasin ventilaatori tahhomeetri juhtme osalt isolatsiooni ja jootsin selle vahele ühe džemprikaabli otsa. Teine ots (selle külge kinnitatud 2,54 mm pistikuga) ühendatakse ventilaatori kontrolleriga. Kui hüppajakaabel on liiga lühike, pikendage seda, jootes teise kaabli eelnevalt mainitud kaablite vahele. Seejärel katke kõik avatud juhtmed isoleerlindiga.
Sisend 1 loeb GPU ventilaatorite kiirust (minu puhul on neid tegelikult 3, kuid graafikakaardi trükkplaadil on ainult üks ventilaatori pistik). Jootsin sisendi 1 hüppajakaabli otse PCB-l asuva 4-kontaktilise mini-GPU ventilaatori pistiku ühe juhtme külge. Kuna see juhe asus trükkplaadi ja tagaplaadi vahel, isoleerisin tagaplaadi esmalt paberitükiga (eriti seetõttu, et tagaplaadi materjal oli üsna joodetav) ja seejärel kinnitasin kaabli naissoost pistiku kindlalt tagaplaadi teisele küljele, kasutades alumiiniumfooliumlinti.. Seejärel saaks GPU ventilaatori (d) PB1 kontaktiga ühendada teise (pikendatud) hüppakaabli abil. Kui te ei soovi oma graafikakaardi trükkplaadile midagi jootma panna, saate ventilaatori juhtmete külge kinnitada hüppajakaabli või valmistada adapteri, mis asetatakse ventilaatori (te) ja PCB pistiku vahele, otsus on teie.
Ventilaator edastab oma praeguse kiiruse tahhomeetri juhtme kaudu, ühendades selle juhtme maapinnaga avatud äravoolu/kollektori kaudu kaks korda pöörlemise kohta (ventilaatori rootoril on tavaliselt 4-poolused [NSNS], mille tuvastab Halli andur, ventilaatori väljund läheb madalaks, kui tuvastatakse pooluse tüüp). Teiselt poolt tõmmatakse see traat tavaliselt 3,3 V pingetasemele. Kui te pole kindel, kas teil on õige traat, võite kasutada ostsilloskoopi või ehitada ühe tuvastamisahela, mis joonistatakse selle sammu viimasele pildile. Esimene neist võimaldab teil mõõta maksimaalset pinget, mis kuvatakse mõõdetud kohas, teine - kas seal kuvatakse madalsageduslikke impulsse.
3.3 V peaks ATtiny sisendpoldid lugema HIGH olekuna, kuid kui teil on sellega probleeme, võite proovida vähendada MCU toitepinget (see suurendab ka MOSFET -ide vastupidavust!). Mul polnud mingeid probleeme, siiski otsustasin, et peaksin selle mõtte siia lisama.
Kui sisendventilaatorid on valmis, võite paigutada ventilaatorikontrolleri teie valitud korpuse sisse. Paigaldasin selle kahe tühja 5,25 -tollise draivipesa kõrvale, surudes selle lahtri metallosade vahele, asetades selle taha paberi ja lukustades selle ühe suure ava kaudu surutud tõmbluku abil. eelplaadis ja mõnedes muudes aukudes 5,25”lahtris. Veenduge, et arvuti korpuse metallosad ei saaks puudutada ventilaatori kontrolleri avatud juhtmeid.
Nüüd saate kontrolleriga ühendada 3-kontaktilised väljundventilaatorid. A-kanaliga ühendatud väljundventilaatorid ühendatakse nii protsessori kui ka GPU ventilaatoritega ning minimaalne pinge, mis neid toidab, on umbes 7–8 V. Ventilaatoreid, mis on ühendatud kanali B väljundpistikutega, juhivad ainult GPU jahuti (d) ja nende pinge võib langeda 0 V -ni (kuid ainult 66 ms iga sekundi 100 ms tsükli jooksul madalaima väljundajami tasemel). Ventilaatorid ei tohiks väljundkanali kohta tõmmata rohkem kui 1A.
Samm 6: Muud arvutisse tehtud muudatused
Kanal A juhib kahte mu korpuse ülaosas asuvat ventilaatorit. Need on sama mudel ja toiteallikaks on sama pinge, mis paneb nad pöörlema väga sarnase kiirusega. Selle tulemusena tekkis mõni kuuldav löök (interferentsmuster kahe veidi erineva sagedusega heli vahel). Selle parandamiseks paigaldasin ühe ventilaatoriga järjestikku 2 dioodi (üks tavaline ja üks Schottky). See vähendas ventilaatori pinget ja kiirust, muutes löögi kaduma.
Teine muudatus, mis on seotud ühe minu tehtud ventilaatoriga, on paberist seina lõõtsa ülemise ventilaatori paigaldamine, mis asub rohkem ees. Selle eesmärk on vältida selle ventilaatori imemist õhku, mis pole veel ühtegi jahutusradiaatorit läbinud. Proovisin teha ka muid paberiseinu, mis takistasid GPU väljatõmbeõhu imamist CPU jahutisse. Nad vähendasid tegelikult protsessori temperatuuri, kuid GPU kuumutamise hinnaga, nii et lõpuks eemaldasin need.
Teine ebatavaline modifikatsioon, mille tegin, on tolmufiltri eemaldamine nende kahe ülemise ventilaatori väljalaskeava juurest (enamasti lükatakse niikuinii õhk korpusest välja ja kui arvuti on välja lülitatud, varjab see arvuti korpuse kohal veidi kõrgemal asuvat sahtlit) tolmust). Paigaldasin ka 92 mm ventilaatori kahe tühja 5,25”draivipesa ette (ventilaatori kontroller asub kohe selle taga). Seda ventilaatorit ei hoia ükski kruvi, see lihtsalt sobib kenasti 120 mm ventilaatori ja selle kohal asuva optilise draivi vahele (mõlema pinnad on kaetud vibratsioonisummutamiseks isolatsioonlindiga).