Sisukord:

DIY PWM -juhtimine arvuti fännidele: 12 sammu
DIY PWM -juhtimine arvuti fännidele: 12 sammu

Video: DIY PWM -juhtimine arvuti fännidele: 12 sammu

Video: DIY PWM -juhtimine arvuti fännidele: 12 sammu
Video: AVAKIN LIFE ESCAPE REALITY 2024, Juuli
Anonim
DIY PWM -juhtimine arvutifännidele
DIY PWM -juhtimine arvutifännidele

Selles juhendis kirjeldatakse täisfunktsionaalse 12 V arvuti ventilaatori PWM-kontrolleri ehitamist. Disain suudab juhtida kuni 16 3-kontaktilist arvuti ventilaatorit. Disain kasutab iga ventilaatori töötsükli juhtimiseks paari Dialog GreenPAK ™ konfigureeritavat segasignaaliga IC-d. See sisaldab ka kahte võimalust ventilaatori kiiruse muutmiseks:

a. kvadratuuri/pöörleva kodeerijaga

b. Windowsi rakendusega, mis on sisse ehitatud C# ja mis suhtleb GreenPAKiga I2C kaudu.

Allpool kirjeldasime samme, mida on vaja mõista, kuidas GreenPAK kiip on programmeeritud PWM -juhtelemendi loomiseks arvutifännidele. Kui aga soovite lihtsalt programmeerimise tulemust saada, laadige GreenPAKi tarkvara alla, et vaadata juba valminud GreenPAK disainifaili. Ühendage GreenPAK arenduskomplekt oma arvutiga ja klõpsake programmi, et luua kohandatud IC PC -fännide PWM -juhtimiseks.

Samm: süsteemi plokkskeem

Süsteemi plokkskeem
Süsteemi plokkskeem

2. samm: pöörleva dekoodri disain SLG46108

Pöörddekoodri disain SLG46108
Pöörddekoodri disain SLG46108
Pöörddekoodri disain SLG46108
Pöörddekoodri disain SLG46108
Pöörddekoodri disain SLG46108
Pöörddekoodri disain SLG46108

Pöörlevat kodeerijat kasutatakse ventilaatorite töötsükli käsitsi suurendamiseks või vähendamiseks. See seade väljastab oma kanali A ja kanali B väljundites impulsse, mis asuvad üksteisest 90 ° kaugusel. Vt AN-1101: lukustamata kvadratuurdekooder, et saada lisateavet pöörleva kodeerija töö kohta.

Kellaga pöörlevat dekoodrit saab luua Dialog GreenPAK SLG46108 abil, et töödelda kanali A ja kanali B signaale ning väljastada neid vastu- (CCW) ja päripäeva (CW) impulssidena.

Kui kanal A juhib kanalit B, väljastab disain lühikese impulsi CW -l. Kui kanal B juhib kanalit A, väljastab see CCW -l lühikese impulsi

Kolm DFF -i sünkroonivad A -kanali sisendi kellaga. Samamoodi loob toru viivitus, kui OUT0 on seatud kahele DFF -ile ja OUT1 on seatud kolmele DFF -ile, sama kanali B funktsionaalsuse.

CW- ja CCW -väljundite loomiseks kasutage mõnda LUT -i. Selle standardse pöörddekoodri disaini kohta lisateabe saamiseks külastage seda veebisaiti.

Pöörddekooder GreenPAK võtab vastu sisendimpulsid A ja B ning väljastab CW ja CCW impulsse, nagu on näidatud joonisel 4.

XOR -väravate järel olev vooluring tagab, et kunagi ei toimu korraga CW- ja CCW -impulsse, mis võimaldab pöördkodeerijaga seotud vigu. CW- ja CCW -signaalide 8 ms langeva serva viivitus sunnib neid püsima kõrgel 8 ms pluss üks taktsükkel, mis on vajalik SLG46826 GreenPAK -ide jaoks.

Samm: SLG46826 ventilaatori kontrolleri disain

SLG46826 Ventilaatori kontrolleri disain
SLG46826 Ventilaatori kontrolleri disain

4. samm: PWM -i genereerimine nihkearvestiga

PWM -i genereerimine nihkearvestiga
PWM -i genereerimine nihkearvestiga
PWM -i genereerimine nihkearvestiga
PWM -i genereerimine nihkearvestiga

PWM -signaali genereerimiseks kasutatakse paari sama perioodi nihke loendurit. Esimene loendur seab DFF -i ja teine lähtestab selle, luues ühtlase töötsükli PWM -signaali, nagu on näidatud joonisel 6 ja joonisel 7.

CNT6 määrab DFF10 ja CNT1 pööratud väljund lähtestab DFF10. Tihvte 18 ja 19 kasutatakse PWM -signaali väljastamiseks välisele vooluahelale

