Taula de continguts:

Controlador de ventilador impulsat per CPU i GPU: 6 passos (amb imatges)
Controlador de ventilador impulsat per CPU i GPU: 6 passos (amb imatges)

Vídeo: Controlador de ventilador impulsat per CPU i GPU: 6 passos (amb imatges)

Vídeo: Controlador de ventilador impulsat per CPU i GPU: 6 passos (amb imatges)
Vídeo: Самодельный кондиционер, который заморозит даже пингвинов! 2024, Desembre
Anonim
Controlador de ventilador impulsat per CPU i GPU
Controlador de ventilador impulsat per CPU i GPU

Recentment he actualitzat la meva targeta gràfica. El nou model de GPU té un TDP més alt que la meva CPU i una GPU antiga, de manera que també volia instal·lar ventiladors de carcassa addicionals. Malauradament, el meu MOBO només té 3 connectors de ventilador amb control de velocitat i només es poden enllaçar amb la temperatura de la CPU o del chipset. Vaig decidir posar-hi remei, dissenyant el meu propi controlador de ventilador de PC que llegeix la velocitat RPM dels ventiladors ja instal·lats (tant els connectats al MOBO, impulsats per la temperatura de la CPU com els que refreden la GPU) i que té dos canals de sortida. El canal A utilitza la velocitat dels ventiladors vinculats a la temperatura de la CPU i la GPU per impulsar ventiladors de sortida de 3 pins amb velocitat variable. El canal B només detecta la velocitat dels ventiladors de la GPU i el seu circuit de sortida utilitza un transistor addicional que permet aconseguir velocitats inferiors dels ventiladors impulsats per ell (funciona bé amb la targeta gràfica semipassiva).

Segons la meva opinió, llegir la velocitat d'altres ventiladors és més fàcil i barat que instal·lar sondes de temperatura addicionals just al costat dels processadors coberts amb dissipadors de calor (bàsicament requereix connectar els taquòmetres dels ventiladors directament a un pin del microcontrolador).

Aquí es descriuen alguns dels mètodes de control de la velocitat del ventilador. Vaig decidir utilitzar PWM de baixa freqüència, però amb poques modificacions al mètode descrit a l'article. En primer lloc, cada canal té 6 díodes connectats en sèrie, que es poden utilitzar per reduir la tensió que alimenta un ventilador en 4-5V. En aquesta configuració, els nivells de tensió PWM són de ~ 8V - 12V i 0V - ~ 8V (no disponible al canal A) en lloc de 0V - 12V. Això redueix considerablement el soroll produït pel ventilador. Aquí es descriu un altre truc que utilitzava per fer més silenciosos els ventiladors controlats d’aquesta manera. Aquest truc requereix instal·lar un circuit RC entre la sortida del microcontrolador i una porta d’un MOSFET que he utilitzat per canviar els nivells de tensió del ventilador. D’aquesta manera es redueix la freqüència de rotació d’un senyal que controla el MOSFET, cosa que fa que la sacsejada angular del ventilador durant el canvi de nivell de tensió sigui menys important, tallant les vibracions i els pics de tensió.

Subministraments

Peces i materials:

  • ATtiny13 o ATtiny13A en un cas de 8-PDIP
  • Socket DIP de 8 pins
  • 3x transistor IRF530
  • 12x 1N4007 díode (hauria de funcionar qualsevol altre díode 1A amb caiguda de tensió al voltant de 0,7V)
  • Condensador electrolític radial 220uF / 25V
  • Condensador electrolític radial de 10uF / 16V
  • Condensador de disc ceràmic 5x 100nF
  • Resistència de 10k 0.25W
  • 4x resistència de 22k 0.25W
  • 2x 1k resistència de 0,25 W.
  • Botó d'interruptor tàctil de 6x6mm
  • 2x 2 clavilles de 2,54 mm de capçal masculí recte
  • 4x connector de ventilador mascle de 3 pins (Molex 2510), com a alternativa, podeu utilitzar capçaleres de pin normals si voleu (ho he fet), però haureu de tenir molta precaució a l’hora de connectar els ventiladors i els connectors femenins d’aquests ventiladors seran connectat de forma menys segura
  • Connector Molex de 4 pins, carcassa femella / pins masculins (connector d’alimentació AMP MATE-N-LOK 1-480424-0), n’he utilitzat un que formava part de l’adaptador femella Molex a 2x SATA femella inclòs amb algun MOBO antic
  • 2x cables jumper amb connectors femella de 2,54 mm (o carcasses de connectors + pins + cables), es soldaran als cables del tacòmetre dels ventiladors d’entrada (o directament als connectors dels PCB)
  • tauler prefabricat (50 mm x 70 mm, matriu mínima de 18 x 24 forats), o bé, podeu gravar un tauler revestit de coure i perforar forats
  • pocs trossos de filferro
  • cinta aïllant
  • cinta de paper d'alumini (si voleu connectar el connector a la placa posterior de la GPU, vegeu el pas 5)
  • paper

Eines:

  • tallador diagonal
  • alicates
  • tornavís de fulla plana
  • ganivet utilitari
  • multímetre
  • estació de soldadura
  • soldar
  • Programador AVR (programador autònom com USBasp o podeu utilitzar ArduinoISP
  • cables de pont i de pont que s’utilitzaran per programar microcontroladors fora de PCB (o qualsevol altra eina que pugui assolir aquest objectiu)

Pas 1: Exempció de responsabilitat

La construcció d’aquest dispositiu requereix l’ús d’eines moderadament perilloses i pot causar danys o danys a la propietat. Alguns dels passos necessaris poden anul·lar la garantia del vostre maquinari o fins i tot danyar-lo quan es realitzin de manera incorrecta. Creeu i utilitzeu el dispositiu descrit al vostre propi risc

Pas 2: Com funciona el control del ventilador

Com funciona el control del ventilador
Com funciona el control del ventilador

El canal A utilitza dues entrades. Cadascuna d'aquestes entrades del canal A té un nivell associat, permet trucar a aquests nivells A0 i A1. Per defecte, tots dos nivells són 0. Ambdues entrades tenen valors RPM llindars associats (3 llindars per entrada). Quan s’assoleix el primer llindar, A0 o A1 augmenta a 1, quan el segon augmenta a 2 i el tercer llindar estableix un dels nivells d’entrada a 3. Més tard es combinen A0 i A1 (simplement s’uneixen i s’evita que s’aconsegueixi un valor superior de 3), convertint la sortida principal del número A del canal A en el rang 0-3. Aquest número s'utilitza per controlar la velocitat dels ventiladors de sortida, 0 significa que estan alimentats per 7-8V (cicle de treball del 0%). Un nivell de sortida més alt significa que el ventilador s’alimenta de 12V complet durant un 33%, 66% o 100% d’un cicle de 100 ms o 33 ms (depèn de la freqüència seleccionada).

El canal B només té una entrada (B1, físicament es comparteix amb el canal A [pin PB1]). Hi ha sis nivells B1 possibles (1-6), el nivell per defecte és 1. Existeixen cinc valors llindars que poden augmentar B1. B1 s’utilitza com a sortida principal del nivell B del canal. Quan és d'1, 7-8V alimenta els ventiladors de sortida durant el 33% del temps de cicle en un cicle, i en l'altre el 66%, mentre que la resta del temps es desconnecta l'alimentació. El nivell 2 significa que el 66% de cada cicle és de 7-8V, la resta 0V. El nivell 3 significa que s’aplica constantment 7-8V. Els nivells 4-6 signifiquen que el ventilador s’alimenta de 12V complet durant el 33%, el 66% o el 100% del cicle, mentre que la resta del temps la tensió és de 7-8V.

La freqüència d’aquest control PWM per defecte és de 10 Hz. Es pot augmentar a 30Hz tancant els pins de pont J7.

Quan s’arriba al llindar més alt, els nivells A0, A1 i B1 augmenten instantàniament. Tanmateix, quan disminueixen les RPM, el nivell es manté durant 200 ms i només pot disminuir 1 per cada 200 ms. És per evitar canvis ràpids d’aquests nivells quan el RPM del ventilador d’entrada està molt a prop del llindar.

Pas 3: soldar components electrònics

Components electrònics de soldadura
Components electrònics de soldadura
Components electrònics de soldadura
Components electrònics de soldadura
Components electrònics de soldadura
Components electrònics de soldadura

Soldeu tots els components electrònics al tauler prefabricat (excepte Attiny13, que posteriorment es posarà dins d’un sòcol). Utilitzeu cables de coure (els de 0,5 mm de diàmetre del cable UTP haurien de ser perfectes) per fer connexions elèctriques entre components. Si teniu problemes per empènyer cables grans que surten del connector Molex (AMP MATE-N-LOK), podeu practicar-los forats més grans. Si no voleu utilitzar un trepant, sempre podeu girar un cargol unes quantes vegades dins dels petits forats del tauler de prefabricació. Assegureu-vos que els cables no causin cap curtcircuit.

Si preferiu crear el vostre propi PCB, també proporciono fitxers.svg (les dimensions del tauler són de 53,34x63,50 mm) i.pdf (mida de la pàgina A4, dins de l’arxiu.zip). Un tauler revestit de coure d’una sola cara hauria de ser suficient, ja que només hi ha una connexió a la part frontal (es pot fer amb un filferro), de manera que es proporcionen fitxers per a la part frontal de manera que es pugui identificar aquesta connexió.

Us recomano que cobreu la part posterior del PCB amb algun material aïllant que eviti curtcircuits accidentals. He utilitzat poques capes de paper regular que es mantenen a les vores del PCB mitjançant unes tires de cinta aïllant.

Pas 4: Programació del microcontrolador ATtiny

Programació del microcontrolador ATtiny
Programació del microcontrolador ATtiny
Programació del microcontrolador ATtiny
Programació del microcontrolador ATtiny

El programa que s’executa a l’MCU té diversos llindars codificats de manera ràpida a la velocitat RPM dels ventiladors d’entrada. Aquests llindars es troben al començament del fitxer fan_controller.c. La línia que conté el primer llindar, que s'encarrega d'augmentar lleugerament el nivell de sortida del canal A en resposta a un ventilador d'entrada_0 superior a 450 RPM, té aquest aspecte:

#define A0_SPEED_0 3 // 450 RPM

Si voleu canviar el valor RPM llindar, heu de substituir el número 3 per una altra cosa. Si incrementeu aquest número en 1, el llindar canviarà en 150 rpm.

Una altra cosa que potser voldreu canviar és la disminució del retard del nivell de sortida. Aquest retard impedeix canvis ràpids en el nivell de sortida quan el RPM del ventilador d’entrada està molt a prop del llindar. Hi ha 3 línies que ho controlen (ja que el canal A utilitza 2 entrades i el canal B en fa 1) i la primera d'elles té aquest aspecte:

if (channel_A0_lower_rpm_cycles> 2) {

L’augment del número 2 augmentarà aquest retard. El retard es compta en cicles de 100 ms.

Per compilar el codi font i després programar el xip, necessitareu algun programari. En una distribució Linux basada en Debian, es pot instal·lar executant l'ordre següent:

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

Si utilitzeu Windows, podeu provar d’instal·lar la suite WinAVR, que també conté el programari necessari.

Per compilar el codi font, heu d’executar-ho:

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

Per crear el fitxer.hex, heu de copiar aquesta línia al terminal:

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

Aquesta ordre permet comprovar la quantitat de memòria que farà servir el programa (el text és Flash, les dades són variables que s’emmagatzemaran a Flash i es copiaran a la memòria RAM i bss són variables inicialitzades amb un valor de 0 a la memòria RAM):

avr-size fan_controller.out

Quan el fitxer.hex estigui a punt, heu d'inserir ATtiny13 a la placa de connexió i connectar-lo al programador amb cables de pont. El millor és desconnectar l'alimentació del programador quan el connecteu a l'MCU. Conserveu els bits de fusible per defecte (H: FF, L: 6A). Si el vostre programador és USBasp, aquesta ordre programarà la memòria flash de l'MCU:

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

-B 8 canvia la velocitat de transmissió entre programador i MCU (bitclock). És possible que hagueu de canviar-lo a un valor superior si teniu problemes per connectar-vos al microcontrolador.

Quan el MCU estigui a punt, poseu-lo dins del sòcol DIP 8. Per treure l’MCU de la placa d’adaptació, normalment l’aconsegueixo amb un tornavís de fulla plana.

Pas 5: Connexió dels ventiladors al dispositiu

Connexió de ventiladors al dispositiu
Connexió de ventiladors al dispositiu
Connexió de ventiladors al dispositiu
Connexió de ventiladors al dispositiu
Connexió de ventiladors al dispositiu
Connexió de ventiladors al dispositiu

Com a ventilador d’entrada 0 (el connectat al PB0), vaig seleccionar un dels ventiladors de carcassa connectats a MOBO, que variava amb la temperatura de la CPU. Vaig retirar l'aïllament de la part del cable del tacòmetre del ventilador i hi vaig soldar un extrem del cable de pont. L'altre extrem (amb un connector femella de 2,54 mm connectat) es connectarà al controlador del ventilador. Si el cable jumper és massa curt, esteneu-lo soldant un altre cable entre els esmentats anteriorment. A continuació, cobriu tots els conductors exposats amb cinta aïllant.

L’entrada 1 llegeix la velocitat dels ventiladors de la GPU (en el meu cas n’hi ha 3, però només hi ha un connector de ventilador a la placa de la targeta gràfica). He soldat el cable jumper d’entrada 1 directament a un dels cables del mini ventilador de 4 pins del connector del ventilador GPU situat a la placa. Com que aquest cable estava situat entre el PCB i la placa posterior, primer vaig aïllar la placa posterior amb un tros de paper (sobretot perquè el material de la placa posterior era força soldable) i després vaig connectar fermament el connector femella del cable a l’altre costat de la placa posterior amb l’ús de cinta de paper d’alumini. A continuació, es podrien connectar els ventiladors de la GPU al pin PB1 amb l’ús d’un altre cable de pont (estès). Si no voleu soldar res al PCB de la targeta gràfica, podeu connectar un cable jumper als cables del ventilador o fabricar un adaptador que es col·locarà entre el ventilador i el connector del PCB, la decisió és vostra.

El ventilador transmet la seva velocitat actual a través del cable del tacòmetre mitjançant la connexió d’aquest cable a terra mitjançant un drenatge / col·lector obert dues vegades per rotació (el rotor del ventilador sol tenir 4 pols [NSNS] que són detectats pel sensor Hall, la sortida del ventilador baixa sobre el tipus de pol es detecta). A l’altra banda, aquest cable sol passar al nivell de voltatge de 3,3V. Si no esteu segur de si heu obtingut el cable adequat, podeu utilitzar l'oscil·loscopi o construir un dels circuits de detecció que es dibuixin a la darrera imatge d'aquest pas. El primer d'ells permet comprovar la tensió màxima que apareix a la ubicació mesurada, el segon comprovar si hi apareixen polsos de baixa freqüència.

Els pins d’entrada d’ATtiny haurien de llegir 3,3 V com a estat ALT, però si teniu problemes amb això, podeu intentar reduir el voltatge que alimenta l’MCU (també augmentarà la resistència dels MOSFET!). No vaig tenir cap problema, però, vaig decidir incloure aquest pensament aquí.

Quan els ventiladors d'entrada estiguin preparats, podeu col·locar el controlador del ventilador a l'interior de la funda del PC, en un lloc que trieu. El vaig muntar al costat de dues de les meves obertures buides de 5,25 polzades, empenyent-lo entre les parts metàl·liques de la badia, col·locant paper darrere i bloquejant-lo al seu lloc amb l'ús d'una corbata amb cremallera empès a través d'un dels forats grans al tauler prefabricat i alguns altres forats a la badia de 5,25”. Assegureu-vos que cap part metàl·lica de la carcassa del PC pugui tocar cap dels conductors exposats del controlador del ventilador.

Ara podeu connectar ventiladors de sortida de 3 pins al controlador. Els ventiladors de sortida connectats al canal A estaran relacionats amb els ventiladors de la CPU i de la GPU, i el voltatge mínim que els alimentarà serà d’uns 7-8V. Els ventiladors connectats als connectors de sortida B del canal només seran conduïts pels ventiladors més freds de la GPU i la seva tensió pot baixar a 0 V (però només durant 66 ms cada cicle de 100 ms al nivell més baix de la unitat de sortida). Els ventiladors no haurien de dibuixar més de 1A per canal de sortida.

Pas 6: Altres canvis que he fet al meu PC

Altres canvis que he fet al meu PC
Altres canvis que he fet al meu PC
Altres canvis que he fet al meu PC
Altres canvis que he fet al meu PC
Altres canvis que he fet al meu PC
Altres canvis que he fet al meu PC
Altres canvis que he fet al meu PC
Altres canvis que he fet al meu PC

El canal A impulsa dos ventiladors situats a la part superior del meu estoig. Són el mateix model i estan alimentats pel mateix voltatge, cosa que els fa girar a velocitats molt similars. Com a resultat d'això, van aparèixer alguns ritmes sonors (patró d'interferència entre dos sons de freqüències lleugerament diferents). Per solucionar-ho, he instal·lat 2 díodes (un normal i un Schottky) en sèrie amb un dels ventiladors. Això va reduir el voltatge i la velocitat del ventilador i va fer desaparèixer els batecs.

Un altre canvi, relacionat amb un dels ventiladors que he fet, és la instal·lació d’un ventilador superior de paret de paper situat més a la part frontal. El seu propòsit és evitar que aquest ventilador xucli aire que encara no hagi passat per cap dissipador de calor. També vaig provar de fer altres parets de paper que impedissin que l’aire d’escapament de la GPU fos aspirat al refrigerador de la CPU. De fet, van reduir la temperatura de la CPU, però a costa d’escalfar-se més la GPU, així que al final els vaig eliminar.

Una altra modificació inusual que he fet és la retirada del filtre de pols a l’escapament d’aquests dos ventiladors superiors (la majoria de les vegades l’aire s’expulsa de la caixa de totes maneres i, quan el meu PC està apagat, el calaix situat lleugerament per sobre de la caixa del PC ho protegeix de pols). També he instal·lat un ventilador de 92 mm davant de dos compartiments buits de 5,25 polzades (el controlador del ventilador es troba just darrere). Aquest ventilador no està subjectat per cap cargol, sinó que s’adapta molt bé entre el ventilador de 120 mm que hi ha a sota i la unitat òptica superior (les superfícies d’ambdues estan cobertes amb cinta d’aïllament per proporcionar una mica d’amortiment de les vibracions).

Recomanat: