Съдържание:

Контролер за вентилатор, управляван от процесор и графичен процесор: 6 стъпки (със снимки)
Контролер за вентилатор, управляван от процесор и графичен процесор: 6 стъпки (със снимки)

Видео: Контролер за вентилатор, управляван от процесор и графичен процесор: 6 стъпки (със снимки)

Видео: Контролер за вентилатор, управляван от процесор и графичен процесор: 6 стъпки (със снимки)
Видео: Windows WMI Demystified: From Repositories to Namespaces 2024, Юли
Anonim
CPU & GPU управляван вентилаторен контролер
CPU & GPU управляван вентилаторен контролер

Наскоро обнових графичната си карта. Новият модел графичен процесор има по -висок TDP от моя процесор и стар графичен процесор, затова също исках да инсталирам допълнителни вентилатори на корпуса. За съжаление, моят MOBO има само 3 конектора за вентилатор с контрол на скоростта и те могат да бъдат свързани само с температурата на процесора или чипсета. Реших да поправя това, като проектирах свой собствен контролер за вентилатор за компютър, който чете оборотите на минута на вече инсталирани вентилатори (както тези, свързани към MOBO и управлявани от температурата на процесора, така и тези, които охлаждат графичния процесор) и има два изходни канала. Канал А използва скорост както на свързаните с температурата вентилатори на процесора, така и на графичния процесор, за да управлява 3-пинови изходни вентилатори с променлива скорост. Канал В усеща скоростта само на вентилаторите на графичния процесор, а изходната му схема използва допълнителен транзистор, който позволява да се постигнат по-ниски скорости на вентилаторите, задвижвани от него (работи добре с полу-пасивна графична карта).

Четенето на скоростта на други вентилатори според мен е по -лесно и по -евтино от инсталирането на допълнителни температурни сонди непосредствено до процесори, покрити с радиатори (основно изисква свързване на проводниците на тахометрите на вентилаторите директно към щифт на микроконтролер).

Тук са описани някои от методите за контрол на скоростта на вентилатора. Реших да използвам нискочестотна ШИМ, но с малко модификации на метода, описан в статията. Първо, всеки канал има 6 последователно свързани диода, които могат да се използват за намаляване на напрежението, което захранва вентилатора с 4-5V. В тази настройка нивата на ШИМ напрежение са ~ 8V - 12V и 0V - ~ 8V (не е налично в канал А) вместо 0V - 12V. Това значително намалява шума от вентилатора. Друг трик, който използвах, за да направя вентилатора по този начин по -безшумен, е описан тук. Този трик изисква инсталиране на RC верига между изхода на микроконтролера и порта на MOSFET, който използвах за превключване на нивата на напрежение на вентилатора. Това намалява скоростта на нарастване на сигнал, който контролира MOSFET, като от своя страна прави ъгловото рязко движение на вентилатора по време на промяната на нивото на напрежение по -малко забележимо, намалявайки вибрациите и скоковете на напрежението.

Консумативи

Части и материали:

  • ATtiny13 или ATtiny13A в 8-PDIP случай
  • 8 -пинов DIP гнездо
  • 3x IRF530 транзистор
  • 12x 1N4007 диод (всеки друг 1A диод с спад на напрежението около 0.7V трябва да работи)
  • 220uF/25V радиален електролитен кондензатор
  • 10uF/16V радиален електролитен кондензатор
  • 5x 100nF керамичен дисков кондензатор
  • 10k 0.25W резистор
  • 4x 22k 0.25W резистор
  • 2x 1k 0.25W резистор
  • 6x6 мм тактилен бутон за превключване
  • 2x 2 пинов 2,54 мм прав мъжки щифт
  • 4x 3-пинов мъжки конектор за вентилатор (Molex 2510), алтернативно, можете да използвате обикновени щифтове, ако искате (аз го направих), но тогава трябва да бъдете особено внимателни, когато свързвате вентилатори, а женските конектори на тези вентилатори ще бъдат прикрепени по -малко сигурно
  • 4-пинов конектор Molex, женски корпус/мъжки щифтове (AMP MATE-N-LOK 1-480424-0 захранващ конектор), използвах такъв, който беше част от Molex мъжки към 2x SATA женски адаптер в комплект с някакъв стар MOBO
  • 2x джъмперни кабели с 2,54 мм женски конектори (или корпуси на конектори + щифтове + проводници), те ще бъдат запоени към проводниците на тахометъра на входните вентилатори (или директно към техните съединители на печатни платки)
  • сглобяем панел (50 mm x 70 mm, мин. 18 x 24 отвора), алтернативно, можете сами да гравирате медна облицована дъска и да пробиете отвори
  • няколко парчета тел
  • изолационна лента
  • лента от алуминиево фолио (ако ще прикрепяте конектора към задната платка на графичния процесор, вижте стъпка 5)
  • хартия

Инструменти:

  • диагонална фреза
  • клещи
  • отвертка с плоско острие
  • помощен нож
  • мултиметър
  • станция за запояване
  • спойка
  • AVR програмист (самостоятелен програмист като USBasp или можете да използвате ArduinoISP
  • макети и джъмперни кабели, които ще се използват за програмиране на микроконтролер извън печатни платки (или всеки друг инструмент, който може да постигне тази цел)

Стъпка 1: Отказ от отговорност

Конструкцията на това устройство изисква използване на умерено опасни инструменти и може да причини вреди или материални щети. Някои от необходимите стъпки могат да анулират гаранцията за вашия хардуер или дори да го повредят при неправилно провеждане. Вие създавате и използвате описаното устройство на свой собствен риск

Стъпка 2: Как работи контролът на вентилатора

Как работи управлението на вентилатора
Как работи управлението на вентилатора

Канал А използва два входа. Всеки от тези входове на канал А има свързано ниво, позволява да се извикат тези нива A0 и A1. По подразбиране и двете нива са 0. И двата входа имат свързани прагови стойности на RPM (3 прага на вход). Когато се достигне първият праг, A0 или A1 се увеличава до 1, когато вторият се увеличава до 2, а третият праг задава едно от входните нива на 3. По -късно A0 и A1 се комбинират (просто се събират и се предотвратява постигането на по -висока стойност от 3), което прави основния изход номер на ниво канал на А в диапазон 0-3. Този номер се използва за контрол на скоростта на изходните вентилатори, 0 означава, че те се захранват от 7-8V (работен цикъл от 0%). По -високите нива на мощност означават, че вентилаторът се захранва от пълни 12V за 33%, 66% или 100% от 100ms или 33ms цикъл (зависи от избраната честота).

Канал B има само един вход (B1, физически той се споделя с канал A [PB1 щифт]). Има шест възможни нива B1 (1-6), нивото по подразбиране е 1. Съществуват пет прагови стойности, които могат да увеличат B1. B1 се използва като основен изход Ниво на канал B. Когато е 1, 7-8V захранва изходните вентилатори за 33% от времето на цикъла в един цикъл, в другия за 66%, през останалото време захранването е изключено. Ниво 2 означава, че 66% от всеки цикъл е 7-8V, почивка 0V. Ниво 3 означава, че 7-8V се прилага постоянно. Нива 4-6 означават, че вентилаторът се захранва от пълни 12V за 33%, 66% или 100% от цикъла, а през останалото време напрежението е 7-8V.

Честотата на този PWM контрол по подразбиране е 10Hz. Може да се увеличи до 30Hz чрез затваряне на J7 джъмперните щифтове.

Когато се достигне по -висок праг, нивата на A0, A1 и B1 се увеличават мигновено. Когато оборотите на минута паднат, нивото се задържа за 200 мс и може да намалее само с 1 на 200 мс. Той трябва да предотврати бързите промени на тези нива, когато оборотите на входящия вентилатор са много близо до прага.

Стъпка 3: Запояване на електронни компоненти

Запояване на електронни компоненти
Запояване на електронни компоненти
Запояване на електронни компоненти
Запояване на електронни компоненти
Запояване на електронни компоненти
Запояване на електронни компоненти

Запояйте всички електронни компоненти към сглобяемата дъска (с изключение на Attiny13, по -късно ще бъде поставена в гнездо). Използвайте медни проводници (диаметър 0,5 мм от UTP кабела трябва да са перфектни), за да направите електрически връзки между компонентите. Ако имате проблеми с изтласкването на големи проводници, излизащи от конектора Molex (AMP MATE-N-LOK), можете да пробиете по-големи отвори за тях. Ако не искате да използвате бормашина, винаги можете да завъртите няколко пъти винт в малки отвори за сглобяеми плоскости. Уверете се, че проводниците не причиняват късо съединение.

Ако предпочитате да направите своя собствена печатна платка, аз също предоставям.svg (размерите на дъската са 53.34x63.50mm) и.pdf (размер на страницата A4, в архива.zip). Едностранната медна облицована дъска би трябвало да е достатъчна, тъй като има само една връзка от предната страна (тя може да бъде направена с проводник), така че файловете за предната страна се предоставят основни, за да може тази връзка да бъде идентифицирана.

Силно препоръчвам да покриете задната част на печатната платка с някакъв изолационен материал, който ще предотврати случайни къси съединения. Използвах няколко слоя обикновена хартия, които се държат към ръбовете на печатната платка с няколко ленти изолационна лента.

Стъпка 4: Програмиране на микроконтролер ATtiny

Програмиране на микроконтролер ATtiny
Програмиране на микроконтролер ATtiny
Програмиране на микроконтролер ATtiny
Програмиране на микроконтролер ATtiny

Програмата, която работи на MCU, има твърдо кодирани няколко прага на оборотите на входящите вентилатори. Тези прагове се намират в началото на файла fan_controller.c. Линията, която съдържа първия праг, който е отговорен за леко увеличаване на изходното ниво на канал А в отговор на входящия вентилатор над 450 об / мин, изглежда така:

#define A0_SPEED_0 3 // 450 оборота в минута

Ако искате да промените праговата стойност на RPM, тогава трябва да замените номер 3 с нещо друго. Увеличаването на това число с 1 ще промени прага със 150 оборота в минута.

Друго нещо, което може да искате да промените, е намаляването на забавянето на нивото на изхода. Това забавяне предотвратява бързите промени на нивото на изхода, когато оборотите на входящия вентилатор са много близо до прага. Има 3 реда, които контролират това (като канал А използва 2 входа, а канал В използва 1) и първият от тях изглежда така:

if (channel_A0_lower_rpm_cycles> 2) {

Увеличаването на номер 2 ще увеличи това забавяне. Забавянето се брои в цикли от 100 ms.

За да компилирате изходния код и след това да програмирате чип, ще ви е необходим софтуер. На дистрибуция на Linux, базирана на Debian, тя може да бъде инсталирана чрез изпълнение на следната команда:

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

Ако използвате Windows, можете да опитате да инсталирате пакета WinAVR, който също съдържа необходимия софтуер.

За да компилирате изходния код, трябва да изпълните това:

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

За да създадете.hex файл, трябва да копирате този ред в терминал:

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

Тази команда позволява да се провери колко памет ще използва програмата (текстът е Flash, данните са променливи, които ще се съхраняват във Flash и след това се копират в RAM, а bss са променливи, инициализирани със стойност 0 в RAM):

avr-размер fan_controller.out

Когато вашият.hex файл е готов, трябва да поставите ATtiny13 в макет и да го свържете към програмиста с джъмперни кабели. Най -добре е да изключите захранването от програмиста, когато го свързвате към MCU. Запазете предпазителите по подразбиране (H: FF, L: 6A). Ако вашият програмист е USBasp, тази команда ще програмира флаш паметта на MCU:

avrdude -c usbasp -p t13 -B 8 -U флаш: w: fan_controller.hex

-B 8 променя скоростта на предаване между програмист и MCU (битов часовник). Може да се наложи да го промените на по -висока стойност, ако имате проблеми с свързването към микроконтролера.

Когато MCU сме готови, поставете го в гнездото DIP 8. За да извадя MCU от макета, обикновено го издърпвам с отвертка с плоско острие.

Стъпка 5: Свързване на вентилаторите към устройството

Свързване на вентилаторите към устройството
Свързване на вентилаторите към устройството
Свързване на вентилаторите към устройството
Свързване на вентилаторите към устройството
Свързване на вентилаторите към устройството
Свързване на вентилаторите към устройството

Като входящ вентилатор 0 (този, свързан към PB0) избрах един от вентилаторите на корпуса, включен в MOBO, чиято скорост варира в зависимост от температурата на процесора. Премахнах изолацията от частта на проводника на тахометъра на вентилатора и запоех единия край на кабела на джъмпера към него. Другият край (с прикрепен към него 2,54 мм женски конектор) ще бъде свързан към контролера на вентилатора. Ако джъмперният кабел е твърде къс, удължете го, като запоите друг кабел между споменатите по -горе. След това покрийте всички открити проводници с изолационна лента.

Вход 1 чете скоростта на вентилаторите на GPU (в моя случай всъщност има 3 от тях, но има само един конектор за вентилатор на печатната платка на графичната карта). Запоявах джъмперния кабел Input 1 директно към един от проводниците на 4-пинов конектор за мини вентилатор на GPU, разположен на печатната платка. Тъй като този проводник беше разположен между печатна платка и задната плоча, първо изолирах задната плоча с лист хартия (особено защото материалът на задната плоча беше доста спояем) и след това здраво прикрепен женски конектор на кабела към другата страна на задната плоча с помощта на лента от алуминиево фолио. Тогава вентилаторът (ите) на графичния процесор може да бъде свързан към PB1 щифт с помощта на друг (разширен) джъмпер кабел. Ако не искате да запоявате нищо на печатната платка на графичната си карта, можете да свържете джъмперния кабел към проводниците на вентилатора или да направите адаптер, който ще бъде поставен между вентилатора (ите) и конектора на печатната платка, решението е ваше.

Вентилаторът предава текущата си скорост чрез проводник на тахометъра, като свързва този проводник към земята чрез отворен дренаж/колектор два пъти на въртене (роторът на вентилатора обикновено има 4-полюсни [NSNS], които се откриват от сензора на Хол, изходът на вентилатора намалява, когато на типа полюс е открит). От другата страна, този проводник обикновено се изтегля до ниво на напрежение 3.3V. Ако не сте сигурни дали имате правилния проводник, можете да използвате осцилоскоп или да изградите една от веригите за откриване, които са нарисувани на последната снимка в тази стъпка. Първият от тях ви позволява да проверите максималното напрежение, което се появява на измереното място, второто, за да проверите дали там се появяват нискочестотни импулси.

3.3V трябва да се чете от входните щифтове на ATtiny като ВИСОКО състояние, но ако имате проблеми с това, можете да опитате да намалите напрежението, което захранва MCU (това също ще увеличи съпротивлението на MOSFET!). Нямах никакви проблеми, въпреки това реших, че трябва да включа тази мисъл тук.

Когато входните вентилатори са готови, можете да поставите контролера на вентилатора в кутията на вашия компютър, на място по ваш избор. Монтирах го отстрани на две от моите празни 5,25 -инчови гнезда за дискове, като го натиснах между металните части на гнездото, поставих малко хартия зад него и го заключих на място с помощта на цип, завързан през един от големите отвори в сглобяем панел и някои други дупки в отсека 5.25”. Уверете се, че никакви метални части на корпуса на компютъра не могат да докоснат нито един от откритите проводници на контролера на вентилатора.

Сега можете да свържете 3-пинови изходни вентилатори към контролера. Изходните вентилатори, свързани към канал А, ще бъдат свързани както към процесори, така и към графични процесори, а минималното напрежение, което ще ги захранва, ще бъде около 7-8V. Вентилаторите, включени в изходните конектори на канала B, ще се задвижват само от вентилатора (ите) на охладителя на графичния процесор и тяхното напрежение може да падне до 0V (но само за 66 ms на всеки втори цикъл от 100 ms при най -ниското ниво на изходното задвижване). Вентилаторите не трябва да извличат повече от 1A на изходен канал.

Стъпка 6: Други промени, които направих на моя компютър

Други промени, които направих на моя компютър
Други промени, които направих на моя компютър
Други промени, които направих на моя компютър
Други промени, които направих на моя компютър
Други промени, които направих на моя компютър
Други промени, които направих на моя компютър
Други промени, които направих на моя компютър
Други промени, които направих на моя компютър

Канал А задвижва два вентилатора, разположени в горната част на кутията ми. Те са от същия модел и се захранват от едно и също напрежение, което ги кара да се въртят с много сходни скорости. В резултат на това се появи някакъв звуков ритъм (интерференционен модел между два звука с малко различни честоти). За да поправя това, инсталирах 2 диода (един обикновен и един Шотки) последователно с един от вентилаторите. Това намали напрежението и скоростта на вентилатора, което накара ритъма да изчезне.

Друга промяна, която е свързана с една от тези на вентилаторите, които направих, е инсталирането на хартиена стена под горния вентилатор, разположена по -отпред. Неговата цел е да попречи на този вентилатор да смуче въздух, който все още не е преминал през нито един от радиаторите. Опитах се да направя и други хартиени стени, които предотвратяват всмукването на отработения въздух на графичния процесор в охладителя на процесора. Те всъщност намалиха температурата на процесора, но с цената на загряването на графичния процесор повече, така че в крайна сметка ги премахнах.

Друга необичайна модификация, която направих, е премахването на филтър за прах от ауспуха на тези два горни вентилатора (през повечето време въздухът се изтласква от кутията така или иначе, когато моят компютър е изключен, чекмеджето, разположено малко над кутията на компютъра, го предпазва от прах). Инсталирах и 92 -милиметров вентилатор пред две празни 5,25 -инчови отделения (контролерът на вентилатора се намира точно зад него). Този вентилатор не се държи от никакви винтове, просто се вписва добре между 120 мм вентилатор под него и оптичното устройство отгоре (повърхностите на двете са покрити с изолационна лента, за да се осигури известно заглушаване на вибрациите).

Препоръчано: