Obsah:

DIY PWM ovládání pro PC ventilátory: 12 kroků
DIY PWM ovládání pro PC ventilátory: 12 kroků

Video: DIY PWM ovládání pro PC ventilátory: 12 kroků

Video: DIY PWM ovládání pro PC ventilátory: 12 kroků
Video: Jaké větráky jsou nejlepší do mého PC? 2024, Červenec
Anonim
DIY PWM ovládání pro PC fanoušky
DIY PWM ovládání pro PC fanoušky

Tento instruktážní dokument popisuje stavbu plně funkčního řadiče PWM s ventilátorem 12 V pro PC. Konstrukce může ovládat až 16 3-pinových počítačových ventilátorů. Konstrukce využívá k ovládání pracovního cyklu každého ventilátoru dvojici konfigurovatelných integrovaných obvodů Dialog GreenPAK ™ se smíšeným signálem. Obsahuje také dva způsoby, jak změnit rychlost ventilátoru:

A. s kvadraturním/rotačním kodérem

b. s aplikací Windows postavenou v C#, která komunikuje s GreenPAK přes I2C.

Níže jsme popsali potřebné kroky, abychom pochopili, jak byl čip GreenPAK naprogramován tak, aby vytvořil ovládání PWM pro fanoušky PC. Pokud však chcete získat pouze výsledek programování, stáhněte si software GreenPAK a zobrazte již dokončený soubor návrhu GreenPAK. Připojte vývojovou sadu GreenPAK k počítači a spusťte program a vytvořte vlastní IC pro ovládání PWM pro fanoušky PC.

Krok 1: Blokový diagram systému

Blokový diagram systému
Blokový diagram systému

Krok 2: Návrh rotačního dekodéru SLG46108

Rotační dekodér SLG46108
Rotační dekodér SLG46108
Rotační dekodér SLG46108
Rotační dekodér SLG46108
Rotační dekodér SLG46108
Rotační dekodér SLG46108

K ručnímu zvýšení nebo snížení pracovního cyklu ventilátorů se používá rotační kodér. Toto zařízení vydává impulzy na výstupech kanálů A a B, které jsou od sebe vzdáleny 90 °. Další informace o tom, jak funguje rotační kodér, najdete v AN-1101: Unclocked Quadrature Decoder.

Taktovaný rotační dekodér lze vytvořit pomocí Dialog GreenPAK SLG46108 pro zpracování signálů kanálu A a kanálu B a jejich výstup jako pulzy proti směru hodinových ručiček (CCW) a ve směru hodinových ručiček (CW).

Když kanál A vede kanálem B, konstrukce vydává krátký impuls na CW. Když kanál B vede kanál A, vysílá krátký impuls na CCW

Tři DFF synchronizují vstup kanálu A s hodinami. Podobně zpoždění potrubí s OUT0 nastaveným na dva DFF a OUT1 nastaveným na tři DFF vytváří stejnou funkci pro kanál B.

Chcete -li vytvářet výstupy CW a CCW, použijte několik LUT. Další informace o tomto standardním designu rotačního dekodéru najdete na tomto webu.

Rotační dekodér GreenPAK bude přijímat vstupní impulsy A a B a vydávat impulzy CW a CCW, jak ukazuje obrázek 4.

Obvody za branami XOR zajišťují, že nikdy nebude existovat puls CW a pulz CCW současně, což umožňuje jakoukoli chybu rotačního kodéru. Zpoždění sestupné hrany 8 ms pro signály CW a CCW je nutí zůstat vysoké po dobu 8 ms plus jeden taktovací cyklus, což je nezbytné pro navazující SLG46826 GreenPAK.

Krok 3: Návrh ovladače ventilátoru SLG46826

SLG46826 Design ovladače ventilátoru
SLG46826 Design ovladače ventilátoru

Krok 4: Generování PWM s ofsetovými čítači

Generování PWM s ofsetovými čítači
Generování PWM s ofsetovými čítači
Generování PWM s ofsetovými čítači
Generování PWM s ofsetovými čítači

Ke generování signálu PWM se používá dvojice ofsetových čítačů se stejnou periodou. První čítač nastavuje DFF a druhý jej resetuje a vytváří konzistentní signál PWM pracovního cyklu, jak je znázorněno na obrázku 6 a obrázku 7.

CNT6 nastavuje DFF10 a invertovaný výstup CNT1 resetuje DFF10. Kolíky 18 a 19 se používají k výstupu signálu PWM do externích obvodů

Krok 5: Řízení pracovního cyklu se vstřikováním hodin a přeskakováním hodin

Řízení pracovního cyklu se vstřikováním hodin a přeskakováním hodin
Řízení pracovního cyklu se vstřikováním hodin a přeskakováním hodin
Řízení pracovního cyklu se vstřikováním hodin a přeskakováním hodin
Řízení pracovního cyklu se vstřikováním hodin a přeskakováním hodin

Ovladač ventilátoru přijímá signály CW a CCW jako vstupy z rotačního dekodéru a používá je ke zvýšení nebo snížení signálu PWM, který řídí rychlost ventilátoru. Toho je dosaženo pomocí několika komponent digitální logiky.

Po přijetí impulsu CW se pracovní cyklus musí zvýšit. To se provádí vložením dalšího hodinového impulzu do bloku CNT6, což způsobí, že bude vysílat o jeden takt dříve, než by jinak měl. Tento proces je znázorněn na obrázku 8.

CNT1 je stále taktován konstantní rychlostí, ale CNT6 má vstřikováno několik dalších hodin. Pokaždé, když jsou k pultu další hodiny, posune svůj výstup o jednu hodinovou periodu doleva.

Naopak pro snížení pracovního cyklu přeskočte hodinový impuls pro CNT6, jak je znázorněno na obrázku 9. CNT1 se stále taktuje konstantní rychlostí, a pro CNT6 jsou vynechané hodinové impulsy, kde se čítač netaktoval, když měl na. Tímto způsobem je výstup CNT6 tlačen doprava o jedno časové období v čase, což zkracuje výstupní pracovní cyklus PWM.

Funkce vkládání a přeskakování hodin se provádí pomocí některých digitálních logických prvků v rámci GreenPAK. Dvojice multifunkčních bloků slouží k vytvoření dvojice komb detektorů západka/hrana. 4bitový LUT0 se používá k propojení mezi obecným hodinovým signálem (CLK/8) a signálem vstřikování nebo přeskakování hodin. Tato funkce je podrobněji popsána v kroku 7.

Krok 6: Vstup BUTTON

BUTTON Vstup
BUTTON Vstup

Vstup BUTTON je odpojen po dobu 20 ms a poté použit k přepnutí západky, která určuje, zda je vybrán tento konkrétní čip. Pokud je vybrána, pak 4bitová LUT předává signály přeskakování hodin nebo vstřikování. Pokud není čip vybrán, pak 4bitová LUT jednoduše předá signál CLK/8.

Krok 7: Prevence převrácení pracovního cyklu

Prevence převrácení pracovního cyklu
Prevence převrácení pracovního cyklu
Prevence převrácení pracovního cyklu
Prevence převrácení pracovního cyklu
Prevence převrácení pracovního cyklu
Prevence převrácení pracovního cyklu

Západky RS 3bitové LUT5 a 3bitové LUT3 se používají k zajištění toho, že nemůžete vložit nebo přeskočit tolik hodin, že se posunou čítače offsetu. To má zabránit tomu, aby systém dosáhl 100 % pracovního cyklu a poté přejel na 1 % pracovní cyklus, pokud obdrží další vstřikované hodiny.

Západky RS tomu zabraňují zablokováním vstupů do multifunkčních bloků, když je systém jeden hodinový cyklus od převrácení. Dvojice DFF zpožďuje signály PWM_SET a PWM_nRST o jednu hodinovou periodu, jak ukazuje obrázek 11.

K vytvoření potřebné logiky se používá dvojice LUT. Pokud je pracovní cyklus tak nízký, že ke zpožděnému signálu PWM_SET dochází současně se signálem PWM_nRST, další snížení pracovního cyklu způsobí převrácení.

Podobně, pokud se blíží maximální pracovní cyklus tak, že se zpožděný signál PWM_nRST vyskytuje současně se signálem PWM_SET, je nutné zabránit jakémukoli dalšímu zvýšení pracovního cyklu. V tomto případě zpožďte signál nRST o dva cykly hodin, abyste zajistili, že se systém nepřevrátí z 99 % na 1 %.

Krok 8: Řízení pracovního cyklu s I2C

Řízení pracovního cyklu s I2C
Řízení pracovního cyklu s I2C
Řízení pracovního cyklu s I2C
Řízení pracovního cyklu s I2C
Řízení pracovního cyklu s I2C
Řízení pracovního cyklu s I2C

Tento design zahrnuje jiný způsob ovládání pracovního cyklu než přeskakování hodin/vstřikování hodin. Externí mikrokontrolér lze použít k zápisu příkazů I2C do GreenPAK k nastavení pracovního cyklu.

Řízení pracovního cyklu přes I2C vyžaduje, aby řadič provedl konkrétní sekvenci příkazů. Tyto příkazy jsou uvedeny v pořadí v tabulce 1. „x“označuje bit, který by se neměl měnit, „[“označuje bit START a „]“označuje bit STOP

Blok PDLY generuje krátký aktivní vysoký impuls na sestupné hraně signálu CLK/8, který se nazývá! CLK/8. Tento signál se používá k taktování DFF14 na stabilní frekvenci. Když I2C_SET stoupá asynchronně vysoko, další stoupající hrana! CLK/8 způsobí, že DFF14 vydá HIGH, což spustí CNT5 OneShot. OneShot běží pro počet hodinových cyklů, které uživatel zapsal, jak je uvedeno v příkazu I2C „Zápis do CNT5“v tabulce 1. V tomto případě je to 10 hodinových cyklů. OneShot umožňuje oscilátoru 25 MHz běžet přesně po dobu jeho trvání a již ne, takže 3bitový LUT0 přijímá počet hodinových cyklů, které byly zapsány do CNT5.

Obrázek 15 ukazuje tyto signály, kde červené hodiny jsou ty, které jsou odesílány do 3bitového LUT0, který je předává do CNT6 (čítač PWM_SET), čímž se vytváří posun pro generování pracovního cyklu.

Krok 9: Čtení tachometru

Čtení tachometru
Čtení tachometru
Čtení tachometru
Čtení tachometru

Pokud je to žádoucí, může uživatel přečíst hodnotu otáčkoměru přes I2C a sledovat, jak rychle se ventilátor otáčí, a to načtením hodnoty CNT2. CNT2 se zvyšuje vždy, když má ACMP0H stoupající hranu, a lze jej asynchronně resetovat pomocí příkazu I2C. Všimněte si, že toto je volitelná funkce a práh ACMP0H bude třeba upravit podle specifikací konkrétního používaného ventilátoru.

Krok 10: Návrh externího obvodu

Návrh vnějšího obvodu
Návrh vnějšího obvodu

Externí obvod je poměrně jednoduchý. Ke kolíku 6 GreenPAK je připojeno tlačítko pro přepínání, zda je toto konkrétní zařízení vybráno pro otočné ovládání, a LED připojená k pinům 12 a pin 13 indikující, kdy je zařízení vybráno.

Protože ventilátor běží na 12 V, je zapotřebí dvojice FET pro ovládání jeho spínání. Pin18 a Pin19 společnosti GreenPAK pohání nFET. Když je nFET zapnutý, táhne bránu pFET LOW, která spojuje ventilátor na +12 V. Když je nFET vypnutý, brána PFET je vytažena nahoru odporem 1 kΩ, který odpojí ventilátor od +12 V.

Krok 11: Návrh DPS

Design DPS
Design DPS

K prototypování návrhu bylo sestaveno několik desek plošných spojů. DPS na levé straně je „Fan Controller“, který obsahuje rotační kodér, 12 V konektor, SLG46108 GreenPAK a konektory pro odpojovací desku FT232H USB to I2C. Dvě desky plošných spojů vpravo jsou „Fan Boards“, které obsahují moduly SLG46826 GreenPAK, tlačítka, přepínače, diody LED a záhlaví ventilátorů.

Každý Fan Board má na levé straně zahalený samčí záhlaví a na pravé straně ženský záhlaví, aby je bylo možné spojit dohromady. Každý Fan Board může být naplněn prostředky pro nezávislé ovládání dvou ventilátorů.

Krok 12: Aplikace C#

C# aplikace
C# aplikace

C# aplikace byla zapsána do rozhraní s Fan Boards přes FT232H USB-I2C můstek. Tuto aplikaci lze použít k nastavení frekvence každého ventilátoru pomocí příkazů I2C, které jsou generovány aplikací.

Aplikace pinguje všech 16 I2C adres jednou za sekundu a naplní GUI přítomnými slave adresami. V tomto případě je k desce připojen ventilátor 1 (adresa slave 0001) a ventilátor 3 (adresa slave 0011). Úpravy pracovního cyklu každého ventilátoru jednotlivě lze provést přesunutím posuvníku nebo zadáním hodnoty 0-256 do textového pole pod posuvníkem.

Závěry

Pomocí této konstrukce je možné nezávisle ovládat až 16 ventilátorů (protože existuje 16 možných adres slave I2C) buď pomocí rotačního kodéru, nebo pomocí aplikace C#. Bylo ukázáno, jak generovat signál PWM pomocí dvojice ofsetových čítačů a jak zvýšit a snížit pracovní cyklus tohoto signálu bez převrácení.

Doporučuje: