Índice:

Controlador de ventilador acionado por CPU e GPU: 6 etapas (com imagens)
Controlador de ventilador acionado por CPU e GPU: 6 etapas (com imagens)

Vídeo: Controlador de ventilador acionado por CPU e GPU: 6 etapas (com imagens)

Vídeo: Controlador de ventilador acionado por CPU e GPU: 6 etapas (com imagens)
Vídeo: CUIDADO PARA NÃO QUEIMAR SUA PLACA DE VÍDEO! 2024, Julho
Anonim
Controlador de ventilador acionado por CPU e GPU
Controlador de ventilador acionado por CPU e GPU

Recentemente, atualizei minha placa de vídeo. O novo modelo de GPU tem TDP mais alto do que minha CPU e uma GPU antiga, então eu também queria instalar ventoinhas de gabinete adicionais. Infelizmente, meu MOBO tem apenas 3 conectores de ventoinha com controle de velocidade e eles só podem ser ligados à temperatura da CPU ou do chipset. Decidi remediar isso, projetando meu próprio controlador de ventoinha para PC que lê as velocidades RPM das ventoinhas já instaladas (tanto aquelas conectadas ao MOBO e acionadas pela temperatura da CPU quanto as que refrigeram a GPU) e tem dois canais de saída. O canal A usa a velocidade dos ventiladores ligados à temperatura da CPU e GPU para acionar os ventiladores de saída de 3 pinos com velocidade variável. O canal B detecta apenas a velocidade dos ventiladores da GPU e seu circuito de saída usa um transistor adicional que permite atingir velocidades mais baixas dos ventiladores acionados por ele (funciona bem com placa de vídeo semipassiva).

Ler a velocidade de outras ventoinhas, na minha opinião, é mais fácil e barato do que instalar sondas de temperatura adicionais ao lado de processadores cobertos por dissipadores de calor (basicamente requer conectar o fio dos tacômetros das ventoinhas diretamente a um pino do microcontrolador).

Alguns dos métodos de controle da velocidade do ventilador são descritos aqui. Decidi usar PWM de baixa frequência, mas com algumas modificações no método descrito no artigo. Primeiramente, cada canal possui 6 diodos conectados em série, que podem ser usados para reduzir a tensão que alimenta um ventilador em 4-5V. Nesta configuração, os níveis de tensão PWM são ~ 8V - 12V e 0V - ~ 8V (não disponível no Canal A) em vez de 0V - 12V. Isso reduz bastante o ruído produzido pelo ventilador. Outro truque que usei para deixar o ventilador controlado dessa forma mais silencioso é descrito aqui. Este truque requer a instalação do circuito RC entre a saída do microcontrolador e uma porta de um MOSFET que usei para alternar os níveis de tensão do ventilador. Isso reduz a taxa de variação de um sinal que controla o MOSFET, por sua vez, tornando o empurrão angular do ventilador durante a mudança do nível de tensão menos proeminente, cortando a vibração e os picos de tensão.

Suprimentos

Peças e materiais:

  • ATtiny13 ou ATtiny13A em um caso 8-PDIP
  • Soquete DIP de 8 pinos
  • 3 transistores IRF530
  • Diodo 12x 1N4007 (qualquer outro diodo 1A com queda de tensão de cerca de 0,7 V deve funcionar)
  • Capacitor eletrolítico radial 220uF / 25V
  • Capacitor eletrolítico radial de 10uF / 16V
  • 5x capacitor de disco de cerâmica 100nF
  • 10k resistor de 0,25 W
  • 4 resistor de 22k 0,25 W
  • 2 resistor de 1k 0,25 W
  • Botão de interruptor tátil de 6x6mm
  • 2x 2 pinos 2,54 mm reto macho pino cabeçote
  • 4x conector de ventilador macho de 3 pinos (Molex 2510), alternativamente, você pode usar cabeçalhos de pino regulares se quiser (eu fiz), mas então você tem que ser extremamente cuidadoso ao conectar os ventiladores, e os conectores fêmeas desses ventiladores serão preso com menos segurança
  • Conector Molex de 4 pinos, carcaça fêmea / pinos machos (conector de alimentação AMP MATE-N-LOK 1-480424-0), usei um que fazia parte do adaptador Molex macho para 2x SATA fêmea junto com algum MOBO antigo
  • 2 cabos jumper com conectores fêmea de 2,54 mm (ou carcaças de conectores + pinos + fios), eles serão soldados aos fios do tacômetro dos ventiladores de entrada (ou diretamente aos seus conectores nos PCBs)
  • pré-cartão (50 mm x 70 mm, matriz de furos mínimo de 18 x 24), alternativamente, você mesmo pode gravar placa revestida de cobre e fazer furos
  • alguns pedaços de arame
  • fita isolante
  • fita de folha de alumínio (se você for prender o conector à placa traseira da GPU, consulte a Etapa 5)
  • papel

Ferramentas:

  • cortador diagonal
  • alicate
  • chave de fenda plana
  • faca utilitária
  • multímetro
  • estação de solda
  • solda
  • Programador AVR (programador autônomo como USBasp ou você pode usar ArduinoISP
  • breadboard e cabos jumper que serão usados para programar o microcontrolador fora do PCB (ou qualquer outra ferramenta que possa atingir esse objetivo)

Etapa 1: isenção de responsabilidade

A construção deste dispositivo requer o uso de ferramentas moderadamente perigosas e pode causar danos ou danos à propriedade. Algumas das etapas necessárias podem anular a garantia do seu hardware ou até mesmo danificá-lo quando conduzido de maneira inadequada. Você constrói e usa o dispositivo descrito por sua própria conta e risco

Etapa 2: Como funciona o controle do ventilador

Como funciona o controle do ventilador
Como funciona o controle do ventilador

O canal A usa duas entradas. Cada uma dessas entradas do Canal A tem um nível associado a ela, vamos chamar esses níveis de A0 e A1. Por padrão, ambos os níveis são 0. Ambas as entradas têm valores de RPM de limite associados a elas (3 limites por entrada). Quando o primeiro limite é alcançado, A0 ou A1 aumenta para 1, quando o segundo aumenta para 2 e o terceiro limite define um dos níveis de entrada para 3. Mais tarde, A0 e A1 são combinados (simplesmente somados e impedidos de atingir um valor mais alto de 3), fazendo com que a saída principal do Canal A seja um número de nível 0-3. Este número é usado para controlar a velocidade dos ventiladores de saída, 0 significa que eles são alimentados por 7-8 V (ciclo de trabalho de 0%). Níveis de saída mais altos significam que o ventilador é alimentado de 12 V por 33%, 66% ou 100% de um ciclo de 100 ms ou 33 ms (depende da frequência selecionada).

O canal B tem apenas uma entrada (B1, fisicamente é compartilhado com o canal A [pino PB1]). Existem seis níveis B1 possíveis (1-6), o nível padrão é 1. Existem cinco valores de limite, que podem aumentar B1. B1 é usado como nível B do canal de saída principal. Quando é 1, 7-8 V alimenta os ventiladores de saída por 33% do tempo de ciclo em um ciclo, no outro por 66%, para o resto do tempo a energia é desconectada. Nível 2 significa que 66% de cada ciclo é 7-8V, descanso 0V. Nível 3 significa que 7-8 V é constantemente aplicado. Os níveis 4-6 significam que o ventilador é alimentado com 12V completos por 33%, 66% ou 100% do ciclo, para o resto do tempo a tensão é de 7-8V.

A frequência deste controle PWM por padrão é 10Hz. Pode ser aumentado para 30 Hz fechando os pinos do jumper J7.

Quando um limite mais alto é alcançado, os níveis de A0, A1 e B1 aumentam instantaneamente. Quando os RPMs caem, no entanto, o nível é mantido por 200 ms e pode diminuir apenas 1 por 200 ms. É para evitar mudanças rápidas desses níveis quando o RPM do ventilador de entrada está muito próximo do limite.

Etapa 3: Componentes eletrônicos de soldagem

Componentes eletrônicos de soldagem
Componentes eletrônicos de soldagem
Componentes eletrônicos de soldagem
Componentes eletrônicos de soldagem
Componentes eletrônicos de soldagem
Componentes eletrônicos de soldagem

Solde todos os componentes eletrônicos na pré-placa (exceto Attiny13, que será posteriormente colocado dentro de um soquete). Use fios de cobre (os de 0,5 mm de diâmetro do cabo UTP devem ser perfeitos) para fazer as conexões elétricas entre os componentes. Se tiver problemas para empurrar fios grandes que saem do conector Molex (AMP MATE-N-LOK), você pode fazer orifícios maiores para eles. Se você não quiser usar uma broca, você sempre pode girar um parafuso algumas vezes dentro de pequenos orifícios pré-bordo. Certifique-se de que os fios não causam nenhum curto-circuito.

Se você preferir fazer sua própria placa de circuito impresso, também forneço arquivos.svg (as dimensões da placa são 53,34x63,50 mm) e.pdf (tamanho de página A4, dentro do arquivo.zip). Uma placa revestida de cobre unilateral deve ser suficiente, pois há apenas uma conexão na parte frontal (pode ser feita com um fio), portanto, os arquivos para a parte frontal são fornecidos principais para que esta conexão possa ser identificada.

Eu recomendo fortemente que você cubra a parte traseira do PCB com algum material isolante que irá prevenir qualquer curto-circuito acidental. Usei algumas camadas de papel normal que são presas às bordas do PCB por algumas tiras de fita isolante.

Etapa 4: Programação do microcontrolador ATtiny

Microcontrolador ATtiny de programação
Microcontrolador ATtiny de programação
Microcontrolador ATtiny de programação
Microcontrolador ATtiny de programação

O programa em execução no MCU codificou vários limites de velocidades RPM dos ventiladores de entrada. Esses limites estão localizados no início do arquivo fan_controller.c. A linha que contém o primeiro limite, que é responsável por aumentar ligeiramente o nível de saída do Canal A em resposta à ventoinha input_0 excedendo 450 RPM, tem a seguinte aparência:

# define A0_SPEED_0 3 // 450 RPM

Se você deseja alterar o valor de RPM limite, você precisa substituir o número 3 por outro. Incrementar este número em 1 mudará o limite em 150 RPM.

Outra coisa que você pode querer mudar é a diminuição do atraso do nível de saída. Este atraso evita mudanças rápidas no nível de saída quando as RPM do ventilador de entrada estão muito próximas do limite. Existem 3 linhas que controlam isso (como o Canal A usa 2 entradas e o Canal B usa 1) e a primeira delas tem a seguinte aparência:

if (channel_A0_lower_rpm_cycles> 2) {

Aumentar o número 2 aumentará esse atraso. O atraso é contado em ciclos de 100 ms.

Para compilar o código-fonte e depois programar o chip, você precisará de algum software. Em uma distribuição Linux baseada em Debian, ele pode ser instalado executando o seguinte comando:

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

Se estiver usando o Windows, você pode tentar instalar o conjunto WinAVR, que também contém o software necessário.

Para compilar o código-fonte, você precisa executar o seguinte:

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

Para criar o arquivo.hex, você precisa copiar esta linha no terminal:

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

Este comando permite verificar quanta memória o programa usará (texto é Flash, dados são variáveis que serão armazenadas em Flash e depois copiadas para a RAM e bss são variáveis inicializadas com um valor de 0 na RAM):

avr-size fan_controller.out

Quando seu arquivo.hex estiver pronto, você precisará inserir ATtiny13 na placa de ensaio e conectá-lo ao programador com cabos de jumper. É melhor desconectar a alimentação do programador ao conectá-lo ao MCU. Mantenha os bits do fusível padrão (H: FF, L: 6A). Se o seu programador for USBasp, este comando irá programar a memória flash do MCU:

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

-B 8 altera a velocidade de transmissão entre o programador e o MCU (bitclock). Pode ser necessário alterá-lo para um valor mais alto se tiver problemas ao se conectar ao microcontrolador.

Quando o MCU estiver pronto, coloque-o dentro do soquete DIP 8. Para remover o MCU da placa de ensaio, geralmente uso uma chave de fenda de ponta chata.

Etapa 5: conectando ventiladores ao dispositivo

Conectando Ventiladores ao Dispositivo
Conectando Ventiladores ao Dispositivo
Conectando Ventiladores ao Dispositivo
Conectando Ventiladores ao Dispositivo
Conectando Ventiladores ao Dispositivo
Conectando Ventiladores ao Dispositivo

Como um ventilador de entrada 0 (aquele conectado ao PB0) eu selecionei um dos ventiladores do gabinete plugado no MOBO, cuja velocidade variava com a temperatura da CPU. Eu removi o isolamento da parte do fio do tacômetro do ventilador e soldei uma extremidade do cabo de ligação nele. A outra extremidade (com conector fêmea de 2,54 mm conectado a ela) será conectada ao controlador do ventilador. Se o cabo do jumper for muito curto, estenda-o soldando outro cabo entre os mencionados anteriormente. Em seguida, cubra todos os condutores expostos com fita isolante.

A entrada 1 lê a velocidade das ventoinhas da GPU (no meu caso, existem na verdade 3 delas, mas há apenas um conector de ventoinha na placa de vídeo). Eu soldava o cabo de jumper de entrada 1 diretamente a um dos fios do conector de ventoinha do mini GPU de 4 pinos localizado no PCB. Como esse cabo estava localizado entre o PCB e a placa traseira, isolei a placa traseira com um pedaço de papel primeiro (especialmente porque o material da placa traseira era bastante soldável) e, em seguida, prendi firmemente o conector fêmea do cabo ao outro lado da placa traseira com o uso de fita de folha de alumínio. Então, o (s) ventilador (es) da GPU podem ser conectados ao pino PB1 com o uso de outro cabo de jumper (estendido). Se você não quiser soldar nada na placa de vídeo, você pode conectar o cabo jumper aos fios da ventoinha ou fazer um adaptador que será colocado entre a (s) ventoinha (s) e o conector na placa de circuito impresso, a decisão é sua.

Ventilador transmite sua velocidade atual através do fio do tacômetro por meio de conectar este fio ao solo via dreno / coletor aberto duas vezes por rotação (o rotor do ventilador geralmente tem 4 pólos [NSNS] que são detectados pelo sensor Hall, a saída do ventilador é baixa quando no tipo de pólo é detectado). Por outro lado, este fio é normalmente puxado para o nível de tensão de 3,3V. Se você não tiver certeza se obteve o fio correto, pode usar o osciloscópio ou construir um dos circuitos de detecção desenhados na última imagem desta etapa. O primeiro deles permite que você verifique a tensão máxima que aparece no local medido, o segundo para verificar se os pulsos de baixa frequência aparecem lá.

3.3 V deve ser lido pelos pinos de entrada da ATtiny como estado HIGH, mas se você tiver problemas com isso, você pode tentar reduzir a tensão que alimenta o MCU (aumentará a resistência dos MOSFETs também!). Não tive problemas, no entanto, decidi que deveria incluir este pensamento aqui.

Quando os ventiladores de entrada estiverem prontos, você pode colocar o controlador do ventilador dentro do gabinete do PC, em um local de sua escolha. Montei-o ao lado de duas das minhas baias de disco de 5,25”vazias, empurrando-o entre as partes de metal da baia, colocando um pouco de papel atrás dele e travando-o no lugar com o uso de um zíper enfiado em um dos grandes orifícios na pré-placa e em alguns outros furos na baia de 5,25”. Certifique-se de que nenhuma parte de metal do gabinete do PC possa tocar em qualquer um dos condutores expostos do controlador do ventilador.

Agora você pode conectar ventiladores de saída de 3 pinos ao controlador. Os ventiladores de saída conectados ao Canal A serão ligados aos ventiladores da CPU e GPU, e a tensão mínima que os alimentará será de cerca de 7-8V. Os ventiladores ligados aos conectores de saída B do canal serão acionados apenas pelo (s) ventilador (es) do cooler da GPU e sua tensão pode cair para 0 V (mas apenas por 66ms a cada segundo ciclo de 100ms no nível de saída de saída mais baixo). Os ventiladores não devem consumir mais de 1A por canal de saída.

Etapa 6: Outras alterações que fiz no meu PC

Outras alterações que fiz no meu PC
Outras alterações que fiz no meu PC
Outras alterações que fiz no meu PC
Outras alterações que fiz no meu PC
Outras alterações que fiz no meu PC
Outras alterações que fiz no meu PC
Outras alterações que fiz no meu PC
Outras alterações que fiz no meu PC

O canal A aciona duas ventoinhas localizadas na parte superior do meu gabinete. Eles são do mesmo modelo e são alimentados pela mesma voltagem, o que os faz girar em velocidades muito semelhantes. Alguma batida audível (padrão de interferência entre dois sons de frequências ligeiramente diferentes) apareceu como resultado disso. Para remediar isso instalei 2 diodos (um normal e um Schottky) em série com um dos ventiladores. Isso reduziu a voltagem e a velocidade do ventilador, fazendo com que a batida fosse embora.

Outra mudança, que está relacionada a uma dessas ventoinhas que fiz, é a instalação de uma ventoinha superior de fole de papel de parede localizada mais à frente. Seu objetivo é evitar que esta ventoinha sugue o ar que ainda não passou por nenhum dos dissipadores de calor. Também tentei fazer outras paredes de papel que evitavam que o ar de exaustão da GPU fosse sugado para o cooler da CPU. Na verdade, eles reduziram a temperatura da CPU, mas ao custo do GPU esquentar mais, então no final eu os removi.

Outra modificação incomum que fiz foi a remoção do filtro de poeira na exaustão dessas duas ventoinhas superiores (na maioria das vezes o ar é empurrado para fora do gabinete de qualquer maneira, e quando meu PC está desligado, a gaveta localizada um pouco acima do gabinete do PC o protege do pó). Eu também instalei uma ventoinha de 92 mm na frente de duas baias vazias de 5,25”(o controlador da ventoinha está localizado logo atrás). Esta ventoinha não é presa por nenhum parafuso, apenas se encaixa perfeitamente entre a ventoinha de 120 mm abaixo dela e a unidade óptica acima (as superfícies de ambas são cobertas com fita isolante para fornecer um pouco de amortecimento de vibração).

Recomendado: