nemrég építettem egy új otthoni szervert, ez egy többcélú doboz, amely az infrastruktúrám nagy részét fogja tartani, és egy fájlkiszolgáló is, sok merevlemezzel (és a jövőben még több hely) mindezek a meghajtók azt jelentették, hogy ez egy nagyon nagy gép lett, így volt hely az összes elhelyezésére. Én végül kapok egy CaseLabs Magnum THW10 esetében, amely helyet egy csomó dolog benne. Miközben a gép nagyszerűen működik, és mindent megtesz, amire szükségem van, van egy kis probléma vele. Az első ventilátorok nem forognak elég gyorsan.
a merevlemezek az első szívóventilátorok mögé vannak felszerelve, és biztosítani akarom, hogy hűvösek maradjanak. Az alaplap PWM ventilátor fejlécének összes kimenete, egy ASUS Z10PE-D16, a CPU hőmérsékletéhez van kötve. De a CPU-k nem igazán melegednek fel a szerveren, így a case rajongók ritkán (ha valaha is) meghaladják a minimális sebességet. A probléma szokásos megoldása a fancontrol utilitity használata, amely az lm_sensors része. Az lm_sensors azonban nem képes észlelni az alaplap egyik ventilátorvezérlőjét sem. Azt hiszem, ez azért van, mert a ventilátor vezérlését az alaplapon lévő BMC végzi, az lm_sensors pedig nem támogatja a BMC-t. Nem találtam lehetőséget a ventilátor vezérlésére a BMC webes felületén, így nem vagyok biztos benne. Akárhogy is úgy döntöttem, hogy sokkal könnyebb lenne csak egy ventilátorvezérlőt építeni, hogy manuálisan beállíthassa a ventilátor sebességét a bemeneti ventilátorok számára.
ventilátorvezérlő építése
a szerver 8 elülső 120 mm-es ventilátorral, 1 hátsó 120 mm-es ventilátorral és 6 Felső kipufogó 140 mm-es ventilátorral rendelkezik. Mivel azonban az alaplapnak csak néhány rajongói fejléc van, 2 Silverstone CPF04 meghajtású osztóm van. Az első 8 ventilátor az egyik elosztóhoz, a 6 Felső kipufogóventilátor pedig a másikhoz van csatlakoztatva. Ehhez a projekthez csak egy vezérlőt akartam ragasztani az alaplap közé 4 tűs ventilátor fejléc, amely lehetővé teszi számomra a ventilátoroknak küldött PWM vezérlőjel beállítását. Ez csak az alaplap energiáját veszi igénybe, és saját független PWM kimenetet generál. Mivel az osztók egymástól függetlenül működnek, nem kell aggódnom, hogy az alaplapról a ventilátorokra irányítsam az áramot.
vannak olyan kereskedelmi megoldások, mint például a Noctua NA FC1, amelyek nagyon közel állnak ahhoz, amit kerestem. A használati esetem Noctua vezérlőjével az volt a probléma, hogy nem engedte, hogy teljes kézi üzemmódot állítsak be, ha az alaplap fejlécét csatlakoztatták. Létrehozhatok egy egyedi kábelt, amelyhez nem volt csatlakoztatva a PWM tű, de akkor fizetnék egy csomó olyan funkcióért, amelyeket valójában nem akartam.
a vezérlő tervezése
némi keresést végeztem a google-on, hogy megnézzem, mit csinálnak a legtöbb ember, mert a ventilátor vezérlő építése aligha egyedi dolog. A legtöbb példa, amit találtam, egy áramkört épített egy 555 időzítővel astable módban egy potenciométerrel a kimeneti hullámforma működési ciklusának beállításához. Ezért úgy döntöttem, hogy ugyanezt teszem. Miután elolvastam az Intel specifikációját 4 vezetékes PWM ventilátorok kitaláltam az oszcillátor tervezési korlátait. Az áramkörnek ~25 kHz kimeneti frekvenciával kellett rendelkeznie, és 5 Volton kellett működnie. Ezt figyelembe véve ezen az áramkörön telepedtem le:
ez többnyire kölcsönzött áramkörök találtam keresztül keres az interneten hasonló projektek. De be kellett állítanom néhány komponens értéket, hogy megfeleljen a ventilátor vezérlésének.
innen terveztem egy PCB-t ehhez az áramkörhöz a KiCad segítségével. Kifejezetten úgy terveztem a NYÁK-t, hogy könnyen összeszerelhető legyen, az összes lyuk alkatrész felhasználásával. Bár tudtam volna könnyen tette sokkal kisebb a felületre szerelhető alkatrészek Azt akartam, hogy ez egy jó projekt az emberek csak most kezdik forrasztás. Ez nem egy nagyon összetett projekt, és úgy éreztem, hogy lehetnek olyan emberek, akiknek hasonló szükségük van rá. De még ezzel a korlátozással is a tábla még mindig meglehetősen kicsi, mindössze 35 mm x 44 mm. (leginkább azért, mert ez egy egyszerű áramkör.
ennek minden terve nyílt forráskódú, és megtalálható a github-on:
https://github.com/mtreinish/pwmcontroller
összerakva a vezérlő
befejezése után a funkcionális tervezés küldtem ki elecrow, hogy a tábla gyártott. Néhány héttel később megkaptam a táblákat. (Azt cheaped ki a szállítás, amely lehetővé tette, hogy hosszabb ideig, a táblák gyártottak < 1 hét)
aztán forrasztottam az alkatrészeket a táblára
aztán telepítettem az új vezérlőt a szerveremre, és természetesen nem működött. Ezért elvittem a PCB-t a padomra, és teszteltem egy oszcilloszkóppal, egy pad tápegységével és egy tartalék ventilátorral. Kiderült, hogy két kérdés volt. Először is, az 555 időzítő 3.8-4.2 V-on ment ki a specifikációban előírt 5V helyett. A második kérdés az volt, hogy a kimenet sem volt négyzethullám:
második kísérlet
az első kísérlet során talált problémák kijavításához kissé módosítottam az áramkörömet, és hozzáadtam egy schmitt triggert a kimenethez. Ennek három előnye lenne: megtisztítaná a négyzethullámot, sokkal gyorsabbá tenné az emelkedő és csökkenő éleket, és biztosítaná a Stabil 5V kimenetet. Valójában nagyon vicces,úgy döntöttem / emlékeztem arra, hogy használom a schmitt triggert, mert hamis alkalmazásjegyzetet kellett írnom egy főiskolai osztály számára a schmitt trigger használatáról a switch de-pattogáshoz.
az áramkör vázlatának módosítása meglehetősen egyszerű volt. Csak adja hozzá a schmitt triggert az 555 kimenetéhez, majd vezesse azt a ventilátor fejlécéhez:
az egyetlen bonyodalom, hogy ez jött a tábla elrendezése. Nem találtam egyetlen Schmitt ravaszt sem egy átmenő Lyukas csomagban. Az egyetlen átmenő lyuk schmitt kiváltja, hogy találtam (nyújtott nem csináltam kimerítő keresés) volt egy 4 vagy 6 módon egy DIP-14 csomag. Ami messze a legnagyobb csomag lenne a táblán. Azt akartam, hogy a PCB egyszerű, kicsi és könnyen kézzel forrasztható legyen. Ez eredetileg az egész furatot jelentette, de a DIP 14 és a tábla méretének növelése vagy egyetlen felületre szerelhető alkatrész közötti választás mellett az SMT komponenseket választottam. Találtam egyet a TI-től egy SOT-23-5 csomagban, amelyet őszintén szólva nem nehéz forrasztani, csak egy kis türelmet igényel. (a nagyítás segít)
miután befejeztem a felülvizsgált tábla elrendezését (sokat zsugorítottam, és ugyanakkor megtisztítottam a dolgokat) elküldtem az OSH parkba, hogy gyártsák:
aztán mindent forrasztottam:
egy hibát követtem el az új táblán; elfelejtettem csatlakoztatni a földet az alaplap csatlakozójáról és a DC/DC átalakító 5V-os oldaláról. Semmi, amit a DC/DC átalakító 1.és 3. csapjai között egy kis bodge vezeték nem tudott megjavítani. (a pcb design a git repo frissült ezzel a korrekció már), hogy az új schmitt trigger dolgok tökéletesen működött:
most pedig a szerveremre helyezve nagyon könnyen szabályozhatom a ventilátor sebességét.
következtetés
ez a projekt ráébresztett, hogy sok a véletlen vezérlők és tartozékok modern számítógépes alaplapok, hogy magától értetődőnek vesszük, és teljesen zárt minták. Az ASUS-tól nincs dokumentáció arról, hogy a szerver alaplapján hogyan vannak bekötve a dolgok, vagy az általuk használt protokollok (legalábbis nem tudtam megtalálni). Elkezdtem gondolkodni a többi számítógépemen, beleértve az asztalomat is, és hogyan irányítom a dolgokat, mint például a ventilátorokat és a vízszivattyút. Ugyanaz a történet ott; Az alaplapra támaszkodom (egy ASUS Rampage V Edition 10), amelyet hardverben és szoftverben sütnek. Ellenőriztem, és az lm_sensors sem tud beszélni az asztalon lévő ventilátorvezérlővel. De a szerveremmel ellentétben az asztali UEFI biztosítja a szükséges vezérlési szintet a hőmérséklet bemenet beállításához és az egyéni ventilátor görbék beállításához.
bár szeretném látni, hogy ezek a tervek megnyílnak, hogy megkönnyítsék a tőkeáttételt, rájöttem, hogy ez nem valószínű, hogy hamarosan megváltozik. De közben továbbra is csak nyitott alternatívákat építhetünk a szükséges darabokra. Jelenleg egy másik rajongói vezérlő projekten dolgozom az asztalomon, hogy megpróbáljam kezelni ezt. Fogok építeni egy multi-ventilátor vezérlő hasonló valami, mint egy aquacomputer aquero. De teljesen nyitott módon épült, nyitott és meghatározott interfésszel. A folyamatban lévő erőfeszítéseket itt követheti: https://github.com/mtreinish/openpwm még mindig nagyon korai a hardvertervezés, és ez egy nagyon hosszú távú projekt lesz, amelyen a szabadidőmben dolgozom.