5. samm: töötsükli juhtimine kella sissepritse ja kella vahelejätmisega

Töötsükli juhtimine koos kella sissepritse ja kella vahelejätmisega
Töötsükli juhtimine koos kella sissepritse ja kella vahelejätmisega
Töötsükli juhtimine koos kella sissepritse ja kella vahelejätmisega
Töötsükli juhtimine koos kella sissepritse ja kella vahelejätmisega

Ventilaatori kontroller võtab pöörddekoodri sisenditena vastu CW ja CCW signaale ning kasutab neid ventilaatori kiirust reguleeriva PWM -signaali suurendamiseks või vähendamiseks. See saavutatakse mitme digitaalse loogika komponendiga.

Töötsükkel peab CW impulsi vastuvõtmisel suurenema. Selleks süstitakse plokki CNT6 täiendav kellaimpulss, mis paneb selle väljastama ühe taktsükli varem kui muidu. See protsess on näidatud joonisel 8.

CNT1 on endiselt püsiva kiirusega, kuid CNT6 -le on süstitud paar lisakella. Iga kord, kui loenduril on lisakell, nihutab see oma väljundit ühe kellaaja võrra vasakule.

Vastupidi, töötsükli vähendamiseks jätke CNT6 kellaimpulss vahele, nagu on näidatud joonisel 9. CNT1 hakkab endiselt püsiva kiirusega kellaajale ning CNT6 puhul on vahele jäetud kellaimpulsid, kus loendur ei saanud ootuspäraselt kella et. Nii surutakse CNT6 väljundit ühe kellaaja võrra korraga paremale, lühendades väljundi PWM töötsüklit.

Kella sisestamise ja kella vahelejätmise funktsioone teostatakse GreenPAKis mõne digitaalse loogika elemendi abil. Paari multifunktsionaalset plokki kasutatakse paari riivi/serva detektori kombinatsiooni loomiseks. 4-bitist LUT0 kasutatakse üldise kellasignaali (CLK/8) ja kella süstimise või vahelejätmise signaalide vahel. Seda funktsiooni kirjeldatakse üksikasjalikumalt 7. sammus.

6. samm: NUPU Sisend

NUPP Sisend
NUPP Sisend

NUPU sisend on 20 ms jooksul tühistatud, seejärel kasutatakse riivi vahetamiseks, mis määrab, kas see kiip on valitud. Kui see on valitud, edastab 4-bitine LUT kella vahelejätmise või süstimissignaalid. Kui kiip pole valitud, edastab 4-bitine LUT lihtsalt CLK/8 signaali.

7. samm: töötsükli ümbermineku vältimine

Töötsükli ümbermineku vältimine
Töötsükli ümbermineku vältimine
Töötsükli ümbermineku vältimine
Töötsükli ümbermineku vältimine
Töötsükli ümbermineku vältimine
Töötsükli ümbermineku vältimine

RS-lukke 3-bitine LUT5 ja 3-bitine LUT3 kasutatakse selleks, et veenduda, et te ei saa süstida ega vahele jätta nii palju kellasid, et nihkeloendurid saaksid ümber pöörata. Selle eesmärk on vältida süsteemi jõudmist 100 % töötsüklini ja seejärel ümberminekut 1 % töötsüklile, kui see saab teise süstitud kella.

RS -riivid hoiavad selle ära, lukustades sisendid multifunktsionaalsete plokkide külge, kui süsteem on ühe tsükli kaugusel ümberminekust. Paar DFF -i viivitab signaale PWM_SET ja PWM_nRST ühe kellaaja võrra, nagu on näidatud joonisel 11.

Vajaliku loogika loomiseks kasutatakse paari LUT -sid. Kui töötsükkel on nii madal, et hilinenud PWM_SET signaal ilmneb samaaegselt signaaliga PWM_nRST, põhjustab töötsükli edasine vähenemine ümbermineku.

Sarnaselt, kui läheneda maksimaalsele töötsüklile, nii et hilinenud PWM_nRST signaal ilmneb samaaegselt signaaliga PWM_SET, tuleb vältida töötsükli edasist suurenemist. Sel juhul lükake nRST -signaali kahe taktsükli võrra edasi, et süsteem ei rulluks üle 99 % -lt 1 % -ni.

8. samm: töötsükli juhtimine I2C abil

Töötsükli juhtimine I2C abil
Töötsükli juhtimine I2C abil
Töötsükli juhtimine I2C abil
Töötsükli juhtimine I2C abil
Töötsükli juhtimine I2C abil
Töötsükli juhtimine I2C abil

See disain sisaldab muud töötsükli juhtimise viisi peale kella vahelejätmise/kella süstimise. Välise mikrokontrolleri abil saab GreenPAK -ile I2C käske kirjutada, et määrata töötsükkel.

Töötsükli juhtimine I2C kaudu nõuab kontrollerilt konkreetse käsujärje sooritamist. Need käsud on toodud tabelis 1 järjekorras. "X" tähistab bitti, mis ei tohiks muutuda, "[" tähistab START -bitti ja "]" tähistab STOP -bitti

PDLY plokk genereerib lühikese aktiivse kõrge impulsi CLK/8 signaali langeval serval, mida nimetatakse! CLK/8. Seda signaali kasutatakse DFF14 püsiva sagedusega kellaks. Kui I2C_SET tõuseb asünkroonselt kõrgele, põhjustab! CLK/8 järgmine tõusev serv DFF14 väljundi HIGH, mis käivitab CNT5 OneShoti. OneShot töötab vastavalt kella tsüklite arvule, mille kasutaja kirjutas, nagu on täpsustatud tabelis 1 käsus "Write to CNT5" I2C. Sel juhul on see 10 kellatsüklit. OneShot võimaldab 25 MHz ostsillaatoril töötada täpselt nii kaua ja mitte kauem, nii et 3-bitine LUT0 võtab vastu CNT5-le kirjutatud kellatsüklite arvu.

Joonisel 15 on näidatud need signaalid, kus punased kellad saadetakse 3-bitisele LUT0-le, mis edastab need CNT6-sse (PWM_SET loendur), luues seega nihke töötsükli genereerimiseks.

9. samm: tahhomeetri näit

Tahhomeetri näit
Tahhomeetri näit
Tahhomeetri näit
Tahhomeetri näit

Soovi korral saab kasutaja lugeda tahhomeetri väärtust I2C kaudu, et jälgida ventilaatori pöörlemiskiirust, lugedes CNT2 väärtust. CNT2 suurendatakse iga kord, kui ACMP0H -l on tõusev serv, ja seda saab asünkroonselt lähtestada käsuga I2C. Pange tähele, et see on valikuline funktsioon ja ACMP0H künnist tuleb muuta vastavalt kasutatava ventilaatori spetsifikatsioonidele.

10. samm: välise vooluahela projekteerimine

Välise vooluahela disain
Välise vooluahela disain

Väline vooluring on üsna lihtne. GreenPAKi Pin6 -ga on ühendatud nupp, et lülitada, kas see seade on pöörlevaks juhtimiseks valitud, ja Pin12 ja Pin13 -ga ühendatud LED näitab seadme valimist.

Kuna ventilaator töötab 12 V pingest, on selle lülitamise juhtimiseks vaja paar FET -i. GreenPAKi Pin18 ja Pin19 juhivad nFET -i. Kui nFET on sisse lülitatud, tõmbab see pFET LOW värava, mis ühendab ventilaatori +12 V. Kui nFET on välja lülitatud, tõmbab PFET -i värav üles 1 kΩ takisti, mis lülitab ventilaatori lahti alates +12 V.

11. samm: trükkplaatide kujundamine

PCB disain
PCB disain

Kujunduse prototüübi koostamiseks koguti paar PCB -d. Vasakul olev trükkplaat on "Ventilaatori kontroller", mis sisaldab pöörlevat kodeerijat, 12 V pistikupesa, SLG46108 GreenPAK ja pistikud FT232H USB -I2C jaotusplaadi jaoks. Parempoolsed kaks trükkplaati on ventilaatoriplaadid, mis sisaldavad SLG46826 GreenPAK -sid, nuppe, lüliteid, LED -e ja ventilaatori päiseid.

Igal fännitahvlil on vasakul küljel varjatud isane päis ja paremal pool naissoost päis, et neid saaks koos aheldada. Igale ventilaatoriplaadile saab lisada ressursse kahe ventilaatori iseseisvaks juhtimiseks.

12. samm: C# rakendus

C# Rakendus
C# Rakendus

C# rakendus kirjutati ventilaatoriplaatidega liidestamiseks läbi FT232H USB-I2C silla. Seda rakendust saab kasutada iga ventilaatori sageduse reguleerimiseks rakenduse loodud I2C käskudega.

Rakendus pingutab kõik 16 I2C aadressi kord sekundis ja täidab GUI olemasolevate alam -aadressidega. Selles näites on tahvliga ühendatud ventilaator 1 (alam aadress 0001) ja ventilaator 3 (alam aadress 0011). Iga ventilaatori töötsüklit saab reguleerida liugriba liigutades või liugriba all olevasse tekstikasti sisestades väärtuse 0–256.

Järeldused

Seda disaini kasutades on võimalik iseseisvalt juhtida kuni 16 ventilaatorit (kuna seal on 16 võimalikku I2C alam -aadressi) kas pöördkodeerija või rakenduse C# abil. On näidatud, kuidas luua nihkearvestiga PWM -signaal ning kuidas suurendada ja vähendada selle signaali töötsüklit ilma ümberminekuta.

Soovitan: