Sadržaj:
2025 Autor: John Day | [email protected]. Zadnja izmjena: 2025-01-13 06:57
Nedavno sam nadogradio svoju grafičku karticu. Novi model GPU -a ima veći TDP od mog CPU -a i stari GPU, pa sam također želio instalirati dodatne ventilatore kućišta. Nažalost, moj MOBO ima samo 3 konektora za ventilatore s kontrolom brzine, a mogu se povezati samo s temperaturom procesora ili čipseta. Odlučio sam to ispraviti tako što sam dizajnirao vlastiti kontroler ventilatora za računare koji očitava RPM brzine već instaliranih ventilatora (i onih spojenih na MOBO i pogonjenih temp. Procesora i onih koji hlade GPU) i ima dva izlazna kanala. Kanal A koristi brzinu ventilatora povezanih sa CPU-om i GPU-om za pogon 3-pinskih izlaznih ventilatora s promjenjivom brzinom. Kanal B osjeća samo brzinu ventilatora GPU-a, a njegov izlazni krug koristi dodatni tranzistor koji omogućava postizanje nižih brzina ventilatora koje pokreće (radi dobro s polu-pasivnom grafičkom karticom).
Čitanje brzine drugih ventilatora po meni je lakše i jeftinije od instaliranja dodatnih temperaturnih sondi tik do procesora prekrivenih hladnjacima (u osnovi je potrebno spojiti žicu tahometara ventilatora direktno na pin mikrokontrolera).
Ovdje su opisane neke od metoda kontrole brzine ventilatora. Odlučio sam koristiti niskofrekventni PWM, ali s nekoliko izmjena metode opisane u članku. Prvo, svaki kanal ima 6 dioda spojenih u nizu, koje se mogu koristiti za smanjenje napona koji napaja ventilator za 4-5V. U ovom podešavanju, nivoi napona PWM su ~ 8V - 12V i 0V - ~ 8V (nije dostupno u kanalu A) umjesto 0V - 12V. Ovo uvelike smanjuje buku koju proizvodi ventilator. Ovdje je opisan još jedan trik koji sam koristio kako bih ventilator na ovaj način učinio tišim. Ovaj trik zahtijeva instaliranje RC kruga između izlaza mikrokontrolera i kapije MOSFET -a koji sam koristio za promjenu nivoa napona ventilatora. Ovo smanjuje brzinu nagiba signala koji kontrolira MOSFET, što zauzvrat čini kutni trzaj ventilatora tijekom promjene razine napona manje izraženim, smanjujući vibracije i skokove napona.
Supplies
Dijelovi i materijali:
- ATtiny13 ili ATtiny13A u 8-PDIP kućištu
- 8 pin DIP utičnica
- 3x IRF530 tranzistor
- 12x 1N4007 dioda (svaka druga 1A dioda sa padom napona od oko 0,7V bi trebala raditi)
- Radijalni elektrolitički kondenzator 220uF/25V
- 10uF/16V radijalni elektrolitički kondenzator
- 5x 100nF keramički disk kondenzator
- 10k 0,25W otpornik
- 4x 22k 0.25W otpornik
- 2x 1k 0.25W otpornik
- Taktilno dugme za prebacivanje 6x6 mm
- 2x 2 -pinski 2,54 mm ravni muški zaglavlje
- 4x 3-pinski priključak za muški ventilator (Molex 2510), alternativno, možete koristiti uobičajene pin zaglavlje ako želite (ja sam to učinio), ali tada morate biti posebno oprezni pri povezivanju ventilatora, a ženski konektori tih ventilatora će biti pričvršćene manje sigurno
- 4-pinski Molex konektor, žensko kućište/muški pinovi (AMP MATE-N-LOK 1-480424-0 konektor za napajanje), koristio sam onaj koji je bio dio Molex muškog na 2x SATA ženski adapter u paketu sa nekim starim MOBO-om
- 2x kratkospojni kablovi sa ženskim konektorima 2,54 mm (ili kućišta konektora + pinovi + žice), bit će lemljeni na žice tahometra ulaznih ventilatora (ili direktno na njihove konektore na PCB -ovima)
- montažne ploče (50 mm x 70 mm, niz rupa od 18 x 24 rupe), alternativno, možete sami nagrizati bakrenu ploču i izbušiti rupe
- nekoliko komada žice
- izolacijska traka
- traka od aluminijske folije (ako ćete priključiti konektor na zadnju ploču GPU -a, pogledajte korak 5)
- papir
Alati:
- dijagonalni rezač
- kliješta
- ravni odvijač
- pomoćni nož
- multimetar
- lemna stanica
- lemljenje
- AVR programer (samostalni programer poput USBaspa ili možete koristiti ArduinoISP
- matična ploča i kratkospojni kablovi koji će se koristiti za programiranje mikrokontrolera izvan PCB -a (ili bilo koji drugi alat koji može postići ovaj cilj)
Korak 1: Odricanje odgovornosti
Konstrukcija ovog uređaja zahtijeva upotrebu umjereno opasnih alata i može uzrokovati štetu ili oštećenje imovine. Neki od potrebnih koraka mogu poništiti jamstvo za vaš hardver ili ga čak oštetiti ako se nepravilno provede. Opisani uređaj pravite i koristite na vlastitu odgovornost
Korak 2: Kako funkcionira kontrola ventilatora
Kanal A koristi dva ulaza. Svaki od tih ulaza kanala A ima pridruženu razinu, dopustite da te razine pozovete A0 i A1. Prema zadanim postavkama, oba nivoa su 0. Oba ulaza imaju povezane granične vrijednosti okretaja u minuti (3 praga po ulazu). Kada se postigne prvi prag, A0 ili A1 se povećava na 1, kada se drugi povećava na 2, a treći prag postavlja jedan od ulaznih nivoa na 3. Kasnije se A0 i A1 kombiniraju (jednostavno zbrajaju i sprečavaju postizanje veće vrijednosti) 3), čineći glavni izlazni nivo nivoa kanala kanala A u rasponu 0-3. Ovaj broj se koristi za kontrolu brzine izlaznih ventilatora, 0 znači da ih napaja 7-8V (radni ciklus od 0%). Veći izlazni nivo znači da se ventilator napaja iz punih 12 V za 33%, 66% ili 100% ciklusa od 100 ms ili 33 ms (zavisi od odabrane frekvencije).
Kanal B ima samo jedan ulaz (B1, fizički se dijeli s kanalom A [PB1 pin]). Postoji šest mogućih nivoa B1 (1-6), zadana razina je 1. Postoji pet graničnih vrijednosti koje mogu povećati B1. B1 se koristi kao glavni izlaz nivoa B kanala. Kada je 1, 7-8V napaja izlazne ventilatore za 33% vremena ciklusa u jednom ciklusu, u drugom za 66%, dok se ostatak vremena napajanje isključi. Razina 2 znači da je 66% svakog ciklusa 7-8V, ostalo 0V. Nivo 3 znači da se konstantno primjenjuje 7-8V. Nivoi 4-6 znače da se ventilator napaja iz punih 12V za 33%, 66% ili 100% ciklusa, dok je ostatak vremena napon 7-8V.
Frekvencija ove PWM kontrole prema zadanim postavkama je 10Hz. Može se povećati na 30Hz zatvaranjem J7 kratkospojnika.
Kada se dostigne viši prag, nivoi A0, A1 i B1 se trenutno povećavaju. Međutim, pri padu broja okretaja, nivo se održava 200 ms i može se smanjiti samo za 1 na 200 ms. To treba spriječiti brze promjene tih razina kada je ulazni broj okretaja ventilatora vrlo blizu praga.
Korak 3: Lemljenje elektroničkih komponenti
Lemite sve elektronske komponente na montažnu ploču (osim Attiny13, kasnije će se staviti u utičnicu). Upotrijebite bakrene žice (one promjera 0,5 mm s UTP kabela trebaju biti savršene) za električno povezivanje komponenti. Ako imate problema s potiskivanjem velikih žica koje izlaze iz Molex (AMP MATE-N-LOK) konektora, možete izbušiti veće rupe za njih. Ako ne želite koristiti bušilicu, uvijek možete nekoliko puta okrenuti vijak unutar malih rupa za montažne ploče. Uvjerite se da žice ne uzrokuju kratke spojeve.
Ako više volite da sami izrađujete PCB, nudim i.svg (dimenzije ploče 53,34x63,50 mm) i.pdf (veličina stranice A4, unutar.zip arhive) datoteke. Jednostrana ploča obložena bakrom trebala bi biti dovoljna, jer na prednjoj strani postoji samo jedna veza (može se izvesti žicom), pa su datoteke za prednju stranu predviđene kao glavna kako bi se ova veza mogla identificirati.
Toplo preporučujem da stražnju stranu PCB -a prekrijete nekim izolacijskim materijalom koji će spriječiti slučajne kratke spojeve. Koristio sam nekoliko slojeva običnog papira koji se drže za rubove PCB -a pomoću nekoliko traka izolacijske trake.
Korak 4: Programiranje ATtiny mikrokontrolera
Program koji radi na MCU-u ima tvrdo kodirano nekoliko pragova brzina okretaja ulaznih ventilatora. Ti se pragovi nalaze na početku datoteke fan_controller.c. Linija koja sadrži prvi prag, koji je odgovoran za blago povećanje izlaznog nivoa kanala A kao odgovor na input_0 ventilator koji prelazi 450 RPM, izgleda ovako:
#define A0_SPEED_0 3 // 450 o / min
Ako želite promijeniti prag RPM vrijednosti, tada morate zamijeniti broj 3 s nečim drugim. Povećanjem ovog broja za 1 promijenit ćete prag za 150 okretaja u minuti.
Druga stvar koju biste mogli promijeniti je smanjenje kašnjenja izlaznog nivoa. Ovo kašnjenje sprječava brze promjene izlaznog nivoa kada je broj okretaja ulaznog ventilatora vrlo blizu praga. Postoje 3 linije koje kontroliraju ovo (budući da kanal A koristi 2 ulaza, a kanal B koristi 1), a prva od njih izgleda ovako:
if (channel_A0_lower_rpm_cycles> 2) {
Povećanje broja 2 povećat će ovo kašnjenje. Kašnjenje se računa u ciklusima od 100 ms.
Za sastavljanje izvornog koda i zatim programiranje čipa trebat će vam softver. Na distribuciji Linuxa zasnovanoj na Debianu može se instalirati izvršavanjem sljedeće naredbe:
sudo apt-get install avr-libc gcc-avr avrdude
Ako koristite Windows, možete pokušati instalirati WinAVR paket koji također sadrži potreban softver.
Za sastavljanje izvornog koda potrebno je izvršiti ovo:
avr -gcc -mmcu = attiny13 -Os -Wall fan_controller.c -o fan_controller.out -lm
Za kreiranje.hex datoteke morate kopirati ovu liniju u terminal:
avr -objcopy -O ihex -R.eeprom fan_controller.out fan_controller.hex
Ova naredba omogućuje provjeru koliko će memorije program koristiti (tekst je Flash, podaci su varijable koje će se pohraniti u Flash, a zatim kopirati u RAM, a bss su varijable inicijalizirane s vrijednošću 0 u RAM -u):
avr-size fan_controller.out
Kada je vaša.hex datoteka spremna, morate umetnuti ATtiny13 u matičnu ploču i spojiti je na programer pomoću kratkospojnih kabela. Najbolje je prekinuti napajanje programatora kada ga priključujete na MCU. Zadržite zadane bitove osigurača (H: FF, L: 6A). Ako je vaš programer USBasp, ova naredba će programirati fleš memoriju MCU -a:
avrdude -c usbasp -p t13 -B 8 -U blic: w: fan_controller.hex
-B 8 mijenja brzinu prijenosa između programatora i MCU -a (bitni sat). Možda ćete morati promijeniti vrijednost na veću ako imate problema sa povezivanjem na mikrokontroler.
Kad MCU bude spreman, umetnite ga u DIP 8 utičnicu. Za uklanjanje MCU-a s matične ploče obično ga izvučem ravnim odvijačem.
Korak 5: Povezivanje ventilatora s uređajem
Kao ulazni ventilator 0 (onaj spojen na PB0) odabrao sam jedan od ventilatora kućišta uključenih u MOBO, čija je brzina varirala ovisno o temperaturi procesora. Uklonio sam izolaciju s dijela žice tahometra ventilatora i zalemio jedan kraj kratkospojnog kabela na njega. Drugi kraj (sa ženskim konektorom 2,54 mm) spojen je na kontroler ventilatora. Ako je kratkospojnik previše kratak, produžite ga lemljenjem drugog kabela između prethodno navedenih. Zatim prekrijte sve izložene vodiče izolacijskom trakom.
Ulaz 1 očitava brzinu ventilatora GPU -a (u mom slučaju zapravo ih ima 3, ali postoji samo jedan konektor za ventilator na PCB -u grafičke kartice). Lemio sam ulazni 1 kratkospojnik direktno na jedan od izvoda 4-pinskog mini GPU konektora za ventilator koji se nalazi na PCB-u. Kako se ovaj vod nalazio između PCB -a i stražnje ploče, prvo sam izolirao stražnju ploču komadom papira (posebno zato što je materijal stražnje ploče prilično lemljiv), a zatim čvrsto pričvrstio ženski konektor kabela s druge strane stražnje ploče pomoću trake od aluminijske folije. Tada bi se ventilatori (i) za GPU mogli spojiti na pin PB1 pomoću drugog (produženog) kratkospojnog kabela. Ako ne želite ništa lemiti na PCB grafičke kartice, možete spojiti kratkospojni kabel na žice ventilatora ili napraviti adapter koji će biti postavljen između ventilatora i konektora na PCB -u, odluka je vaša.
Ventilator prenosi svoju trenutnu brzinu putem žice tahometra povezivanjem ove žice sa masom preko otvorenog odvoda/kolektora dva puta po rotaciji (rotor ventilatora obično ima 4-polne [NSNS] koje detektira Hall senzor, izlaz ventilatora se smanjuje kada na tipu stuba je otkriven). S druge strane, ova žica se obično povlači na naponski nivo od 3,3 V. Ako niste sigurni imate li pravu žicu, možete upotrijebiti osciloskop ili izgraditi jedan od krugova za otkrivanje koji su nacrtani na posljednjoj slici u ovom koraku. Prvi od njih vam omogućuje da provjerite maksimalni napon koji se pojavi na izmjerenoj lokaciji, drugi da provjerite pojavljuju li se tamo niskofrekventni impulsi.
3.3V bi trebali biti pročitani na ulaznim pinovima ATtinyja kao VISOKO stanje, ali ako imate problema s tim, možete pokušati smanjiti napon koji napaja MCU (to će također povećati otpor MOSFET -a!). Nisam imao nikakvih problema, ipak, odlučio sam da ovu misao uvrstim ovdje.
Kada su ulazni ventilatori spremni, možete postaviti kontroler ventilatora u kućište računara, na mjesto po vašem izboru. Montirao sam ga sa strane dvaju mojih praznih ležišta za pogone od 5,25 inča, gurajući ga između metalnih dijelova ležišta, stavljajući papir iza njega i zaključavajući ga pomoću vezice s patentnim zatvaračem proguranog kroz jednu od velikih rupa u montažnoj ploči i nekim drugim rupama u ležištu od 5,25”. Pazite da nikakvi metalni dijelovi kućišta računara ne mogu dotaknuti niti jedan od izloženih vodiča kontrolera ventilatora.
Sada možete spojiti 3-pinske izlazne ventilatore na kontroler. Izlazni ventilatori spojeni na Kanal A bit će povezani i na CPU i na GPU ventilatore, a minimalni napon koji će ih napajati bit će oko 7-8V. Ventilatori priključeni na B izlazne konektore kanala će pokretati samo ventilatori (i) za hlađenje GPU -a, a njihov napon može pasti na 0V (ali samo za 66 ms svaki drugi ciklus od 100 ms na najnižem nivou izlaznog pogona). Ventilatori ne smiju vući više od 1A po izlaznom kanalu.
Korak 6: Ostale promjene koje sam napravio na svom računaru
Kanal A pokreće dva ventilatora smještena na vrhu kućišta. Isti su model i pokreću se istim naponom, zbog čega se okreću vrlo sličnim brzinama. Kao rezultat toga pojavio se neki zvučni ritam (uzorak smetnji između dva zvuka neznatno različitih frekvencija). Da bih to riješio, instalirao sam 2 diode (jednu običnu i jednu Schottky) u nizu s jednim od ventilatora. To je smanjilo napon i brzinu ventilatora, pa je otkucaj nestao.
Još jedna promjena, koja se odnosi na jednu od onih ventilatora koje sam napravio, je ugradnja papirnog zida ispod gornjeg ventilatora koji se nalazi više sprijeda. Njegova je svrha spriječiti ovaj ventilator da usisa zrak koji još nije prošao kroz bilo koji hladnjak. Takođe sam pokušao da napravim druge papirne zidove koji su sprečavali usisavanje izduvnog vazduha GPU -a u hladnjak procesora. Oni su zapravo smanjili temperaturu procesora, ali po cijenu zagrijavanja GPU -a, pa sam ih na kraju uklonio.
Druga neobična izmjena koju sam napravio je uklanjanje filtera za prašinu na izlazu iz ta dva gornja ventilatora (većinu vremena zrak se izbacuje iz kućišta, a kad je moj računar isključen, ladica koja se nalazi malo iznad kućišta računara štiti ga od prašine). Takođe sam instalirao 92 mm ventilator ispred dva prazna ležišta za pogone od 5,25 inča (kontroler ventilatora se nalazi odmah iza njega). Ovaj ventilator nije pričvršćen nikakvim vijcima, samo lijepo pristaje između ventilatora od 120 mm ispod njega i optičkog pogona iznad (površine oboje prekrivene su izolacijskom trakom kako bi se osiguralo određeno prigušivanje vibracija).