INHOUDSOPGAWE:

DIY PWM -beheer vir rekenaarwaaiers: 12 stappe
DIY PWM -beheer vir rekenaarwaaiers: 12 stappe

Video: DIY PWM -beheer vir rekenaarwaaiers: 12 stappe

Video: DIY PWM -beheer vir rekenaarwaaiers: 12 stappe
Video: Универсальный регулятор скорости двигателя 4000 Вт 2024, Junie
Anonim
DIY PWM -beheer vir rekenaar -aanhangers
DIY PWM -beheer vir rekenaar -aanhangers

Hierdie Instructable beskryf die bou van 'n volledige 12 V PC fan PWM-beheerder. Die ontwerp kan tot 16 3-pins rekenaarwaaiers beheer. Die ontwerp gebruik 'n paar Dialog GreenPAK ™ -konfigureerbare IC's met gemengde seine om die waaier siklus van elke waaier te beheer. Dit bevat ook twee maniere om die waaier se snelheid te verander:

a. met 'n kwadratuur/roterende encoder

b. met 'n ingeboude C# -program wat deur I2C met die GreenPAK kommunikeer.

Hieronder het ons die nodige stappe beskryf om te verstaan hoe die GreenPAK -chip geprogrammeer is om die PWM -beheer vir PC -aanhangers te skep. As u egter net die resultaat van die programmering wil kry, laai GreenPAK -sagteware af om die reeds voltooide GreenPAK -ontwerplêer te sien. Koppel die GreenPAK Development Kit aan u rekenaar en klik op die program om die persoonlike IC vir PWM -beheer vir PC -aanhangers te skep.

Stap 1: Stelselblokdiagram

Stelselblokdiagram
Stelselblokdiagram

Stap 2: Ontwerp van die roterende dekodeerder SLG46108

SLG46108 Rotary Decoder Design
SLG46108 Rotary Decoder Design
SLG46108 Rotary Decoder Design
SLG46108 Rotary Decoder Design
SLG46108 Rotary Decoder Design
SLG46108 Rotary Decoder Design

'N Draaikodeerder word gebruik om die werksiklus van die waaiers handmatig te verhoog of te verlaag. Hierdie toestel lewer pulse uit op sy kanaal A- en kanaal B -uitsette wat 90 ° uitmekaar is. Sien AN-1101: Unclocked Quadrature Decoder vir meer inligting oor hoe 'n roterende encoder werk.

'N Draaiende dekodeerder met 'n klok kan met behulp van 'n Dialog GreenPAK SLG46108 geskep word om die kanaal A- en kanaal B -seine te verwerk en uit te voer as kloksgewys (CCW) en kloksgewys (CW) pulse.

As kanaal A kanaal B lei, gee die ontwerp 'n kort polsslag op CW. As kanaal B kanaal A lei, lewer dit 'n kort polsslag op CCW

Drie DFF's sinchroniseer die kanaal A -invoer met die klok. Net so skep die pypvertraging met OUT0 op twee DFF's en OUT1 op drie DFF's dieselfde funksie vir kanaal B.

Besoek hierdie webwerf vir meer inligting oor hierdie standaard roterende dekodeerderontwerp om CW- en CCW -uitsette te skep.

Die GreenPAK Rotary Decoder ontvang insetpulse A en B en stuur die CW- en CCW -pulse uit soos in Figuur 4 getoon.

Die stroombane na die XOR -hekke verseker dat daar nooit 'n CW -puls en 'n CCW -puls op dieselfde tyd is nie, wat enige fout met die draaikodeerder moontlik maak. Die vertraging van 8 ms op die CW- en CCW -seine dwing hulle om 8 ms plus een klok siklus hoog te bly, wat nodig is vir die stroomaf SLG46826 GreenPAK's.

Stap 3: Ontwerp van die waaierbeheerder SLG46826

Ontwerp van die waaierbeheer SLG46826
Ontwerp van die waaierbeheer SLG46826

Stap 4: PWM -generasie met offset -tellers

PWM -generasie met offset -tellers
PWM -generasie met offset -tellers
PWM -generasie met offset -tellers
PWM -generasie met offset -tellers

'N Paar offset -tellers met dieselfde tydperk word gebruik om die PWM -sein te genereer. Die eerste toonbank stel 'n DFF in, en die tweede stel dit terug, wat 'n konsekwente PWM -sein van die siklus skep, soos getoon in figuur 6 en figuur 7.

CNT6 stel DFF10 in en die omgekeerde uitset van CNT1 stel DFF10 terug. Spelde 18 en 19 word gebruik om die PWM -sein na eksterne stroombane uit te voer

Stap 5: Dienssiklusbeheer met klokinspuiting en oorskakeling van die klok

Dienssiklusbeheer met klokinspuiting en oorslaan van horlosies
Dienssiklusbeheer met klokinspuiting en oorslaan van horlosies
Dienssiklusbeheer met klokinspuiting en oorslaan van horlosies
Dienssiklusbeheer met klokinspuiting en oorslaan van horlosies

Die waaierbeheer ontvang die CW- en CCW -seine as insette van die roterende dekodeerder en gebruik dit om die PWM -sein wat die waaierspoed beheer, te verhoog of te verlaag. Dit word bereik met verskeie digitale logika -komponente.

Die werksiklus moet toeneem wanneer 'n CW -pols ontvang word. Dit word gedoen deur 'n ekstra klokpuls in die CNT6 -blok in te spuit, wat veroorsaak dat dit een kloksiklus vroeër lewer as wat dit andersins sou doen. Hierdie proses word in figuur 8 getoon.

CNT1 word steeds teen 'n konstante tempo geklok, maar CNT6 laat 'n paar ekstra horlosies toe. Elke keer as daar 'n ekstra horlosie na die toonbank is, verskuif dit sy uitset een klokperiode na links.

Omgekeerd, om die dienssiklus te verlaag, slaan 'n klokpuls vir CNT6 oor soos getoon in figuur 9. CNT1 word steeds teen 'n konstante tempo geklok, en daar word klokpulse vir CNT6 oorgeslaan, waar die toonbank nie geklok het toe dit veronderstel was nie. aan. Op hierdie manier word die uitset van CNT6 met een kloktyd per keer na regs gedruk, wat die PWM -dienssiklus van die uitvoer verkort.

Die funksie van die inspuiting en die oorslaan van die klok word uitgevoer met behulp van enkele digitale logiese elemente in die GreenPAK. 'N Paar multifunksionele blokke word gebruik om 'n paar grendel-/randdetektorkombinasies te skep. 4-bis LUT0 word gebruik om tussen die algemene kloksignaal (CLK/8) en die spuitklok van die klok of seine oor te slaan. Hierdie funksie word in stap 7 in meer detail beskryf.

Stap 6: KNOP INVOER

KNOP INVOER
KNOP INVOER

Die KNOP -invoer word vir 20 ms afgesper en dan gebruik om 'n grendel te skakel wat bepaal of hierdie spesifieke chip gekies is. As dit gekies is, slaag die 4-bis LUT deur die klok se oorslaan- of inspuitingsseine. As die chip nie gekies is nie, gee die 4-bis LUT eenvoudig die CLK/8-sein deur.

Stap 7: Voorkoming van die omskakeling van dienssiklus

Voorkoming van omskakeling van dienssiklus
Voorkoming van omskakeling van dienssiklus
Voorkoming van omskakeling van dienssiklus
Voorkoming van omskakeling van dienssiklus
Voorkoming van omskakeling van dienssiklus
Voorkoming van omskakeling van dienssiklus

Die RS-grendels 3-bis LUT5 en 3-bit LUT3 word gebruik om seker te maak dat u nie soveel horlosies kan inspuit of oorslaan dat die offset-tellers omdraai nie. Dit is om te verhoed dat die stelsel 'n 100 % -siklus bereik en dan na 'n 1 % -siklusloop oorgaan as dit 'n ander ingespuitte horlosie ontvang.

Die RS -grendels verhoed dat dit gebeur deur die insette aan die multifunksionele blokke vas te hou as die stelsel 'n siklus van 'n enkele siklus wegrol. 'N Paar DFF's vertraag die PWM_SET- en PWM_nRST -seine met een klokperiode soos getoon in figuur 11.

'N Paar LUT's word gebruik om die nodige logika te skep. As die werksiklus so laag is dat die vertraagde PWM_SET sein op dieselfde tyd as die PWM_nRST sein voorkom, sal 'n verdere afname in die werksiklus 'n omrol veroorsaak.

Op dieselfde manier, as die maksimum insetsiklus nader, sodat die vertraagde PWM_nRST -sein op dieselfde tyd as die PWM_SET -sein plaasvind, is dit nodig om verdere verhoging van die dienssiklus te vermy. In hierdie geval, vertraag die nRST -sein met twee kloksiklusse om te verseker dat die stelsel nie van 99 % na 1 % rol nie.

Stap 8: Dienssiklusbeheer met I2C

Dienssiklusbeheer met I2C
Dienssiklusbeheer met I2C
Dienssiklusbeheer met I2C
Dienssiklusbeheer met I2C
Dienssiklusbeheer met I2C
Dienssiklusbeheer met I2C

Hierdie ontwerp bevat 'n ander manier om die dienssiklus te beheer, behalwe om die klok oor te slaan/die inspuiting van die klok. 'N Eksterne mikrobeheerder kan gebruik word om I2C -opdragte aan die GreenPAK te skryf om die dienssiklus in te stel.

Om die dienssiklus oor I2C te beheer, moet die beheerder 'n spesifieke opdragvolgorde uitvoer. Hierdie opdragte word in volgorde in tabel 1 getoon. 'N "x" dui 'n bietjie aan wat nie moet verander nie, "[" dui 'n START -bit aan, en'] 'dui op 'n STOP -bit

Die PDLY -blok genereer 'n kort aktiewe hoë polsslag op die valrand van die CLK/8 -sein, wat genoem word! CLK/8. Dit sein word gebruik om DFF14 op 'n konstante frekwensie te klok. As I2C_SET asynchroon hoog gaan, veroorsaak die volgende stygende rand van! CLK/8 dat DFF14 HOOG uitvoer, wat die CNT5 OneShot veroorsaak. Die OneShot loop vir die aantal kloksiklusse wat die gebruiker geskryf het soos gespesifiseer in die "Skryf na CNT5" I2C -opdrag in tabel 1. In hierdie geval is dit 10 kloksiklusse. Die OneShot laat die 25 MHz-ossillator toe om vir presies sy tydsduur te werk en nie langer nie, sodat 3-bis LUT0 die aantal kloksiklusse ontvang wat na CNT5 geskryf is.

Figuur 15 toon hierdie seine, waar die rooi horlosies die een is wat na 3-bis LUT0 gestuur word, wat dit na CNT6 (die PWM_SET-teller) stuur, en sodoende 'n afwyking vir die pligsiklusopwekking skep.

Stap 9: Toerentellerlesing

Toerenteller Lees
Toerenteller Lees
Toerenteller Lees
Toerenteller Lees

Indien nodig, kan die gebruiker die toerentellerwaarde oor I2C lees om te kyk hoe vinnig die waaier draai deur die CNT2 -waarde te lees. CNT2 word verhoog elke keer as ACMP0H 'n stygende rand het, en kan asynchroon herstel word met 'n I2C -opdrag. Let daarop dat dit 'n opsionele funksie is en dat die drempel van ACMP0H aangepas moet word volgens die spesifikasies van die spesifieke waaier wat gebruik word.

Stap 10: Ontwerp van eksterne kringe

Eksterne stroombaanontwerp
Eksterne stroombaanontwerp

Die eksterne kring is redelik eenvoudig. Daar is 'n drukknoppie gekoppel aan Pin6 van die GreenPAK om aan te skakel of hierdie spesifieke toestel vir draaibestuur gekies is, en 'n LED wat aan Pin12 en Pin13 gekoppel is om aan te dui wanneer die toestel gekies is.

Aangesien die waaier 12 V loop, is 'n paar VOO's nodig om die skakelaar te beheer. Die GreenPAK se Pin18 en Pin19 dryf 'n nFET. As die nFET aangeskakel word, trek dit die hek van die pFET LOW, wat die waaier met +12 V. verbind. vanaf +12 V.

Stap 11: PCB -ontwerp

PCB ontwerp
PCB ontwerp

Om die ontwerp te prototipe, is 'n paar PCB's saamgestel. Die PCB aan die linkerkant is die "Fan Controller", wat die draaikodeerder, 12 V -aansluiting, SLG46108 GreenPAK en verbindings vir die FT232H USB na I2C -uitbreidingskaart huisves. Die twee PCB's aan die regterkant is "Fan Boards", wat die SLG46826 GreenPAK's, drukknoppies, skakelaars, LED's en waaieropskrifte bevat.

Elke waaierbord het 'n omhulde manlike kop aan die linkerkant en 'n vroulike kop aan die regterkant, sodat hulle aan 'n madeliefie vasgeketting kan word. Elke waaierbord kan gevul word met hulpbronne om twee waaiers onafhanklik te beheer.

Stap 12: C# -toepassing

C# Aansoek
C# Aansoek

'N C# -program is geskryf om met die waaierborde deur die FT232H USB-I2C-brug te koppel. Hierdie toepassing kan gebruik word om die frekwensie van elke waaier aan te pas met I2C -opdragte wat deur die toepassing gegenereer word.

Die toepassing ping elke 16 I2C -adresse een keer per sekonde en vul die GUI met die slawe -adresse wat teenwoordig is. In hierdie voorbeeld waaier 1 (slawe -adres 0001) en waaier 3 (slawe -adres 0011) wat aan die bord gekoppel is. Aanpassings aan die werksiklus van elke waaier individueel kan gemaak word deur die skuifbalk te skuif of deur 'n waarde van 0-256 in die teksvak onder die skuifbalk in te tik.

Gevolgtrekkings

Deur hierdie ontwerp te gebruik, is dit moontlik om tot 16 waaiers onafhanklik te bestuur (aangesien daar 16 moontlike I2C -slawe -adresse is) óf met 'n roterende encoder óf met 'n C# -toepassing. Daar is gedemonstreer hoe om 'n PWM -sein met 'n paar offset -tellers te genereer, en hoe om die werksiklus van die sein te verhoog en te verminder sonder om te rol.

Aanbeveel: