Spisu treści:

DIY PWM Control dla fanów PC: 12 kroków
DIY PWM Control dla fanów PC: 12 kroków

Wideo: DIY PWM Control dla fanów PC: 12 kroków

Wideo: DIY PWM Control dla fanów PC: 12 kroków
Wideo: PWM Fan Splitter PWM Fan Hub - How to install more PC Fans 2024, Lipiec
Anonim
DIY Sterowanie PWM dla fanów PC
DIY Sterowanie PWM dla fanów PC

Ta instrukcja opisuje budowę w pełni funkcjonalnego kontrolera PWM wentylatora PC 12 V. Konstrukcja może kontrolować do 16 3-pinowych wentylatorów komputerowych. Konstrukcja wykorzystuje parę konfigurowalnych układów scalonych sygnałów mieszanych Dialog GreenPAK™ do sterowania cyklem pracy każdego wentylatora. Zawiera również dwa sposoby zmiany prędkości wentylatora:

a. z enkoderem kwadraturowym/obrotowym

b. z aplikacją Windows wbudowaną w C#, która komunikuje się z GreenPAK poprzez I2C.

Poniżej opisaliśmy kroki potrzebne do zrozumienia, w jaki sposób chip GreenPAK został zaprogramowany do tworzenia sterowania PWM dla wentylatorów PC. Jeśli jednak chcesz tylko uzyskać wynik programowania, pobierz oprogramowanie GreenPAK, aby wyświetlić już ukończony plik projektu GreenPAK. Podłącz zestaw GreenPAK Development Kit do komputera i naciśnij program, aby utworzyć niestandardowy układ scalony do sterowania PWM dla wentylatorów PC.

Krok 1: Schemat blokowy systemu

Schemat blokowy systemu
Schemat blokowy systemu

Krok 2: Konstrukcja dekodera obrotowego SLG46108

SLG46108 Konstrukcja dekodera obrotowego
SLG46108 Konstrukcja dekodera obrotowego
SLG46108 Konstrukcja dekodera obrotowego
SLG46108 Konstrukcja dekodera obrotowego
SLG46108 Konstrukcja dekodera obrotowego
SLG46108 Konstrukcja dekodera obrotowego

Enkoder obrotowy służy do ręcznego zwiększania lub zmniejszania cyklu pracy wentylatorów. To urządzenie wysyła impulsy na wyjściach kanału A i kanału B, które są oddalone od siebie o 90 °. Zobacz AN-1101: Odblokowany dekoder kwadraturowy, aby uzyskać więcej informacji na temat działania enkodera obrotowego.

Taktowany dekoder obrotowy można utworzyć za pomocą Dialog GreenPAK SLG46108 do przetwarzania sygnałów z kanałów A i B i wyprowadzania ich jako impulsy przeciwne do ruchu wskazówek zegara (CCW) i zgodne z ruchem wskazówek zegara (CW).

Gdy kanał A prowadzi do kanału B, projekt wysyła krótki impuls na CW. Gdy kanał B prowadzi do kanału A, wysyła krótki impuls na CCW

Trzy DFF synchronizują wejście kanału A z zegarem. Podobnie, opóźnienie rurociągu z OUT0 ustawionym na dwa DFF i OUT1 ustawionym na trzy DFF tworzą tę samą funkcjonalność dla kanału B.

Aby utworzyć wyjścia CW i CCW, użyj kilku LUT. Więcej informacji na temat tego standardowego projektu dekodera obrotowego można znaleźć na tej stronie internetowej.

Dekoder obrotowy GreenPAK odbierze impulsy wejściowe A i B i wyśle impulsy CW i CCW, jak pokazano na rysunku 4.

Obwody za bramkami XOR zapewniają, że nigdy nie będzie impulsu CW i impulsu CCW w tym samym czasie, co pozwala na jakikolwiek błąd enkodera obrotowego. Opóźnienie zbocza opadającego 8 ms na sygnałach CW i CCW zmusza je do pozostawania na wysokim poziomie przez 8 ms plus jeden cykl zegara, co jest konieczne dla downstream SLG46826 GreenPAK.

Krok 3: Projekt kontrolera wentylatora SLG46826

SLG46826 Konstrukcja kontrolera wentylatora
SLG46826 Konstrukcja kontrolera wentylatora

Krok 4: Generowanie PWM z licznikami offsetu

Generowanie PWM z licznikami offsetowymi
Generowanie PWM z licznikami offsetowymi
Generowanie PWM z licznikami offsetowymi
Generowanie PWM z licznikami offsetowymi

Do generowania sygnału PWM wykorzystywana jest para liczników przesunięcia o tym samym okresie. Pierwszy licznik ustawia DFF, a drugi resetuje go, tworząc spójny sygnał PWM cyklu pracy, jak pokazano na Rysunku 6 i Rysunku 7.

CNT6 ustawia DFF10, a odwrócone wyjście CNT1 resetuje DFF10. Piny 18 i 19 służą do wysyłania sygnału PWM do obwodów zewnętrznych

Krok 5: Kontrola cyklu pracy z wstrzykiwaniem zegara i pomijaniem zegara

Kontrola cyklu pracy z wstrzykiwaniem zegara i pomijaniem zegara
Kontrola cyklu pracy z wstrzykiwaniem zegara i pomijaniem zegara
Kontrola cyklu pracy z wstrzykiwaniem zegara i pomijaniem zegara
Kontrola cyklu pracy z wstrzykiwaniem zegara i pomijaniem zegara

Sterownik wentylatora odbiera sygnały CW i CCW jako wejścia z dekodera obrotowego i wykorzystuje je do zwiększania lub zmniejszania sygnału PWM sterującego prędkością wentylatora. Osiąga się to za pomocą kilku elementów logiki cyfrowej.

Cykl pracy musi wzrosnąć po otrzymaniu impulsu CW. Odbywa się to poprzez wstrzyknięcie dodatkowego impulsu zegarowego do bloku CNT6, powodując, że wyprowadza on jeden cykl zegara wcześniej niż w innym przypadku. Proces ten pokazano na rysunku 8.

CNT1 nadal jest taktowany ze stałą szybkością, ale CNT6 ma kilka dodatkowych wstrzykniętych zegarów. Za każdym razem, gdy do licznika jest dodatkowy zegar, jego wyjście przesuwa się o jeden okres zegara w lewo.

Odwrotnie, aby zmniejszyć cykl roboczy, pomiń impuls zegarowy dla CNT6, jak pokazano na rysunku 9. CNT1 wciąż jest taktowany ze stałą szybkością, i są pomijane impulsy zegarowe dla CNT6, gdzie licznik nie został taktowany, gdy był oczekiwany do. W ten sposób wyjście CNT6 jest przesuwane w prawo o jeden okres zegara na raz, skracając cykl pracy wyjścia PWM.

Funkcjonalność wstrzykiwania zegara i pomijania zegara jest realizowana za pomocą niektórych elementów logiki cyfrowej w ramach GreenPAK. Para bloków wielofunkcyjnych służy do tworzenia pary kombinacji detektorów zatrzask/krawędzi. 4-bitowy LUT0 służy do multipleksowania między ogólnym sygnałem zegara (CLK/8) a sygnałami wstrzykiwania zegara lub przeskakiwania zegara. Ta funkcja została szczegółowo opisana w kroku 7.

Krok 6: Wejście PRZYCISKU

PRZYCISK Wejście
PRZYCISK Wejście

Wejście BUTTON jest odbite przez 20 ms, a następnie używane do przełączania zatrzasku, który określa, czy ten konkretny układ jest wybrany. Jeśli jest wybrane, 4-bitowa tablica LUT przepuszcza sygnały pomijania zegara lub wstrzykiwania. Jeśli chip nie jest wybrany, 4-bitowa tablica LUT po prostu przekazuje sygnał CLK/8.

Krok 7: Zapobieganie przewróceniu się cyklu pracy

Zapobieganie przewracaniu się cyklu pracy
Zapobieganie przewracaniu się cyklu pracy
Zapobieganie przewracaniu się cyklu pracy
Zapobieganie przewracaniu się cyklu pracy
Zapobieganie przewracaniu się cyklu pracy
Zapobieganie przewracaniu się cyklu pracy

Zatrzaski RS 3-bit LUT5 i 3-bit LUT3 są używane, aby upewnić się, że nie można wstrzyknąć lub pominąć tylu zegarów, że liczniki przesunięcia przewracają się. Ma to na celu uniknięcie osiągnięcia przez system 100% cyklu pracy, a następnie przejścia do 1% cyklu pracy, jeśli otrzyma kolejny wstrzyknięty zegar.

Zatrzaski RS zapobiegają temu, blokując wejścia bloków wielofunkcyjnych, gdy system jest o jeden cykl zegara od przewrócenia. Para DFF opóźnia sygnały PWM_SET i PWM_nRST o jeden okres zegara, jak pokazano na rysunku 11.

Do stworzenia niezbędnej logiki wykorzystywana jest para LUT. Jeżeli współczynnik wypełnienia jest tak niski, że opóźniony sygnał PWM_SET pojawia się w tym samym czasie co sygnał PWM_nRST, dalsze zmniejszenie współczynnika wypełnienia spowoduje przewrócenie.

Podobnie, w przypadku zbliżania się do maksymalnego współczynnika wypełnienia, tak że opóźniony sygnał PWM_nRST pojawia się w tym samym czasie, co sygnał PWM_SET, konieczne jest uniknięcie dalszego zwiększania współczynnika wypełnienia. W takim przypadku należy opóźnić sygnał nRST o dwa cykle zegara, aby zapewnić, że system nie przewróci się z 99% do 1%.

Krok 8: Kontrola cyklu pracy za pomocą I2C

Kontrola cyklu pracy z I2C
Kontrola cyklu pracy z I2C
Kontrola cyklu pracy z I2C
Kontrola cyklu pracy z I2C
Kontrola cyklu pracy z I2C
Kontrola cyklu pracy z I2C

Ta konstrukcja zawiera inny sposób kontrolowania cyklu pracy, inny niż przeskakiwanie zegara/wstrzykiwanie zegara. Zewnętrzny mikrokontroler może być użyty do zapisania poleceń I2C do GreenPAK w celu ustawienia cyklu pracy.

Sterowanie cyklem pracy przez I2C wymaga od kontrolera wykonania określonej sekwencji poleceń. Te polecenia są pokazane w kolejności w Tabeli 1. „x” oznacza bit, który nie powinien się zmieniać, „[” oznacza bit START, a „]” oznacza bit STOP

Blok PDLY generuje krótki aktywny wysoki impuls na opadającym zboczu sygnału CLK/8, który nazywa się !CLK/8. Sygnał ten jest używany do taktowania DFF14 ze stałą częstotliwością. Kiedy I2C_SET przechodzi w stan wysoki asynchronicznie, następne rosnące zbocze !CLK/8 powoduje, że DFF14 wyprowadza HIGH, co wyzwala CNT5 OneShot. OneShot działa dla liczby cykli zegara, które napisał użytkownik, jak określono w poleceniu I2C „Write to CNT5” w tabeli 1. W tym przypadku jest to 10 cykli zegara. OneShot pozwala oscylatorowi 25 MHz działać dokładnie przez czas jego trwania, a nie dłużej, dzięki czemu 3-bitowy LUT0 otrzymuje liczbę cykli zegara, które zostały zapisane w CNT5.

Rysunek 15 pokazuje te sygnały, gdzie czerwone zegary to te, które są wysyłane do 3-bitowego LUT0, który przekazuje je do CNT6 (licznik PWM_SET), tworząc w ten sposób przesunięcie dla generowania cyklu pracy.

Krok 9: Odczyt obrotomierza

Odczyt obrotomierza
Odczyt obrotomierza
Odczyt obrotomierza
Odczyt obrotomierza

W razie potrzeby użytkownik może odczytać wartość obrotomierza przez I2C, aby śledzić, jak szybko obraca się wentylator, odczytując wartość CNT2. CNT2 jest zwiększane za każdym razem, gdy ACMP0H ma zbocze narastające i może być asynchronicznie zresetowane za pomocą polecenia I2C. Należy pamiętać, że jest to funkcja opcjonalna, a próg ACMP0H będzie musiał zostać dostosowany zgodnie ze specyfikacją konkretnego używanego wentylatora.

Krok 10: Projekt obwodu zewnętrznego

Projekt obwodu zewnętrznego
Projekt obwodu zewnętrznego

Obwód zewnętrzny jest dość prosty. Jest przycisk podłączony do Pin6 w GreenPAK, aby przełączać, czy to konkretne urządzenie jest wybrane do sterowania obrotowego, a dioda LED podłączona do Pin12 i Pin13, aby wskazać, kiedy urządzenie jest wybrane.

Ponieważ wentylator zasilany jest napięciem 12 V, potrzebna jest para tranzystorów FET do sterowania jego przełączaniem. Pin18 i Pin19 GreenPAK napędzają nFET. Gdy nFET jest włączony, ciągnie bramkę pFET LOW, który podłącza wentylator do +12 V. Gdy nFET jest wyłączony, bramka PFET jest podciągana przez rezystor 1 kΩ, który odłącza wentylator od +12 V.

Krok 11: Projekt PCB

Projektowanie PCB
Projektowanie PCB

Aby wykonać prototyp projektu, zmontowano kilka płytek PCB. Płytka drukowana po lewej to „Kontroler wentylatora”, w którym znajduje się enkoder obrotowy, gniazdo 12 V, SLG46108 GreenPAK i złącza dla płytki zaciskowej FT232H USB do I2C. Dwie płytki drukowane po prawej to „Płyty wentylatorów”, które zawierają SLG46826 GreenPAK, przyciski, przełączniki, diody LED i złącza wentylatorów.

Każda tablica wentylatora ma osłoniętą męską główkę po lewej stronie i żeńską główkę po prawej stronie, dzięki czemu można je połączyć łańcuchowo. Każda tablica fanów może być wypełniona zasobami, aby niezależnie kontrolować dwa wentylatory.

Krok 12: Aplikacja C#

Aplikacja C#
Aplikacja C#

Aplikacja C# została napisana do interfejsu z kartami wentylatorów przez mostek FT232H USB-I2C. Ta aplikacja może być używana do regulacji częstotliwości każdego wentylatora za pomocą poleceń I2C generowanych przez aplikację.

Aplikacja pinguje wszystkie 16 adresów I2C raz na sekundę i zapełnia GUI obecnymi adresami slave. W tym przykładzie Wentylator 1 (adres urządzenia podrzędnego 0001) i Wentylator 3 (adres urządzenia podrzędnego 0011) podłączone do płyty. Dostosowania cyklu pracy każdego wentylatora z osobna można dokonać, przesuwając suwak lub wpisując wartość z zakresu 0-256 w polu tekstowym pod suwakiem.

Wnioski

Dzięki tej konstrukcji możliwe jest niezależne sterowanie maksymalnie 16 wentylatorami (ponieważ istnieje 16 możliwych adresów I2C slave) za pomocą enkodera obrotowego lub aplikacji C#. Pokazano, jak generować sygnał PWM za pomocą pary liczników przesunięcia oraz jak zwiększać i zmniejszać współczynnik wypełnienia tego sygnału bez najazdu.

Zalecana: