Sadržaj:

Uradi sam PWM kontrola za ljubitelje računala: 12 koraka
Uradi sam PWM kontrola za ljubitelje računala: 12 koraka

Video: Uradi sam PWM kontrola za ljubitelje računala: 12 koraka

Video: Uradi sam PWM kontrola za ljubitelje računala: 12 koraka
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Studeni
Anonim
Uradi sam PWM kontrola za ljubitelje računala
Uradi sam PWM kontrola za ljubitelje računala

Ovaj Instructable opisuje izgradnju potpuno opremljenog PWM kontrolera za PC ventilator od 12 V. Dizajn može kontrolirati do 16 3-pinskih ventilatora za računala. Dizajn koristi par Dialog GreenPAK ™ IC-ova sa mješovitim signalom koji se mogu konfigurirati za upravljanje radnim ciklusom svakog ventilatora. Također uključuje dva načina za promjenu brzine ventilatora:

a. s kvadraturnim/rotacijskim enkoderom

b. s Windows aplikacijom izgrađenom u C# koja komunicira s GreenPAK -om putem I2C.

U nastavku smo opisali korake potrebne za razumijevanje kako je GreenPAK čip programiran za stvaranje PWM kontrole za ljubitelje računala. Međutim, ako samo želite dobiti rezultat programiranja, preuzmite GreenPAK softver kako biste vidjeli već dovršenu datoteku za dizajn GreenPAK. Priključite GreenPAK Development Kit na svoje računalo i hit program za stvaranje prilagođenog IC -a za PWM kontrolu za ljubitelje računala.

Korak 1: Dijagram bloka sustava

Blok dijagram sustava
Blok dijagram sustava

Korak 2: Dizajn rotacijskog dekodera SLG46108

Dizajn rotacijskog dekodera SLG46108
Dizajn rotacijskog dekodera SLG46108
Dizajn rotacijskog dekodera SLG46108
Dizajn rotacijskog dekodera SLG46108
Dizajn rotacijskog dekodera SLG46108
Dizajn rotacijskog dekodera SLG46108

Rotacijski davač služi za ručno povećanje ili smanjenje radnog ciklusa ventilatora. Ovaj uređaj emitira impulse na izlazima kanala A i kanala B koji su međusobno udaljeni 90 °. Pogledajte AN-1101: Otključani kvadraturni dekoder za više informacija o načinu rada rotacijskog davača.

Rotirajući dekoder s taktom može se stvoriti pomoću Dialog GreenPAK SLG46108 za obradu signala kanala A i kanala B te ih emitirati kao impulse u smjeru suprotnom od kazaljke na satu (CCW) i u smjeru kazaljke na satu (CW).

Kad kanal A vodi kanal B, dizajn emitira kratki impuls na CW. Kad kanal B vodi kanal A, on emitira kratki impuls na CCW

Tri DFF -a sinkroniziraju ulaz kanala A sa satom. Slično, kašnjenje cijevi s OUT0 postavljenim na dva DFF -a i OUT1 na tri DFF -a stvara istu funkcionalnost za kanal B.

Za stvaranje CW i CCW izlaza upotrijebite nekoliko LUT -ova, za više informacija o ovom standardnom dizajnu rotacijskog dekodera posjetite ovu web stranicu.

Rotacijski dekoder GreenPAK prima ulazne impulse A i B i emitira CW i CCW impulse kao što je prikazano na slici 4.

Strujni krug iza vrata XOR osigurava da nikada neće biti CW i CCW impulsa u isto vrijeme, dopuštajući bilo kakvu pogrešku s okretnim davačem. Odgoda padajućeg ruba od 8 ms na CW i CCW signalima prisiljava ih da ostanu visoki 8 ms plus jedan ciklus takta, što je potrebno za nizvodne SLG46826 GreenPAK -ove.

Korak 3: Dizajn kontrolera ventilatora SLG46826

Dizajn kontrolera ventilatora SLG46826
Dizajn kontrolera ventilatora SLG46826

Korak 4: Generiranje PWM -a s ofsetnim brojačima

PWM generacija s ofset brojačima
PWM generacija s ofset brojačima
PWM generacija s ofset brojačima
PWM generacija s ofset brojačima

Par offset brojača s istim razdobljem koristi se za generiranje PWM signala. Prvi brojač postavlja DFF, a drugi ga poništava stvarajući dosljedan PWM signal radnog ciklusa kako je prikazano na slikama 6 i 7.

CNT6 postavlja DFF10, a obrnuti izlaz CNT1 resetira DFF10. Pinovi 18 i 19 koriste se za izlaz PWM signala u vanjsko kolo

Korak 5: Kontrola radnog ciklusa s ubrizgavanjem sata i preskakanjem sata

Kontrola radnog ciklusa s ubrizgavanjem sata i preskakanjem sata
Kontrola radnog ciklusa s ubrizgavanjem sata i preskakanjem sata
Kontrola radnog ciklusa s ubrizgavanjem sata i preskakanjem sata
Kontrola radnog ciklusa s ubrizgavanjem sata i preskakanjem sata

Kontroler ventilatora prima CW i CCW signale kao ulaze iz rotacijskog dekodera i koristi ih za povećanje ili smanjenje PWM signala koji kontrolira brzinu ventilatora. To se postiže s nekoliko komponenti digitalne logike.

Radni ciklus mora se povećati kada se primi CW impuls. To se postiže ubrizgavanjem dodatnog taktnog impulsa u CNT6 blok, uzrokujući njegov izlaz jedan ciklus sata ranije nego što bi inače imao. Ovaj postupak prikazan je na slici 8.

CNT1 se i dalje konstantno radi, ali CNT6 ima ubačenih nekoliko dodatnih satova. Svaki put kad se na brojaču pojavi dodatni sat, on pomakne svoj izlaz za jedno razdoblje ulijevo.

Nasuprot tome, da biste smanjili radni ciklus, preskočite impuls takta za CNT6 kao što je prikazano na slici 9. CNT1 se i dalje konstantno taktira, a postoje preskočeni impulsi sata za CNT6, gdje se brojač nije taktio kad je trebalo do. Na ovaj način izlaz CNT6 se gura udesno za jedno vrijeme, skraćujući radni ciklus izlaznog PWM -a.

Funkcija ubrizgavanja sata i preskakanja sata izvodi se pomoću nekih digitalnih logičkih elemenata unutar GreenPAK -a. Par višenamjenskih blokova koristi se za stvaranje par kombinacija kombinacija zasuna/detektora ruba. 4-bitni LUT0 koristi se za povezivanje između općeg signala takta (CLK/8) i signala za ubrizgavanje takta ili preskakanje takta. Ova je funkcija detaljnije opisana u koraku 7.

Korak 6: Unos tipkom

DUGME Ulaz
DUGME Ulaz

Ulaz BUTTON se odvaja 20 ms, zatim se koristi za prebacivanje zasuna koji određuje je li odabran ovaj čip. Ako je odabran, tada 4-bitni LUT prenosi signale preskakanja takta ili ubrizgavanja. Ako čip nije odabran, tada 4-bitni LUT jednostavno prenosi signal CLK/8.

Korak 7: Sprječavanje prevrtanja radnog ciklusa

Sprječavanje prevrtanja radnog ciklusa
Sprječavanje prevrtanja radnog ciklusa
Sprječavanje prevrtanja radnog ciklusa
Sprječavanje prevrtanja radnog ciklusa
Sprječavanje prevrtanja radnog ciklusa
Sprječavanje prevrtanja radnog ciklusa

RS zasuni 3-bitni LUT5 i 3-bitni LUT3 koriste se kako bi bili sigurni da ne možete ubrizgati ili preskočiti toliko satova da se brojači pomaka prevrću. Time se izbjegava da sustav dosegne 100 % radni ciklus, a zatim se prebaci na 1 % radni ciklus ako primi još jedan sat ubrizgavanja.

RS zasuni sprječavaju da se to dogodi pričvršćivanjem ulaza u višenamjenske blokove kada je sustav udaljen jedan sat od prevrtanja. Par DFF -ova odgađa signale PWM_SET i PWM_nRST za jedno razdoblje takta kako je prikazano na slici 11.

Par LUT -ova se koristi za stvaranje potrebne logike. Ako je radni ciklus toliko nizak da se odgođeni signal PWM_SET javlja istovremeno s signalom PWM_nRST, daljnje smanjenje radnog ciklusa uzrokovat će prevrtanje.

Slično, ako se približava maksimalnom radnom ciklusu, tako da se odgođeni signal PWM_nRST javlja u isto vrijeme kada i signal PWM_SET, potrebno je izbjeći daljnje povećanje radnog ciklusa. U ovom slučaju, odgodite nRST signal za dva ciklusa takta kako biste osigurali da se sustav ne prevrne s 99 % na 1 %.

Korak 8: Kontrola radnog ciklusa s I2C

Kontrola radnog ciklusa s I2C
Kontrola radnog ciklusa s I2C
Kontrola radnog ciklusa s I2C
Kontrola radnog ciklusa s I2C
Kontrola radnog ciklusa s I2C
Kontrola radnog ciklusa s I2C

Ovaj dizajn uključuje još jedan način upravljanja radnim ciklusom osim preskakanja sata/ubrizgavanja sata. Vanjski mikrokontroler može se koristiti za pisanje I2C naredbi na GreenPAK za postavljanje radnog ciklusa.

Kontrola radnog ciklusa preko I2C zahtijeva da kontroler izvede određeni niz naredbi. Ove naredbe prikazane su redom u Tablici 1. "x" označava bit koji se ne smije mijenjati, "[" označava bit START, a "]" označava bit STOP

Blok PDLY generira kratki aktivni visoki impuls na padajućoj ivici signala CLK/8, koji se naziva! CLK/8. Taj se signal koristi za podešavanje DFF14 na stalnoj frekvenciji. Kad I2C_SET ide visoko asinkrono, sljedeći rastući rub! CLK/8 uzrokuje da DFF14 emitira HIGH, što pokreće CNT5 OneShot. OneShot radi za broj ciklusa takta koje je korisnik napisao kako je navedeno u naredbi "Write to CNT5" I2C u tablici 1. U ovom slučaju to je 10 ciklusa takta. OneShot omogućuje oscilatoru od 25 MHz da radi točno onoliko dugo koliko dugo, tako da 3-bitni LUT0 prima broj ciklusa takta koji su zapisani na CNT5.

Slika 15 prikazuje ove signale, gdje su crveni satovi oni koji se šalju na 3-bitni LUT0, koji ih prenosi u CNT6 (brojač PWM_SET), čime se stvara pomak za generiranje radnog ciklusa.

Korak 9: Očitavanje brojača okretaja

Očitavanje brojača okretaja
Očitavanje brojača okretaja
Očitavanje brojača okretaja
Očitavanje brojača okretaja

Po želji, korisnik može očitati vrijednost tahometra preko I2C kako bi pratio koliko se brzo ventilator okreće čitanjem vrijednosti CNT2. CNT2 se povećava svaki put kad ACMP0H ima rastući rub i može se asinkrono resetirati pomoću naredbe I2C. Imajte na umu da je ovo izborna značajka, a prag ACMP0H morat će se prilagoditi prema specifikacijama određenog ventilatora koji se koristi.

Korak 10: Dizajn vanjskog kruga

Dizajn vanjskog kruga
Dizajn vanjskog kruga

Vanjski krug je prilično jednostavan. Postoji gumb koji je spojen na Pin6 GreenPAK -a za prebacivanje je li ovaj uređaj odabran za rotacijsko upravljanje, a LED spojen na Pin12 i Pin13 označava kada je uređaj odabran.

Budući da ventilator radi od 12 V, potreban je par FET -ova za upravljanje njegovim uključivanjem. GreenPAK -ovi Pin18 i Pin19 pokreću nFET. Kad je nFET uključen, povlači vrata pFET LOW -a, koji povezuje ventilator na +12 V. Kad je nFET isključen, vrata PFET -a se podižu otpornikom od 1 kΩ, koji isključuje ventilator od +12 V.

Korak 11: Dizajn PCB -a

Dizajn PCB -a
Dizajn PCB -a

Za izradu prototipa dizajna sastavljeno je nekoliko PCB -a. PCB s lijeve strane je "Fan Controller", koji sadrži rotacijski davač, 12 V utičnicu, SLG46108 GreenPAK i konektore za FT232H USB na I2C probojnu ploču. Dva PCB -a s desne strane su "ploče ventilatora" koje sadrže SLG46826 GreenPAK -ove, tipke, prekidače, LED diode i zaglavlja ventilatora.

Svaka ploča obožavatelja ima zakrivljeno muško zaglavlje s lijeve strane i žensko zaglavlje s desne strane kako bi se mogli zajedno vezati tratinčicom. Svaka ploča obožavatelja može se napuniti resursima za neovisno upravljanje s dva ventilatora.

Korak 12: C# aplikacija

C# aplikacija
C# aplikacija

C# aplikacija je napisana za povezivanje s pločama ventilatora preko FT232H USB-I2C mosta. Ova se aplikacija može koristiti za podešavanje frekvencije svakog ventilatora pomoću I2C naredbi koje generira aplikacija.

Aplikacija jednom u sekundi pinguje svih 16 I2C adresa i popunjava GUI prisutnim pomoćnim adresama. U ovom primjeru ventilator 1 (adresa slave 0001) i ventilator 3 (adresa pomoćnika 0011) spojeni su na ploču. Podešavanja radnog ciklusa svakog ventilatora pojedinačno mogu se izvršiti pomicanjem klizača ili upisivanjem vrijednosti od 0-256 u okvir za tekst ispod klizača.

Zaključci

Pomoću ovog dizajna moguće je neovisno kontrolirati do 16 ventilatora (budući da postoji 16 mogućih I2C slave adresa) bilo pomoću rotacijskog davača ili pomoću aplikacije C#. Pokazano je kako generirati PWM signal s parom offset brojača, te kako povećati i smanjiti radni ciklus tog signala bez prevrtanja.

Preporučeni: