nedávno jsem postavil nový domácí server, je to víceúčelový box, který pojme většinu mé infrastruktury a také je souborový server se spoustou pevných disků (a prostor pro další v budoucnu) všechny tyto jednotky znamenaly, že to skončilo jako velmi velký stroj, takže tam byl prostor dát je všechny. Nakonec jsem dostal CaseLabs Magnum THW10 pro případ,který má prostor pro tunu věcí v něm. Zatímco stroj pracuje skvěle a dělá vše, co potřebuji, je s ním jeden malý problém. Přední fanoušci se netočí dostatečně rychle.
pevné disky jsou namontovány za přední sací ventilátory a chci se ujistit, že jsou v pohodě. Veškerý výstup z hlaviček ventilátorů PWM na základní desce, ASUS Z10PE-D16, je vázán na teploty CPU. Procesory se však na serveru příliš nezahřívají, takže fanoušci případu zřídka (pokud vůbec) překračují svou minimální rychlost. Mým normálním řešením tohoto problému je použití utiltity fancontrol, která je součástí lm_sensors. Lm_sensors však není schopen detekovat žádný z řadičů ventilátoru na základní desce. Myslím, že je to proto, že ovládání ventilátoru provádí BMC na základní desce a lm_sensors nepodporuje BMC. Nebyl jsem schopen najít možnost ovládání ventilátoru ve webovém rozhraní BMC, takže si nejsem jistý. Ať tak či onak, rozhodl jsem se, že by bylo mnohem jednodušší postavit ovladač ventilátoru, aby bylo možné ručně nastavit rychlost ventilátoru pro vstupní ventilátory.
budování regulátoru ventilátoru
Server má nainstalováno 8 předních 120mm ventilátorů, 1 zadní 120mm ventilátor a 6 horních výfukových ventilátorů 140mm. Nicméně, protože základní deska má jen několik záhlaví ventilátoru mám 2 Silverstone CPF04 napájené rozbočovače. Přední 8 ventilátory jsou připojeny k jednomu rozdělovači a 6 Horní ventilátory k druhému. Pro tento projekt jsem chtěl jen držet řadič mezi základní deskou 4 pin fan záhlaví, které mi umožňují nastavit řídicí signál PWM odeslaný fanouškům. To by vyžadovalo pouze energii ze základní desky a generovalo vlastní nezávislý výstup PWM. Vzhledem k tomu, že rozbočovače jsou nezávisle napájeny, nemusel bych se starat o směrování energie ze základní desky k ventilátorům.
existují komerční řešení, jako je Noctua NA FC1, která jsou docela blízko tomu, co jsem hledal. Problém s řadičem Noctua pro můj případ použití spočíval v tom,že by mi nedovolil nastavit plný Manuální režim, pokud by byla připojena hlavička základní desky. Mohl bych vytvořit vlastní kabel, který neměl připojený PWM pin, ale pak bych platil za spoustu funkcí,které jsem vlastně nechtěl.
navrhování řadiče
udělal jsem nějaké vyhledávání na Googlu, abych zjistil, co většina lidí dělá, protože budování řadiče ventilátoru je stěží jedinečná věc. Většina příkladů, které jsem našel, postavila obvod s časovačem 555 v astabilním režimu s potenciometrem pro nastavení pracovního cyklu výstupního průběhu. Tak jsem se rozhodl udělat to samé. Po přečtení SPECIFIKACE Intel pro 4 wire PWM ventilátory jsem přišel na své konstrukční omezení pro oscilátor. Obvod potřeboval mít výstupní frekvenci ~25 kHz a pracovat při 5 voltech. Vzhledem k tomu jsem se usadil na tomto okruhu:
to bylo většinou vypůjčené z obvodů jsem našel přes vyhledávání na internetu pro podobné projekty. Ale musel jsem upravit některé hodnoty komponent tak, aby splňovaly specifikace ovládání ventilátoru.
odtud jsem navrhl DPS pro tento obvod pomocí Kicadu. Speciálně jsem navrhl desku plošných spojů tak, aby byla snadno sestavitelná, pomocí všech součástí průchozích otvorů. I když jsem mohl snadno dělat to mnohem menší pomocí komponenty pro povrchovou montáž chtěl jsem to být dobrý projekt pro lidi právě začíná pájení. Nejedná se o příliš složitý projekt a cítil jsem, že by tam mohli být lidé s podobnou potřebou. Ale i s tímto omezením je deska stále poměrně malá na pouhých 35 mm x 44 mm. (hlavně proto, že je to jednoduchý obvod.
všechny návrhy jsou open source a lze je nalézt na mém GitHubu na adrese:
https://github.com/mtreinish/pwmcontroller
po sestavení ovladače
po dokončení funkčního designu jsem jej poslal do elecrow, aby se deska vyrobila. O pár týdnů později jsem dostal desky dodány. (Zlevnil jsem na dopravu, která trvala déle, desky byly vyrobeny v < 1 týden)
pak jsem připájel komponenty na desku
pak jsem nainstaloval nový řadič do svého serveru a samozřejmě to nefungovalo. Vzal jsem tedy desku plošných spojů na lavičku a vyzkoušel ji osciloskopem, napájecím zdrojem a náhradním ventilátorem. Ukázalo se, že tam byly dva problémy. Za prvé, 555 časovač byl výstup na 3.8-4.2 V namísto 5V požadoval v spec. Druhým problémem bylo, že výstup nebyl ve skutečnosti ani čtvercová vlna:
druhý pokus
abych napravil problémy, které jsem našel z prvního pokusu, mírně jsem upravil obvod a přidal na výstup schmittovu spoušť. To by mělo tři výhody: vyčistilo by čtvercovou vlnu, zrychlilo by stoupající a klesající hrany a zajistilo by to stabilní výstup 5V. Je to vlastně docela vtipné, rozhodl jsem se / vzpomněl jsem si na použití schmittova spouště, protože jsem musel napsat falešnou poznámku o aplikaci pro třídu na vysoké škole o použití schmittova spouště pro odskočení spínače.
úprava schématu obvodu byla velmi jednoduchá. Stačí přidat spoušť schmitt na výstup 555 a poté ji zapojit do záhlaví ventilátoru:
jediná komplikace k tomu přišla na rozložení desky. Nebyl jsem schopen najít jediný Schmitt spoušť v průchozím otvoru balíčku. Jediným spouštěčem díry schmitt, který jsem našel (udělil jsem, že jsem neudělal vyčerpávající vyhledávání), byl způsob 4 nebo 6 v balíčku DIP-14. Což by byl zdaleka největší balíček na desce. Chtěl jsem, aby PCB byla jednoduchá, malá a snadno ručně pájená. To původně znamenalo celou díru, ale s volbou mezi ponorem 14 a zvětšením velikosti desky nebo jedné komponenty pro povrchovou montáž jsem se rozhodl jít se součástmi SMT. Byl jsem schopen najít jeden z TI v balíčku SOT-23-5, který upřímně není těžké pájet,trvá to jen trochu trpělivosti. (zvětšení pomáhá)
po dokončení přepracovaného rozvržení desky (hodně jsem ji zmenšil a vyčistil věci současně) poslal jsem ji do parku OSH, abych se vyrobil:
pak jsem všechno připájel:
jsem udělal jednu chybu na nové desce; zapomněl jsem připojit zem z konektoru základní desky a 5V strany DC / DC převodníku. Nic, co by malý bodge drát mezi kolíky 1 a 3 na DC / DC převodníku nemohl opravit. (návrh pcb v repo git byl s touto korekcí již aktualizován) s tím a nové schmittovy spouštěcí věci fungovaly perfektně:
a když ji vložím do svého serveru, mohu velmi snadno ovládat rychlost ventilátoru.
závěr
tento projekt mě přiměl uvědomit si, že mnoho náhodných ovladačů a příslušenství na moderních počítačových základních deskách, které považujeme za samozřejmost a jsou zcela uzavřené návrhy. Neexistuje žádná dokumentace od společnosti ASUS o tom, jak jsou věci na základní desce serveru zapojeny nebo protokoly, které používají(alespoň ne, že jsem byl schopen najít). Začal jsem přemýšlet o svých dalších počítačích včetně pracovní plochy a o tom, jak ovládám věci, jako jsou ventilátory a vodní čerpadlo. Je to stejný příběh; Spoléhám se na základní desku (ASUS Rampage v Edition 10) pečenou v hardwaru a softwaru. Zkontroloval jsem a lm_sensors není schopen mluvit ani s řadičem ventilátoru na ploše. Ale na rozdíl od mého serveru mi UEFI na ploše poskytuje potřebnou úroveň ovládání pro nastavení vstupu teploty a nastavení vlastních křivek ventilátoru.
i když bych si přál, aby se tyto návrhy otevřely, aby se usnadnilo využití, uvědomuji si, že se to brzy nezmění. Ale mezitím můžeme pokračovat v budování otevřených alternativ pro kousky, které potřebujeme. V současné době pracuji na jiném projektu řadiče ventilátorů pro můj desktop, abych se pokusil začít řešit toto. Chystám se postavit regulátor s více ventilátory podobný něčemu jako aquacomputer aquero. Ale, postavený ve všech otevřeným způsobem a s otevřeným a definovaným rozhraním. Můžete sledovat probíhající toto úsilí zde: https://github.com/mtreinish/openpwm je to stále velmi brzy v hardwarovém designu a bude to velmi dlouhodobý projekt, na kterém pracuji ve svém volném čase.