Sadržaj:
2025 Autor: John Day | [email protected]. Zadnja promjena: 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 ventilatorska priključka s kontrolom brzine, a mogu se povezati samo s temperaturom procesora ili čipseta. Odlučio sam to ispraviti, dizajnirajući vlastiti kontroler ventilatora za računalo koji čita brzine okretaja 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 s 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ćuje postizanje nižih brzina ventilatora koje njime pokreće (dobro radi 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 izravno 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 postavljanju razine PWM napona su ~ 8V - 12V i 0V - ~ 8V (nije dostupno u kanalu A) umjesto 0V - 12V. To 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 vrata MOSFET -a koji sam koristio za prebacivanje razine napona ventilatora. Time se smanjuje brzina nagiba signala koji kontrolira MOSFET, što zauzvrat čini kutni trzaj ventilatora tijekom promjene razine napona manje izražen, smanjujući vibracije i skokove napona.
Pribor
Dijelovi i materijali:
- ATtiny13 ili ATtiny13A u kućištu 8-PDIP
- 8 -pin DIP utičnica
- 3x IRF530 tranzistor
- 12x 1N4007 dioda (svaka druga 1A dioda s padom napona od oko 0,7V bi trebala raditi)
- Radijalni elektrolitski kondenzator 220uF/25V
- Radijalni elektrolitički kondenzator 10uF/16V
- 5x 100nF keramički disk kondenzator
- 10k 0,25W otpornik
- 4x 22k 0,25W otpornik
- 2x 1k 0,25W otpornik
- Taktilni prekidač 6x6 mm
- 2x 2 pinski 2,54 mm ravno muško zaglavlje
- 4x 3-polni priključak za muški ventilator (Molex 2510), alternativno, možete koristiti i obične pin zaglavlje ako želite (ja sam to učinio), ali tada morate biti posebno oprezni pri povezivanju ventilatora, a ženski konektori tih ventilatora bit će pričvršćen 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 s 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 izravno 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 stražnju ploču GPU -a, pogledajte korak 5)
- papir
Alati:
- dijagonalni rezač
- kliješta
- odvijač s ravnim lopaticama
- pomoćni nož
- multimetar
- lemna stanica
- lem
- 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 od odgovornosti
Konstrukcija ovog uređaja zahtijeva uporabu 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 izrađujete 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 obje su razine 0. Oba ulaza imaju povezane pragove RPM vrijednosti (3 praga po ulazu). Kad se postigne prvi prag, A0 ili A1 se povećava na 1, kada se drugi povećava na 2, a treći prag postavlja jednu od ulaznih razina na 3. Kasnije se A0 i A1 kombiniraju (jednostavno zbrajaju i spriječavaju postizanje veće vrijednosti od 3), čineći glavni izlazni nivo razine kanala A u rasponu 0-3. Ovaj se broj koristi za kontrolu brzine izlaznih ventilatora, 0 znači da ih napaja 7-8V (radni ciklus od 0%). Viš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 (ovisno o odabranoj frekvenciji).
Kanal B ima samo jedan ulaz (B1, fizički se dijeli s kanalom A [pin PB1]). Postoji šest mogućih razina B1 (1-6), zadana razina je 1. Postoji pet graničnih vrijednosti koje mogu povećati B1. B1 se koristi kao glavni izlaz razine kanala B. Kad 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. Razina 3 znači da se neprestano primjenjuje 7-8V. Razine 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.
Kad se dosegne viši prag, razine A0, A1 i B1 trenutno se povećavaju. Međutim, kada RPM -ovi padnu, razina se održava 200 ms i može se smanjiti samo za 1 na 200 ms. Namjera je spriječiti brze promjene tih razina kada je ulazni broj okretaja ventilatora vrlo blizu praga.
Korak 3: Lemljenje elektroničkih komponenti
Lemite sve elektroničke 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 istiskivanjem velikih žica koje izlaze iz Molex (AMP MATE-N-LOK) priključka, 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. Pazite da žice ne uzrokuju kratke spojeve.
Ako želite napraviti vlastitu tiskanu pločicu, također vam nudim.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 ta 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 s nekoliko traka izolacijske trake.
Korak 4: Programiranje ATtiny mikrokontrolera
Program koji radi na MCU-u ima tvrdo kodirano nekoliko pragova brzina vrtnje 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 izlazne razine kanala A kao odgovor na ulaz_0 ventilatora koji prelazi 450 o / min, izgleda ovako:
#define A0_SPEED_0 3 // 450 o / min
Ako želite promijeniti vrijednost praga u minuti, morate broj 3 zamijeniti nečim drugim. Povećanje ovog broja za 1 promijenit će prag za 150 okretaja u minuti.
Druga stvar koju želite promijeniti je smanjenje kašnjenja izlazne razine. Ovo kašnjenje sprječava brze promjene razine izlaza 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 prvi od njih izgleda ovako:
if (channel_A0_lower_rpm_cycles> 2) {
Povećanje broja 2 povećat će ovo kašnjenje. Odgoda se računa u ciklusima od 100 ms.
Za sastavljanje izvornog koda i zatim programiranje čipa trebat će vam softver. Na Linux distribuciji sa sustavom Debian 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 paket WinAVR koji također sadrži potreban softver.
Za sastavljanje izvornog koda potrebno je izvršiti sljedeće:
avr -gcc -mmcu = attiny13 -Os -Zidni ventilator_kontroler.c -o ventilator_kontroler.izlaz -lm
Za izradu.hex datoteke morate kopirati ovaj redak 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
Kad 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 flash memoriju MCU -a:
avrdude -c usbasp -p t13 -B 8 -U bljesak: w: fan_controller.hex
-B 8 mijenja brzinu prijenosa između programatora i MCU -a (bitni sat). Možda ćete ga morati promijeniti na višu vrijednost ako imate problema s 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 ventilator Input 0 (onaj spojen na PB0) odabrao sam jedan od ventilatora kućišta koji je priključen na MOBO, čija je brzina varirala s temperaturom procesora. Uklonio sam izolaciju s dijela žice tahometra ventilatora i zalemio jedan kraj kratkospojnog kabela na njega. Drugi kraj (s ženskim konektorom 2,54 mm) spojen je na regulator ventilatora. Ako je kratkospojni kabel prekratak, produžite ga lemljenjem drugog kabela između prethodno spomenutih. 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 na PCB -u grafičke kartice postoji samo jedan priključak za ventilator). Lemio sam ulazni kratkospojnik kabel izravno na jedan od vodiča 4-pinskog mini GPU konektora za ventilator koji se nalazi na PCB-u. Budući da se ovaj kabel 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 PB1 pin 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 smješten između ventilatora i priključka na PCB -u, odluka je vaša.
Ventilator prenosi svoju trenutnu brzinu putem žice tahometra povezivanjem ove žice sa masom putem 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 se žica obično povlači na naponsku razinu 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 vam omogućuje provjeru maksimalnog napona koji se pojavi na izmjerenom mjestu, drugi provjerava pojavljuju li se tamo niskofrekventni impulsi.
3.3V bi trebali pročitati ATtinyjevi ulazni pinovi 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.
Kad su ulazni ventilatori spremni, možete postaviti kontroler ventilatora u kućište računala, 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čunala 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 s ventilatorima za CPU i GPU, 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žoj izlaznoj razini pogona). Ventilatori ne smiju vući više od 1A po izlaznom kanalu.
Korak 6: Ostale promjene koje sam napravio na svom računalu
Kanal A pokreće dva ventilatora koji se nalaze na vrhu mog 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 malo različitih frekvencija). Da bih to ispravio, 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đer sam pokušao napraviti druge zidove od papira koji su spriječili usisavanje ispušnog zraka GPU -a u hladnjak procesora. Oni su zapravo smanjili temp. 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 ispuhu ta dva gornja ventilatora (većinu vremena zrak se ionako gura iz kućišta, a kad je moje računalo isključeno, ladica koja se nalazi malo iznad kućišta računala štiti ga od prašine). Također sam instalirao 92 mm ventilator ispred dva prazna ležišta za pogone od 5,25”(kontroler ventilatora nalazi se 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).