Sisällysluettelo:

DIY PWM -ohjaus PC -tuulettimille: 12 vaihetta
DIY PWM -ohjaus PC -tuulettimille: 12 vaihetta

Video: DIY PWM -ohjaus PC -tuulettimille: 12 vaihetta

Video: DIY PWM -ohjaus PC -tuulettimille: 12 vaihetta
Video: Собака лежала в луже. История борзой собаки по имени Мелвин. 2024, Heinäkuu
Anonim
DIY PWM -ohjaus PC -tuulettimille
DIY PWM -ohjaus PC -tuulettimille

Tässä ohjeessa kuvataan täysin varustellun 12 V: n PC-tuulettimen PWM-ohjaimen rakentaminen. Suunnittelu voi ohjata jopa 16 3-nastaista tietokoneen tuuletinta. Suunnittelu käyttää paria Dialog GreenPAK ™ -konfiguroitavia sekoitussignaalipiirejä ohjaamaan jokaisen tuulettimen käyttöjaksoa. Se sisältää myös kaksi tapaa muuttaa tuulettimen nopeutta:

a. kvadratuurilla/pyörivällä anturilla

b. Windows -sovelluksella, joka on rakennettu C#: een ja joka kommunikoi GreenPAKin kanssa I2C: n kautta.

Seuraavassa kuvataan vaiheet, jotka tarvitaan ymmärtämään, miten GreenPAK -siru on ohjelmoitu luomaan PWM -ohjaus PC -faneille. Jos haluat vain saada ohjelmoinnin tuloksen, lataa GreenPAK -ohjelmisto nähdäksesi jo valmistuneen GreenPAK -suunnittelutiedoston. Liitä GreenPAK Development Kit tietokoneeseesi ja napsauta ohjelmaa luodaksesi mukautetun IC: n PC -faneille PWM -ohjausta varten.

Vaihe 1: Järjestelmän lohkokaavio

Järjestelmän lohkokaavio
Järjestelmän lohkokaavio

Vaihe 2: SLG46108 -pyörivä dekooderin suunnittelu

SLG46108 pyörivä dekooderi
SLG46108 pyörivä dekooderi
SLG46108 pyörivä dekooderi
SLG46108 pyörivä dekooderi
SLG46108 pyörivä dekooderi
SLG46108 pyörivä dekooderi

Pyörivää anturia käytetään puhaltimien käyttöjakson lisäämiseen tai vähentämiseen manuaalisesti. Tämä laite lähettää pulsseja kanavan A ja kanavan B lähdöissä, jotka ovat 90 °: n päässä toisistaan. Katso AN-1101: Lukitsematon kvadratuuridekooderi saadaksesi lisätietoja kiertokooderin toiminnasta.

Kellotettu pyörivä dekooderi voidaan luoda Dialog GreenPAK SLG46108: n avulla kanavan A ja kanavan B signaalien käsittelemiseksi ja niiden lähettämiseksi vastapäivään (CCW) ja myötäpäivään (CW).

Kun kanava A johtaa kanavaa B, malli antaa lyhyen pulssin CW: lle. Kun kanava B johtaa kanavaa A, se antaa lyhyen pulssin CCW: lle

Kolme DFF: ää synkronoi A -kanavan tulon kellon kanssa. Samoin putken viive, kun OUT0 on asetettu kahteen DFF: ään ja OUT1 asetetaan kolmeen DFF: ään, luovat saman toiminnallisuuden kanavalle B.

Jos haluat luoda CW- ja CCW -lähdöt, käytä muutamaa LUT: ta. Lisätietoja tästä vakiomallisesta pyörivästä dekooderisuunnittelusta on tällä verkkosivustolla.

GreenPAK -pyörivä dekooderi vastaanottaa tulopulsseja A ja B ja lähettää CW- ja CCW -pulsseja kuvan 4 mukaisesti.

XOR -porttien jälkeiset piirit varmistavat, että CW- ja CCW -pulsseja ei koskaan tule samanaikaisesti, mikä mahdollistaa mahdollisen virheen pyörivän anturin kanssa. CW- ja CCW -signaalien 8 ms: n putoavan reunan viive pakottavat ne pysymään korkealla 8 ms: n ja yhden kellojakson ajan, mikä on välttämätöntä loppupään SLG46826 GreenPAK -laitteille.

Vaihe 3: SLG46826 -tuulettimen ohjaimen suunnittelu

SLG46826 Tuuletinohjaimen suunnittelu
SLG46826 Tuuletinohjaimen suunnittelu

Vaihe 4: PWM -generaatio offset -laskureilla

PWM -sukupolvi offset -laskureilla
PWM -sukupolvi offset -laskureilla
PWM -sukupolvi offset -laskureilla
PWM -sukupolvi offset -laskureilla

PWM -signaalin muodostamiseen käytetään paria offset -laskuria, joilla on sama jakso. Ensimmäinen laskuri asettaa DFF: n ja toinen nollaa sen, jolloin luodaan johdonmukainen toimintajakson PWM -signaali, kuten kuviossa 6 ja kuvassa 7 on esitetty.

CNT6 asettaa DFF10: n ja CNT1: n käänteinen lähtö nollaa DFF10. Nastaja 18 ja 19 käytetään PWM -signaalin lähettämiseen ulkoiseen piiriin

Vaihe 5: Työkierron ohjaus kellon ruiskutuksella ja kellon ohituksella

Toimintasyklin ohjaus kellon ruiskutuksella ja kellon ohituksella
Toimintasyklin ohjaus kellon ruiskutuksella ja kellon ohituksella
Toimintasyklin ohjaus kellon ruiskutuksella ja kellon ohituksella
Toimintasyklin ohjaus kellon ruiskutuksella ja kellon ohituksella

Puhallinohjain vastaanottaa CW- ja CCW -signaalit tulona pyörivältä dekooderilta ja käyttää niitä joko lisäämään tai vähentämään puhaltimen nopeutta ohjaavaa PWM -signaalia. Tämä saavutetaan useilla digitaalisilla logiikkakomponenteilla.

Käyttöjaksoa on pidennettävä, kun CW -pulssi vastaanotetaan. Tämä tehdään ruiskuttamalla ylimääräinen kellopulssi CNT6 -lohkoon, jolloin se antaa yhden kellojakson aikaisemmin kuin muuten. Tämä prosessi on esitetty kuvassa 8.

CNT1 kellotetaan edelleen vakionopeudella, mutta CNT6: ssa on pari ylimääräistä kelloa ruiskutettuna. Aina kun laskurissa on ylimääräinen kello, se siirtää tuotostaan yhden kellojakson verran vasemmalle.

Päinvastoin, lyhentääksesi toimintajaksoa, ohita kellon pulssi CNT6: lle kuvan 9 mukaisesti. kohteeseen. Tällä tavalla CNT6: n ulostulo työntyy oikealle yksi kellojakso kerrallaan, mikä lyhentää PWM -tehosykliä.

Kellon ruiskutus- ja ohitustoiminto suoritetaan käyttämällä joitakin GreenPAKin digitaalisia logiikkaelementtejä. Monitoimilohkoja käytetään parin salpa-/reunailmaisinyhdistelmän luomiseen. 4-bittistä LUT0: ta käytetään yleisen kellosignaalin (CLK/8) ja kellon ruiskutussignaalien tai kellon ohitussignaalien väliseen sekoittamiseen. Tämä toiminto kuvataan tarkemmin vaiheessa 7.

Vaihe 6: PAINIKKEEN syöttö

PAINIKE Syöttö
PAINIKE Syöttö

BUTTON -tuloa ei käytetä 20 ms: n ajan, minkä jälkeen sitä käytetään salvan vaihtamiseen, joka määrittää, onko tämä siru valittu. Jos se on valittu, 4-bittinen LUT välittää kellon ohitus- tai ruiskutussignaalit. Jos sirua ei ole valittu, 4-bittinen LUT yksinkertaisesti välittää CLK/8-signaalin.

Vaihe 7: Käyttöjakson kaatumisen estäminen

Käyttöjakson kaatumisen estäminen
Käyttöjakson kaatumisen estäminen
Käyttöjakson kaatumisen estäminen
Käyttöjakson kaatumisen estäminen
Käyttöjakson kaatumisen estäminen
Käyttöjakson kaatumisen estäminen

RS-salpoja 3-bittisiä LUT5 ja 3-bittisiä LUT3 käytetään varmistamaan, että et voi pistää tai ohittaa niin monta kelloa, että siirtymälaskurit kaatuvat. Näin vältetään, että järjestelmä saavuttaa 100 %: n käyttöjakson ja siirtyy sitten 1 %: n käyttöjaksoon, jos se vastaanottaa toisen ruiskutetun kellon.

RS -salvat estävät tämän tapahtuvan lukitsemalla tulot monitoimilohkoihin, kun järjestelmä on yhden kellojakson päässä kaatumisesta. DFF -pari viivästyttää PWM_SET- ja PWM_nRST -signaaleja yhdellä kellojaksolla, kuten kuvassa 11 on esitetty.

LUT -paria käytetään tarvittavan logiikan luomiseen. Jos käyttöjakso on niin alhainen, että viivästetty PWM_SET -signaali esiintyy samanaikaisesti PWM_nRST -signaalin kanssa, käyttöjakson jatkuva lasku aiheuttaa kaatumisen.

Samoin, jos lähestytään suurinta käyttöjaksoa, jolloin viivästynyt PWM_nRST -signaali esiintyy samanaikaisesti PWM_SET -signaalin kanssa, on vältettävä käyttöjakson lisäkasvua. Tässä tapauksessa viivästytä nRST -signaalia kahdella kellojaksolla varmistaaksesi, että järjestelmä ei kaadu 99 %: sta 1 %: iin.

Vaihe 8: Työkierron ohjaus I2C: llä

Toimintasyklin ohjaus I2C: llä
Toimintasyklin ohjaus I2C: llä
Toimintasyklin ohjaus I2C: llä
Toimintasyklin ohjaus I2C: llä
Toimintasyklin ohjaus I2C: llä
Toimintasyklin ohjaus I2C: llä

Tämä rakenne sisältää muun tavan ohjata käyttöjaksoa kuin kellon ohitus/kellon ruiskutus. Ulkoista mikro -ohjainta voidaan käyttää I2C -komentojen kirjoittamiseen GreenPAK: lle toimintajakson asettamiseksi.

Käyttöjakson ohjaaminen I2C: n kautta edellyttää, että ohjain suorittaa tietyn komentosarjan. Nämä komennot on esitetty järjestyksessä taulukossa 1. "x" tarkoittaa bittiä, jonka ei pitäisi muuttua, "[" osoittaa START -bittiä ja "]" osoittaa STOP -bittiä

PDLY -lohko tuottaa lyhyen aktiivisen korkean pulssin CLK/8 -signaalin putoavalle reunalle, jota kutsutaan nimellä! CLK/8. Tätä signaalia käytetään kellotukseen DFF14 tasaisella taajuudella. Kun I2C_SET nousee korkealle asynkronisesti, CLK/8: n seuraava nouseva reuna saa DFF14: n lähettämään HIGH, mikä laukaisee CNT5 OneShotin. OneShot suorittaa käyttäjän kirjoittamien kellojaksojen määrän taulukon 1 "Write to CNT5" I2C -komennon mukaisesti. Tässä tapauksessa se on 10 kellojaksoa. OneShot sallii 25 MHz: n oskillaattorin toimia täsmälleen sen keston ajan eikä enää, joten 3-bittinen LUT0 vastaanottaa CNT5: lle kirjoitettujen kellokierrosten määrän.

Kuvassa 15 esitetään nämä signaalit, joissa punaiset kellot lähetetään 3-bittiselle LUT0: lle, joka siirtää ne CNT6: een (PWM_SET-laskuri), mikä luo siirtymän käyttöjakson luomiseen.

Vaihe 9: Kierroslukumittarin lukeminen

Kierroslukumittarin lukema
Kierroslukumittarin lukema
Kierroslukumittarin lukema
Kierroslukumittarin lukema

Haluttaessa käyttäjä voi lukea kierroslukumittarin arvon I2C: n kautta seuratakseen kuinka nopeasti tuuletin pyörii lukemalla CNT2 -arvon. CNT2 kasvaa joka kerta, kun ACMP0H: lla on nouseva reuna, ja se voidaan nollata asynkronisesti I2C -komennolla. Huomaa, että tämä on valinnainen ominaisuus, ja ACMP0H -kynnystä on säädettävä käytettävän tuulettimen määritysten mukaan.

Vaihe 10: Ulkoisen piirin suunnittelu

Ulkoisen piirin suunnittelu
Ulkoisen piirin suunnittelu

Ulkoinen piiri on melko yksinkertainen. GreenPAKin nastaan 6 on kytketty painike, jolla vaihdetaan, onko tämä laite valittu pyörivälle ohjaukselle, ja LED 12, joka on liitetty Pin12: een ja osoittamaan, milloin laite on valittu.

Koska tuuletin toimii 12 V: n virralla, sen kytkemistä varten tarvitaan FET -pari. GreenPAKin nastat 18 ja Pin19 käyttävät nFET: tä. Kun nFET kytketään päälle, se vetää pFET LOW -portin, joka yhdistää tuulettimen +12 V: iin. +12 V.

Vaihe 11: Piirilevyjen suunnittelu

PCB -suunnittelu
PCB -suunnittelu

Suunnittelun prototyyppiä varten koottiin pari piirilevyä. Piirilevy vasemmalla on "Fan Controller", jossa on pyörivä anturi, 12 V: n liitin, SLG46108 GreenPAK ja liitännät FT232H USB - I2C -katkaisukortille. Kaksi oikealla olevaa piirilevyä ovat "Fan Boards", jotka sisältävät SLG46826 GreenPAKit, painikkeet, kytkimet, LEDit ja tuulettimen otsikot.

Jokaisella tuuletinlaudalla on kääritty urosotsikko vasemmalla puolella ja naarasotsikko oikealla puolella, jotta ne voidaan ketjuttaa yhteen. Jokainen puhallinkortti voidaan varustaa kahdella tuulettimella itsenäisesti.

Vaihe 12: C# -sovellus

C# Sovellus
C# Sovellus

C# -sovellus kirjoitettiin liitäntään tuulettimien kanssa FT232H USB-I2C -sillan kautta. Tätä sovellusta voidaan käyttää kunkin puhaltimen taajuuden säätämiseen sovelluksen luomilla I2C -komennoilla.

Sovellus pingottaa kaikki 16 I2C -osoitetta kerran sekunnissa ja täyttää GUI: n olemassa olevilla orjaosoitteilla. Tässä esimerkissä tuuletin 1 (orjaosoite 0001) ja tuuletin 3 (orjaosoite 0011) on liitetty korttiin. Säätöjä kunkin puhaltimen toimintajaksoon voidaan tehdä siirtämällä liukusäädintä tai kirjoittamalla arvo 0-256 liukusäätimen alla olevaan tekstikenttään.

Päätelmät

Tätä rakennetta käyttämällä on mahdollista ohjata itsenäisesti jopa 16 tuuletinta (koska 16 mahdollista I2C -orjaosoitetta) on joko kiertokooderilla tai C# -sovelluksella. On osoitettu, kuinka luodaan PWM -signaali pari offset -laskuria käyttäen ja kuinka lisätä ja vähentää kyseisen signaalin toimintajaksoa ilman kaatumista.

Suositeltava: