İçindekiler:

CPU ve GPU Tahrikli Fan Kontrol Cihazı: 6 Adım (Resimlerle)
CPU ve GPU Tahrikli Fan Kontrol Cihazı: 6 Adım (Resimlerle)

Video: CPU ve GPU Tahrikli Fan Kontrol Cihazı: 6 Adım (Resimlerle)

Video: CPU ve GPU Tahrikli Fan Kontrol Cihazı: 6 Adım (Resimlerle)
Video: ASUS'tan çift ekranlı, yapay zekalı yeni laptop! Taşınabilir ekran! Asus CES 2024 canlı yayın 2024, Kasım
Anonim
CPU ve GPU Tahrikli Fan Kontrolörü
CPU ve GPU Tahrikli Fan Kontrolörü

Geçenlerde grafik kartımı yükselttim. Yeni GPU modeli benim CPU'mdan ve eski bir GPU'mdan daha yüksek TDP'ye sahip, bu yüzden ek kasa fanları da takmak istedim. Ne yazık ki MOBO'mda hız kontrollü yalnızca 3 fan konektörü var ve bunlar yalnızca CPU veya yonga seti sıcaklığına bağlanabilir. Halihazırda kurulu fanların (hem MOBO'ya bağlı olan ve CPU sıcaklığı tarafından çalıştırılanlar hem de GPU'yu soğutan fanlar) RPM hızlarını okuyan ve iki çıkış kanalına sahip olan kendi PC fan denetleyicimi tasarlayarak bunu düzeltmeye karar verdim. Kanal A, 3 pinli çıkış fanlarını değişken hızda çalıştırmak için hem CPU hem de GPU sıcaklığına bağlı fanların hızını kullanır. Kanal B yalnızca GPU fanlarının hızını algılar ve çıkış devresi, kendisi tarafından sürülen fanların daha düşük hızlarına ulaşmasını sağlayan ek transistör kullanır (yarı pasif grafik kartıyla iyi çalışır).

Diğer fan hızlarını okumak, bence, soğutucularla kaplı işlemcilerin hemen yanına ek sıcaklık probları kurmaktan daha kolay ve daha ucuzdur (temelde fan takometre kablosunu doğrudan bir mikrodenetleyici pimine bağlamayı gerektirir).

Fan hızlarını kontrol etme yöntemlerinden bazıları burada açıklanmıştır. Düşük frekanslı PWM kullanmaya karar verdim, ancak makalede açıklanan yöntemde birkaç değişiklik yaptım. İlk olarak, her kanalda seri bağlı 6 diyot bulunur, bunlar bir fana güç sağlayan voltajı 4-5V azaltmak için kullanılabilir. Bu kurulumda, PWM voltaj seviyeleri 0V – 12V yerine ~8V – 12V ve 0V – ~8V (Kanal A'da mevcut değildir) şeklindedir. Bu, fan tarafından üretilen gürültüyü büyük ölçüde azaltır. Fan kontrollü bu şekilde daha sessiz hale getirmek için kullandığım bir başka hile burada anlatılıyor. Bu hile, mikrodenetleyicinin çıkışı ile fanın voltaj seviyelerini değiştirmek için kullandığım bir MOSFET kapısı arasına RC devresi kurmayı gerektiriyor. Bu, MOSFET'i kontrol eden bir sinyalin dönüş hızını azaltır, dolayısıyla voltaj seviyesi değişikliği sırasında fanın açısal sarsıntısını daha az belirgin hale getirir, titreşimi ve voltaj yükselmelerini azaltır.

Gereçler

Parçalar ve malzemeler:

  • 8-PDIP durumunda ATtiny13 veya ATtiny13A
  • 8 Pinli DIP Soket
  • 3x IRF530 transistör
  • 12x 1N4007 diyot (yaklaşık 0,7V voltaj düşüşü olan diğer 1A diyotlar çalışmalıdır)
  • 220uF/25V radyal elektrolitik kapasitör
  • 10uF/16V radyal elektrolitik kapasitör
  • 5x 100nF seramik disk kondansatör
  • 10k 0.25W direnç
  • 4x 22k 0.25W direnç
  • 2x 1k 0.25W direnç
  • 6x6mm dokunmatik anahtar düğmesi
  • 2x 2 pin 2.54mm düz erkek pin başlığı
  • 4x 3 pinli erkek fan konektörü (Molex 2510), alternatif olarak isterseniz normal pin başlıklarını da kullanabilirsiniz (yaptım), ancak fanları bağlarken ekstra dikkatli olmalısınız ve bu fanların dişi konektörleri olacaktır. daha az güvenli bir şekilde bağlanmış
  • 4 pinli Molex konektörü, dişi muhafaza/erkek pinler (AMP MATE-N-LOK 1-480424-0 güç konektörü), bazı eski MOBO ile birlikte verilen Molex erkek - 2x SATA dişi adaptörün parçası olan birini kullandım
  • 2,54 mm dişi konektörlü (veya konektör muhafazaları + pimler + teller) 2x atlama kabloları, giriş fanları takometre kablolarına (veya doğrudan PCB'ler üzerindeki konektörlerine) lehimlenecektir.
  • prefboard (50mm x 70mm, min 18 x 24 delik dizisi), alternatif olarak, bakır kaplı levhayı kendiniz aşındırabilir ve delikler açabilirsiniz
  • birkaç parça tel
  • yalıtım bandı
  • alüminyum folyo bant (GPU arka plakasına konektör takacaksanız, 5. Adıma bakın)
  • kağıt

Aletler:

  • diyagonal kesici
  • pense
  • düz uçlu tornavida
  • maket bıçağı
  • multimetre
  • Lehimleme istasyonu
  • lehim
  • AVR programcısı (USBasp gibi bağımsız programcı veya ArduinoISP'yi kullanabilirsiniz)
  • PCB dışında mikrodenetleyiciyi programlamak için kullanılacak devre tahtası ve atlama kabloları (veya bu hedefe ulaşabilecek başka herhangi bir araç)

1. Adım: Sorumluluk Reddi

Bu cihazın yapımı, orta derecede tehlikeli aletlerin kullanılmasını gerektirir ve maddi hasara veya hasara neden olabilir. Gerekli adımlardan bazıları, donanımınızın garantisini geçersiz kılabilir ve hatta yanlış yapıldığında donanıma zarar verebilir. Tanımlanan cihazı kendi sorumluluğunuzda kurar ve kullanırsınız

2. Adım: Fan Kontrolü Nasıl Çalışır?

Fan Kontrolü Nasıl Çalışır?
Fan Kontrolü Nasıl Çalışır?

Kanal A iki giriş kullanır. Bu Kanal A girişlerinin her birinin kendisiyle ilişkilendirilmiş bir seviyesi vardır, bu seviyeleri A0 ve A1 olarak adlandıralım. Varsayılan olarak bu seviyelerin her ikisi de 0'dır. Her iki girişin de kendileriyle ilişkili eşik RPM değerleri vardır (giriş başına 3 eşik). Birinci eşiğe ulaşıldığında, A0 veya A1 1'e yükselir, ikincisi 2'ye yükselir ve üçüncü eşik giriş seviyelerinden birini 3'e ayarlar. Daha sonra A0 ve A1 birleştirilir (sadece birlikte eklenir ve daha yüksek bir değere ulaşması engellenir). 3), ana çıkış Kanal A seviye numarasını 0-3 aralığında yapar. Bu sayı, çıkış fanlarının hızını kontrol etmek için kullanılır, 0, 7-8V ile beslendikleri anlamına gelir (%0 görev döngüsü). Daha yüksek çıkış seviyeleri, fanın 100ms veya 33ms döngünün %33, %66 veya %100'ü için tam 12V'den güç aldığı anlamına gelir (seçilen frekansa bağlıdır).

Kanal B'nin yalnızca bir girişi vardır (B1, fiziksel olarak Kanal A [PB1 pini] ile paylaşılır). Altı olası B1 seviyesi (1-6) vardır, varsayılan seviye 1'dir. B1'i artırabilen beş eşik değeri mevcuttur. B1 ana çıkış Kanal B seviyesi olarak kullanılır. 1 olduğunda, 7-8V çıkış fanlarına bir çevrimde çevrim süresinin %33'ü, diğer çevrimde %66'sı kadar güç verir, kalan süre boyunca güç kesilir. Seviye 2, her döngünün %66'sının 7-8V, dinlenme 0V olduğu anlamına gelir. Seviye 3, 7-8V'nin sürekli uygulandığı anlamına gelir. Seviye 4-6, fanın döngünün %33'ü, %66'sı veya %100'ü için tam 12V'den güç aldığı anlamına gelir, geri kalan zaman voltajı 7-8V'dir.

Bu PWM kontrolünün frekansı varsayılan olarak 10Hz'dir. J7 jumper pinleri kapatılarak 30Hz'e yükseltilebilir.

Daha yüksek eşiğe ulaşıldığında A0, A1 ve B1 seviyeleri anlık olarak yükselir. Ancak RPM'ler düştüğünde, seviye 200ms için tutulur ve 200ms'de yalnızca 1 düşebilir. Giriş fan devri eşiğe çok yakın olduğunda bu seviyelerin hızlı değişmesini önlemek içindir.

Adım 3: Elektronik Bileşenleri Lehimleme

Elektronik Bileşenlerin Lehimlenmesi
Elektronik Bileşenlerin Lehimlenmesi
Elektronik Bileşenlerin Lehimlenmesi
Elektronik Bileşenlerin Lehimlenmesi
Elektronik Bileşenlerin Lehimlenmesi
Elektronik Bileşenlerin Lehimlenmesi

Tüm elektronik bileşenleri ön panele lehimleyin (Attiny13 hariç, daha sonra bir sokete yerleştirilecektir). Bileşenler arasında elektrik bağlantıları yapmak için bakır teller (UTP kablosundan 0,5 mm çapında olanlar mükemmel olmalıdır) kullanın. Molex(AMP MATE-N-LOK) konektöründen çıkan büyük kabloları itmekte zorlanıyorsanız, bunlar için daha büyük delikler açabilirsiniz. Matkap kullanmak istemiyorsanız, küçük prefboard delikleri içinde her zaman bir vidayı birkaç kez çevirebilirsiniz. Kabloların kısa devreye neden olmadığından emin olun.

Kendi PCB'nizi yapmayı tercih ederseniz,.svg (kart boyutları 53.34x63.50mm) ve.pdf (A4 sayfa boyutu,.zip arşivi içinde) dosyaları da sağlıyorum. Ön tarafta sadece bir bağlantı olduğundan (bir tel ile yapılabilir) tek taraflı bakır kaplama levha yeterli olacaktır, bu nedenle bu bağlantının tanımlanabilmesi için ön taraf için dosyalar ana olarak sağlanır.

PCB'nin arkasını herhangi bir kazara kısa devreyi önleyecek bir yalıtkan malzeme ile kapatmanızı şiddetle tavsiye ederim. Birkaç şerit yalıtım bandı ile PCB'nin kenarlarına tutulan birkaç kat normal kağıt kullandım.

Adım 4: ATtiny Mikrodenetleyicinin Programlanması

ATtiny Mikrodenetleyici Programlama
ATtiny Mikrodenetleyici Programlama
ATtiny Mikrodenetleyici Programlama
ATtiny Mikrodenetleyici Programlama

MCU'da çalışan program, giriş fanlarının RPM hızlarının birkaç eşiğini sabit olarak kodlamıştır. Bu eşikler fan_controller.c dosyasının başında bulunur. 450 RPM'yi aşan input_0 fanına yanıt olarak Kanal A çıkış seviyesinin biraz artmasından sorumlu olan ilk eşiği içeren satır şöyle görünür:

#define A0_SPEED_0 3 // 450 RPM

Eşik RPM değerini değiştirmek istiyorsanız, 3 numarayı başka bir şeyle değiştirmeniz gerekir. Bu sayıyı 1 artırmak, eşiği 150 RPM değiştirecektir.

Değiştirmek isteyebileceğiniz diğer şey, çıkış seviyesi gecikmesinin azalmasıdır. Bu gecikme, giriş fanı RPM'si eşiğe çok yakın olduğunda çıkış seviyesindeki hızlı değişiklikleri önler. Bunu kontrol eden 3 hat vardır (Kanal A 2 giriş kullandığı ve Kanal B 1 kullandığı için) ve bunlardan ilki şöyle görünür:

if(channel_A0_lower_rpm_cycles > 2) {

2 sayısını artırmak bu gecikmeyi artıracaktır. Gecikme 100ms döngülerde sayılır.

Kaynak kodunu derlemek ve ardından çipi programlamak için bazı yazılımlara ihtiyacınız olacak. Debian tabanlı bir Linux dağıtımında aşağıdaki komut yürütülerek kurulabilir:

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

Windows kullanıyorsanız, gerekli yazılımı da içeren WinAVR paketini yüklemeyi deneyebilirsiniz.

Kaynak kodunu derlemek için şunu çalıştırmanız gerekir:

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

.hex dosyası oluşturmak için bu satırı terminale kopyalamanız gerekir:

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

Bu komut, programın ne kadar bellek kullanacağını kontrol etmeyi sağlar (metin Flash'tır, veriler Flash'ta depolanacak ve ardından RAM'e kopyalanacak değişkenlerdir ve bss, RAM'de 0 değeriyle başlatılan değişkenlerdir):

avr boyutunda fan_controller.out

.hex dosyanız hazır olduğunda, ATtiny13'ü breadboard'a eklemeniz ve jumper kabloları ile programlayıcıya bağlamanız gerekir. MCU'ya bağlarken programlayıcının gücünü kesmek en iyisidir. Varsayılan sigorta bitlerini koruyun (H:FF, L:6A). Programlayıcınız USBasp ise bu komut MCU'nun flash belleğini programlayacaktır:

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

-B 8, programlayıcı ve MCU (bitclock) arasındaki aktarım hızını değiştirir. Mikrodenetleyiciye bağlanmada sorun yaşıyorsanız daha yüksek bir değere değiştirmeniz gerekebilir.

MCU bize hazır olduğunda, DIP 8 soketinin içine koyun. MCU'yu devre tahtasından çıkarmak için genellikle düz uçlu tornavidayla kaldırırım.

Adım 5: Fanları Cihaza Bağlama

Fanları Cihaza Bağlama
Fanları Cihaza Bağlama
Fanları Cihaza Bağlama
Fanları Cihaza Bağlama
Fanları Cihaza Bağlama
Fanları Cihaza Bağlama

Giriş 0 fanı olarak (PB0'a bağlı olan) MOBO'ya takılı kasa fanlarından birini seçtim, bu hız CPU sıcaklığına göre değişiyordu. Fanın takometre kablosunun kısmından yalıtımı çıkardım ve aktarma kablosunun bir ucunu ona lehimledim. Diğer uç (2,54 mm dişi konektör takılı) fan kontrolörüne bağlanacaktır. Atlama kablosu çok kısaysa, daha önce bahsedilenler arasına başka bir kablo lehimleyerek uzatın. Ardından açıkta kalan tüm iletkenleri yalıtım bandıyla kapatın.

Giriş 1, GPU fanlarının hızını okur (benim durumumda aslında 3 tane var, ancak grafik kartı PCB'sinde yalnızca bir fan konektörü var). Giriş 1 atlama kablosunu doğrudan PCB üzerinde bulunan 4 pimli mini GPU fan konektörünün uçlarından birine lehimledim. Bu uç PCB ile arka plaka arasına yerleştirildiğinden, önce bir kağıt parçası ile arka plakayı yalıttım (özellikle arka plakanın malzemesi oldukça lehimlenebilir olduğu için) ve daha sonra alüminyum folyo bant kullanarak kablonun dişi konektörünü arka plakanın diğer tarafına sıkıca tutturdum.. Daha sonra GPU fan(lar)ı, başka bir (uzatılmış) atlama kablosu kullanılarak PB1 pinine bağlanabilir. Grafik kartınızın PCB'sine herhangi bir lehim yapmak istemiyorsanız, fanın kablolarına jumper kablo bağlayabilir veya fan(lar) ile PCB üzerindeki konnektör arasına yerleştirilecek adaptör yapabilirsiniz, karar sizin.

Fan, devir başına iki kez açık tahliye/toplayıcı üzerinden bu teli toprağa bağlayarak takometre teli üzerinden mevcut hızını iletir (fanın rotoru genellikle Hall sensörü tarafından algılanan 4 kutuplu[NSNS], fanın çıkışı düştüğünde kutup tipi tespit edildi). Diğer taraftan bu tel genellikle 3.3V voltaj seviyesine çekilir. Doğru kabloya sahip olup olmadığınızdan emin değilseniz, osiloskop kullanabilir veya bu adımda son resimde çizilen algılama devrelerinden birini oluşturabilirsiniz. Bunlardan ilki, ölçülen konumda görünen maksimum voltajı kontrol etmenizi, ikincisi ise burada düşük frekanslı darbelerin görünüp görünmediğini kontrol etmenizi sağlar.

3.3V, ATtiny'nin giriş pinleri tarafından YÜKSEK durum olarak okunmalıdır, ancak bununla ilgili sorunlarınız varsa, MCU'ya güç veren voltajı düşürmeyi deneyebilirsiniz (MOSFET'lerin direncini de artıracaktır!). Herhangi bir sorun yaşamadım, yine de bu düşünceyi buraya dahil etmem gerektiğine karar verdim.

Giriş fanları hazır olduğunda, PC kasanızın içine istediğiniz bir yere fan denetleyicisi yerleştirebilirsiniz. Boş 5,25 inçlik sürücü bölmelerimden ikisinin yanına, bölmenin metal parçaları arasına iterek, arkasına biraz kağıt yerleştirerek ve büyük deliklerden birinden geçirilmiş bir fermuar kullanarak yerine kilitleyerek monte ettim. ön panoda ve 5.25”yuvasındaki diğer bazı deliklerde. PC kasasının hiçbir metal parçasının fan denetleyicisinin açıkta kalan iletkenlerine temas etmemesine dikkat edin.

Artık 3 pinli çıkış fanlarını kontrolöre bağlayabilirsiniz. Kanal A'ya bağlanan çıkış fanları hem CPU hem de GPU fanlarına bağlanacak ve onlara güç sağlayacak minimum voltaj yaklaşık 7-8V olacaktır. Kanalın B çıkış konektörlerine takılı fanlar yalnızca GPU soğutucu fan(lar)ı tarafından çalıştırılacaktır ve voltajları 0V'a düşebilir (ancak en düşük çıkış sürücü seviyesinde her saniye 100ms döngüde yalnızca 66ms için). Fanlar çıkış kanalı başına 1A'dan fazla çekmemelidir.

Adım 6: Bilgisayarımda Yaptığım Diğer Değişiklikler

Bilgisayarımda Yaptığım Diğer Değişiklikler
Bilgisayarımda Yaptığım Diğer Değişiklikler
Bilgisayarımda Yaptığım Diğer Değişiklikler
Bilgisayarımda Yaptığım Diğer Değişiklikler
Bilgisayarımda Yaptığım Diğer Değişiklikler
Bilgisayarımda Yaptığım Diğer Değişiklikler
Bilgisayarımda Yaptığım Diğer Değişiklikler
Bilgisayarımda Yaptığım Diğer Değişiklikler

Kanal A, kasamın üstünde bulunan iki fanı çalıştırıyor. Aynı modeldirler ve aynı voltajla çalışırlar, bu da çok benzer hızlarda dönmelerini sağlar. Bunun bir sonucu olarak bazı duyulabilir vuruşlar (biraz farklı frekanslardaki iki ses arasındaki parazit paterni) ortaya çıktı. Bunu düzeltmek için fanlardan biriyle seri olarak 2 diyot (bir normal bir ve bir Schottky) kurdum. Bu, fan voltajını ve hızını azaltarak ritmin kaybolmasına neden oldu.

Yaptığım fanlardan biriyle ilgili olan bir başka değişiklik, daha öne yerleştirilmiş bir kağıt duvar körüklü üst fanın takılmasıdır. Amacı, bu fanın henüz hiçbir soğutucudan geçmemiş havayı emmesini engellemektir. Ayrıca GPU egzoz havasının CPU soğutucusuna emilmesini önleyen başka kağıt duvarlar yapmayı da denedim. Aslında CPU sıcaklığını düşürdüler, ancak GPU'nun daha fazla ısınması pahasına, bu yüzden sonunda onları kaldırdım.

Yaptığım diğer olağandışı değişiklik, bu iki üst fanın egzozundaki toz filtresinin çıkarılmasıdır (çoğu zaman kasadan hava zaten dışarı itilir ve bilgisayarım kapalıyken, kasanın biraz üzerinde bulunan çekmece onu korur) tozdan). Ayrıca iki boş 5,25” sürücü bölmesinin önüne 92 mm fan taktım (fan denetleyicisi hemen arkasında bulunur). Bu fan herhangi bir vidayla tutulmuyor, sadece altındaki 120 mm'lik fan ile üstteki optik sürücü arasına güzel bir şekilde uyuyor (her ikisinin de yüzeyleri bir miktar titreşim sönümlemesi sağlamak için yalıtım bandı ile kaplanmıştır).

Önerilen: