Sadržaj:

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

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

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

Ovaj Instructable opisuje izgradnju potpuno opremljenog 12W PC ventilatora PWM kontrolera. 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 kontrolu radnog ciklusa svakog ventilatora. Također uključuje dva načina za promjenu brzine ventilatora:

a. sa kvadraturnim/rotacijskim davačem

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

U nastavku smo opisali potrebne korake 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 da biste vidjeli već završenu GreenPAK datoteku za dizajn. Priključite GreenPAK Development Kit na svoje računalo i hit program za stvaranje prilagođenog IC -a za PWM kontrolu za ljubitelje računara.

Korak 1: Sistemski blok dijagram

Sistemski blok dijagram
Sistemski blok dijagram

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č koristi se za ručno povećanje ili smanjenje radnog ciklusa ventilatora. Ovaj uređaj emitira impulse na izlazima kanala A i kanala B koji su udaljeni 90 °. Pogledajte AN-1101: Otključani kvadraturni dekoder za više informacija o načinu rada rotacijskog kodera.

Rotirajući dekoder sa 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).

Kada kanal A vodi kanal B, dizajn emituje kratki impuls na CW. Kada kanal B vodi kanal A, on emituje kratki impuls na CCW

Tri DFF -a sinhroniziraju 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 kreiranje 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.

Strujna kola iza XOR kapija osiguravaju da nikada neće biti CW impulsa i CCW impulsa u isto vrijeme, dopuštajući bilo kakvu grešku s rotacijskim davačem. Kašnjenje padajuće ivice od 8 ms na CW i CCW signalima prisiljava ih da ostanu visoki 8 ms plus jedan ciklus takta, što je neophodno za nizvodne SLG46826 GreenPAK -ove.

Korak 3: Dizajn kontrolera ventilatora SLG46826

SLG46826 Dizajn kontrolera ventilatora
SLG46826 Dizajn kontrolera ventilatora

Korak 4: Generisanje PWM -a sa ofset brojačima

PWM generacija sa ofset brojačima
PWM generacija sa ofset brojačima
PWM generacija sa ofset brojačima
PWM generacija sa ofset brojačima

Par ofset brojača s istim periodom koristi se za generiranje PWM signala. Prvi brojač postavlja DFF, a drugi ga resetira, stvarajući dosljedan PWM signal radnog ciklusa, kao što je prikazano na slikama 6 i 7.

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

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

Kontrola radnog ciklusa sa ubrizgavanjem sata i preskakanjem sata
Kontrola radnog ciklusa sa ubrizgavanjem sata i preskakanjem sata
Kontrola radnog ciklusa sa ubrizgavanjem sata i preskakanjem sata
Kontrola radnog ciklusa sa 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 se mora povećati kada se primi CW impuls. To se postiže ubrizgavanjem dodatnog taktnog impulsa u CNT6 blok, uzrokujući da on izađe za jedan ciklus takta ranije nego što bi inače imao. Ovaj proces prikazan je na slici 8.

CNT1 se i dalje konstantno radi, ali CNT6 ima ubačenih nekoliko dodatnih satova. Svaki put kada postoji dodatni sat do brojača, on pomera izlaz za jedan period ulevo.

Nasuprot tome, da biste smanjili radni ciklus, preskočite taktni impuls 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 kada je trebalo to. Na ovaj način izlaz CNT6 se gura udesno za jedan takt, skraćujući radni ciklus izlaznog PWM -a.

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

Korak 6: ULAZ DUGME

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 CLK/8 signal.

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 želi izbjeći da sustav dostigne 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 tako što zaključavaju ulaze u višenamjenske blokove kada je sistem udaljen jedan ciklus sata od prevrtanja. Par DFF -ova odlaže signale PWM_SET i PWM_nRST za jedan period takta, kao što 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 istovremeno s signalom PWM_SET, potrebno je izbjeći svako daljnje povećanje radnog ciklusa. U ovom slučaju, odgodite nRST signal za dva ciklusa takta kako biste osigurali da se sistem ne prevrne sa 99 % na 1 %.

Korak 8: Kontrola radnog ciklusa sa I2C

Kontrola radnog ciklusa sa I2C
Kontrola radnog ciklusa sa I2C
Kontrola radnog ciklusa sa I2C
Kontrola radnog ciklusa sa I2C
Kontrola radnog ciklusa sa I2C
Kontrola radnog ciklusa sa I2C

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

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

Blok PDLY generira kratki aktivni visoki impuls na padajućoj ivici signala CLK/8, koji se naziva! CLK/8. Taj se signal koristi za okretanje DFF14 na stalnoj frekvenciji. Kad I2C_SET ide visoko asinhrono, 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ćava 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 tahometra

Očitavanje tahometra
Očitavanje tahometra
Očitavanje tahometra
Očitavanje tahometra

Po želji, korisnik može očitati vrijednost tahometra preko I2C kako bi pratio koliko se brzo ventilator okreće čitajući vrijednost CNT2. CNT2 se povećava svaki put kada ACMP0H ima rastuću ivicu i može se asinhrono resetirati pomoću I2C naredbe. 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 dugme povezano sa Pin6 GreenPAK -a za prebacivanje da li je ovaj uređaj izabran za rotaciono upravljanje, a LED dioda povezana sa Pin12 i Pin13 da označi kada je uređaj odabran.

Budući da ventilator radi na 12 V, potreban je par FET -ova za kontrolu njegovog uključivanja. GreenPAK -ovi Pin18 i Pin19 pokreću nFET. Kada je nFET uključen, povlači vrata pFET LOW -a, koji povezuje ventilator na +12 V. Kada 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

PCB Design
PCB Design

Za izradu prototipa dizajna sastavljeno je nekoliko PCB -a. PCB s lijeve strane je "Controller Fan", koji sadrži rotacijski davač, 12 V utičnicu, SLG46108 GreenPAK i konektore za FT232H USB do I2C razvodnu 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 tako da se mogu povezati tratinčicom zajedno. Svaka ploča obožavatelja može se napuniti resursima za samostalnu kontrolu dva ventilatora.

Korak 12: C# aplikacija

C# aplikacija
C# aplikacija

C# aplikacija je napisana za povezivanje sa 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 aplikacija generira.

Aplikacija pinguje svih 16 I2C adresa jednom u sekundi i popunjava GUI sa prisutnim slave adresama. U ovom primjeru ventilator 1 (adresa slave 0001) i ventilator 3 (adresa slave 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 kodera 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čuje se: