przez Flatland do Thoughtland

niedawno zbudowałem nowy serwer domowy, jest to wielofunkcyjne pudełko, które pomieści większość mojej infrastruktury, a także jest serwerem plików z wieloma dyskami twardymi (i miejscem na więcej w przyszłości) wszystkie te dyski oznaczały, że skończyło się to na bardzo dużej maszynie, więc było miejsce na umieszczenie ich wszystkich. Skończyło się na tym, że dostałem CaseLabs Magnum THW10 do sprawy, która ma miejsce na tonę rzeczy. Podczas gdy maszyna działa świetnie i robi wszystko, czego potrzebuję, jest z nią jeden mały problem. Przednie wentylatory nie wirują wystarczająco szybko.

serwer w moim salonie po pierwszym uruchomieniu. (2-litrowa butelka sody jest na skalę)

dyski twarde są zamontowane za przednimi wentylatorami dolotowymi i chcę się upewnić, że są chłodne. Wszystkie wyjścia z nagłówków wentylatorów PWM na płycie głównej, Asus Z10PE-D16, są powiązane z temperaturami procesora. Ale procesory tak naprawdę nie są zbyt gorące na serwerze, więc fani obudowy rzadko (jeśli w ogóle) przekraczają swoją minimalną prędkość. Moim normalnym rozwiązaniem tego problemu jest użycie funkcji fancontrol, która jest częścią lm_sensors. Jednak lm_sensors nie jest w stanie wykryć żadnego kontrolera wentylatora na płycie głównej. Myślę, że to dlatego, że kontrola wentylatora jest wykonywana przez BMC na płycie głównej, a lm_sensors nie obsługuje BMC. Nie udało mi się znaleźć opcji sterowania wentylatorem w interfejsie sieciowym BMC, więc nie jestem pewien. Tak czy inaczej zdecydowałem, że znacznie łatwiej będzie po prostu zbudować kontroler wentylatora, aby móc ręcznie ustawić prędkość wentylatora dla wentylatorów wejściowych.

Budowa kontrolera wentylatora

serwer ma zainstalowane 8 wentylatorów przednich 120 mm, 1 tylny 120 mm i 6 górnych wentylatorów wydechowych 140 mm. Ponieważ jednak płyta główna ma tylko kilka nagłówków wentylatorów, mam 2 splittery zasilane Silverstone CPF04. Przednie 8 wentylatorów jest podłączonych do jednego rozdzielacza, a 6 górnych wentylatorów wyciągowych do drugiego. W tym projekcie chciałem po prostu umieścić kontroler pomiędzy płytą główną 4-stykową nagłówkiem wentylatora, który pozwala mi dostosować sygnał sterujący PWM wysyłany do wentylatorów. Pobierałoby to tylko moc z płyty głównej i wygenerowało własne niezależne wyjście PWM. Ponieważ splittery są niezależnie zasilane, nie musiałbym się martwić o przekierowanie zasilania z płyty głównej do wentylatorów.

istnieją komercyjne rozwiązania, takie jak Noctua NA FC1, które są dość bliskie temu, czego szukałem. Problem z kontrolerem Noctua dla mojego przypadku użycia polegał na tym, że nie pozwolił mi ustawić pełnego trybu ręcznego, jeśli nagłówek płyty głównej był podłączony. Mógłbym stworzyć niestandardowy kabel, który nie miał podłączonego Pina PWM, ale wtedy płaciłbym za kilka funkcji, których tak naprawdę nie chciałem.

projektowanie kontrolera

poszperałem trochę w google, aby zobaczyć, co robi większość ludzi, ponieważ budowa kontrolera wentylatora nie jest niczym wyjątkowym. Większość przykładów, które znalazłem, zbudowała Obwód z timerem 555 W trybie astable z potencjometrem do regulacji cyklu pracy przebiegu wyjściowego. Więc postanowiłem zrobić to samo. Po przeczytaniu specyfikacji Intela dla 4 wire PWM fans rozgryzłem moje ograniczenia konstrukcyjne dla oscylatora. Obwód musiał mieć częstotliwość wyjściową ~25 kHz i pracować przy 5 woltach. Biorąc to pod uwagę, osiedliłem się na tym obwodzie:

został zapożyczony głównie z obwodów, które znalazłem, przeszukując internet w poszukiwaniu podobnych projektów. Ale musiałem dostosować niektóre wartości komponentów, aby spełnić specyfikację sterowania wentylatorem.

stamtąd zaprojektowałem płytkę dla tego obwodu za pomocą programu KiCad. Specjalnie zaprojektowałem płytkę drukowaną, aby była łatwa w montażu, używając wszystkich elementów otworu przelotowego. Chociaż mogłem z łatwością zmniejszyć go za pomocą elementów do montażu powierzchniowego, chciałem, aby był to dobry projekt dla osób, które dopiero zaczynają lutować. To nie jest bardzo złożony projekt i czułem, że mogą być ludzie, którzy mają podobną potrzebę. Ale nawet przy tym ograniczeniu płyta jest nadal dość mała, zaledwie 35 mm x 44 mm. (głównie dlatego, że jest to prosty obwód.

wszystkie projekty do tego są open source i można je znaleźć na moim GitHubie pod adresem:

https://github.com/mtreinish/pwmcontroller

składając Kontroler

po skończeniu projektu funkcjonalnego wysłałem go do elecrow w celu wyprodukowania płyty. Kilka tygodni później dostarczono mi tablice. (Tanio na wysyłkę, która sprawiła, że trwało to dłużej, deski zostały wyprodukowane w < 1 tydzień)

następnie przylutowałem komponenty na płytkę

następnie zainstalowałem nowy kontroler na moim serwerze i oczywiście nie działał. Wziąłem więc płytkę do ławki i przetestowałem ją z oscyloskopem,zasilaczem i zapasowym wentylatorem. Okazało się, że były dwa problemy. Po pierwsze, timer 555 był wyprowadzany na 3,8-4,2 V zamiast 5V wymaganego w specyfikacji. Drugą kwestią było to, że wyjście nie było tak naprawdę falą kwadratową:

druga próba

aby poprawić problemy, które znalazłem od pierwszej próby, zmodyfikowałem nieco swój obwód i dodałem spust Schmitta na wyjściu. Miałoby to trzy zalety: oczyściłoby falę kwadratową, sprawiłoby, że wznoszące się i opadające krawędzie byłyby znacznie szybsze i zapewniłoby stabilne wyjście 5V. To właściwie całkiem zabawne, zdecydowałem / pamiętałem, aby użyć spustu Schmitta, ponieważ musiałem napisać fałszywą notatkę o aplikacji na zajęcia w college ’ u na temat używania spustu Schmitta do przełączania de-bouncing.

modyfikacja schematu obwodu była dość prosta. Wystarczy dodać spust Schmitta do wyjścia 555, a następnie podłączyć go do głowicy wentylatora:

jedyną komplikacją był układ planszy. Nie udało mi się znaleźć ani jednego spustu Schmitta w otworze przelotowym. Jedynym przez otwór wyzwalaczy schmitt, który znalazłem (przyznaję, że nie zrobiłem wyczerpującego wyszukiwania) był 4 lub 6 sposób w pakiecie DIP-14. Co byłoby zdecydowanie największym pakietem na forum. Chciałem, aby płytka była prosta, mała i łatwa do ręcznego lutowania. Pierwotnie oznaczało to cały otwór przelotowy, ale przy wyborze między DIP 14 a zwiększeniem rozmiaru płyty lub pojedynczego elementu Do Montażu Powierzchniowego zdecydowałem się na komponenty SMT. Udało mi się znaleźć jeden z TI w pakiecie SOT-23-5, który szczerze mówiąc nie jest trudny do lutowania, wystarczy trochę cierpliwości. (powiększenie pomaga)

po skończeniu poprawionego układu planszy (dużo go skurczyłem i posprzątałem w tym samym czasie) wysłałem go do parku BHP, aby wyprodukował:

potem wszystko przylutowałem na:

obok wadliwej oryginalnej płyty

popełniłem jeden błąd na nowej płycie; zapomniałem podłączyć masę od złącza płyty głównej i od strony 5V przetwornika DC/DC. Nic, czego nie mógł naprawić mały przewód bodge między pinami 1 i 3 w przetwornicy DC/DC. (projekt pcb w repo git został już zaktualizowany o tę korektę) z tym i nowym spustem Schmitt wszystko działało idealnie:

i umieszczając go w moim serwerze teraz mogę bardzo łatwo kontrolować prędkość wentylatora.

wniosek

ten projekt uświadomił mi, że wiele losowych kontrolerów i akcesoriów na nowoczesnych płytach głównych komputerów, które bierzemy za pewnik i są całkowicie zamknięte projekty. Nie ma żadnej dokumentacji od ASUS o tym, jak rzeczy na mojej płycie głównej serwera są podłączone lub protokoły, z których korzystają (przynajmniej nie udało mi się znaleźć). Zacząłem myśleć o innych komputerach, w tym o moim pulpicie i o tym, jak kontroluję rzeczy, takie jak wentylatory i pompa wodna. To ta sama historia.; Polegam na płycie głównej (ASUS Rampage V Edition 10) upieczonej w sprzęcie i oprogramowaniu. Sprawdziłem i lm_sensors nie jest w stanie rozmawiać z kontrolerem wentylatora na pulpicie. Ale w przeciwieństwie do mojego serwera UEFI pulpitu zapewnia mi niezbędny poziom kontroli, aby dostosować wejście temperatury i ustawić niestandardowe krzywe wentylatora.

chociaż chciałbym, aby te projekty zostały otwarte, aby ułatwić wykorzystanie, zdaję sobie sprawę, że nie jest to bardzo prawdopodobne, aby zmienić w najbliższym czasie. Ale w międzyczasie możemy nadal budować otwarte alternatywy dla elementów, których potrzebujemy. Obecnie pracuję nad innym projektem kontrolera wentylatora na moim pulpicie, aby spróbować rozwiązać ten problem. Mam zamiar zbudować kontroler multi-fan podobny do czegoś takiego jak aquacomputer aquero. Ale zbudowany w otwarty sposób iz otwartym i zdefiniowanym interfejsem. Możesz śledzić postępy tego wysiłku tutaj: https://github.com/mtreinish/openpwm to wciąż bardzo wcześnie w projektowaniu sprzętu i będzie to bardzo długoterminowy projekt, nad którym pracuję w wolnym czasie.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.