Cuprins:

Control DIY PWM pentru ventilatoare PC: 12 pași
Control DIY PWM pentru ventilatoare PC: 12 pași

Video: Control DIY PWM pentru ventilatoare PC: 12 pași

Video: Control DIY PWM pentru ventilatoare PC: 12 pași
Video: speed controller || 12vdc + Soler 2024, Noiembrie
Anonim
Control DIY PWM pentru ventilatoare PC
Control DIY PWM pentru ventilatoare PC

Acest instructabil descrie construirea unui controler PWM complet cu 12 V ventilator PC. Designul poate controla până la 16 ventilatoare cu 3 pini. Designul folosește o pereche de circuite integrate cu semnal mixt configurabile Dialog GreenPAK ™ pentru a controla ciclul de funcționare al fiecărui ventilator. De asemenea, include două moduri de a schimba viteza ventilatorului:

A. cu un codor în cuadratură / rotativ

b. cu o aplicație Windows încorporată în C # care comunică cu GreenPAK prin I2C.

Mai jos am descris pașii necesari pentru a înțelege modul în care cipul GreenPAK a fost programat pentru a crea controlul PWM pentru fanii PC-ului. Cu toate acestea, dacă doriți doar să obțineți rezultatul programării, descărcați software-ul GreenPAK pentru a vizualiza fișierul de proiectare GreenPAK deja finalizat. Conectați kitul de dezvoltare GreenPAK la computer și apăsați programul pentru a crea un IC personalizat pentru controlul PWM pentru fanii de PC.

Pasul 1: Diagrama blocului de sistem

Diagrama blocului sistemului
Diagrama blocului sistemului

Pasul 2: Proiectarea decodorului rotativ SLG46108

SLG46108 Design cu decodor rotativ
SLG46108 Design cu decodor rotativ
SLG46108 Design cu decodor rotativ
SLG46108 Design cu decodor rotativ
SLG46108 Design cu decodor rotativ
SLG46108 Design cu decodor rotativ

Un codificator rotativ este utilizat pentru a mări sau micșora ciclul de lucru al ventilatoarelor manual. Acest dispozitiv emite impulsuri pe ieșirile sale Canal A și Canal B, care sunt la o distanță de 90 °. Consultați AN-1101: Decodor de cuadratură deblocat pentru mai multe informații despre modul în care funcționează un codificator rotativ.

Un decodor rotativ cu ceas poate fi creat folosind un Dialog GreenPAK SLG46108 pentru a procesa semnalele Canal A și Canal B și a le transmite ca impulsuri în sens invers acelor de ceasornic (CCW) și în sensul acelor de ceasornic (CW).

Când Canalul A conduce Canalul B, designul emite un impuls scurt pe CW. Când Canalul B conduce Canalul A, acesta emite un impuls scurt pe CCW

Trei DFF sincronizează intrarea Canal A cu ceasul. În mod similar, întârzierea conductei cu OUT0 setat la două DFF și OUT1 setat la trei DFF creează aceeași funcționalitate pentru canalul B.

Pentru a crea ieșiri CW și CCW utilizați câteva LUT-uri, pentru mai multe informații despre acest design standard de decodor rotativ, vizitați acest site web.

Decodorul rotativ GreenPAK va primi impulsurile de intrare A și B și va emite impulsurile CW și CCW așa cum se arată în Figura 4.

Circuitul după porțile XOR asigură că nu va exista niciodată un impuls CW și un impuls CCW în același timp, permițând orice eroare cu codificatorul rotativ. Întârzierea marginii de cădere de 8 ms pe semnalele CW și CCW îi forțează să rămână ridicate timp de 8 ms plus un ciclu de ceas, care este necesar pentru GreenPAK-urile SLG46826 din aval.

Pasul 3: Proiectare controler ventilator SLG46826

SLG46826 Proiectare controler ventilator
SLG46826 Proiectare controler ventilator

Pasul 4: Generarea PWM cu contoare offset

Generarea PWM cu contoare offset
Generarea PWM cu contoare offset
Generarea PWM cu contoare offset
Generarea PWM cu contoare offset

O pereche de contoare offset cu aceeași perioadă sunt utilizate pentru a genera semnalul PWM. Primul contor setează un DFF, iar al doilea îl resetează, creând un semnal PWM de ciclu de funcționare consistent așa cum se arată în Figura 6 și Figura 7.

CNT6 setează DFF10 și ieșirea inversată a CNT1 resetează DFF10. Pinii 18 și 19 sunt utilizați pentru a transmite semnalul PWM către circuitele externe

Pasul 5: Controlul ciclului de funcționare cu injecție de ceas și omiterea ceasului

Controlul ciclului de funcționare cu injecție de ceas și saltarea ceasului
Controlul ciclului de funcționare cu injecție de ceas și saltarea ceasului
Controlul ciclului de funcționare cu injecție de ceas și saltarea ceasului
Controlul ciclului de funcționare cu injecție de ceas și saltarea ceasului

Controlerul ventilatorului primește semnalele CW și CCW ca intrări de la decodorul rotativ și le utilizează fie pentru a crește, fie pentru a reduce semnalul PWM care controlează viteza ventilatorului. Acest lucru se realizează cu mai multe componente logice digitale.

Ciclul de funcționare trebuie să crească atunci când este recepționat un impuls CW. Acest lucru se realizează prin injectarea unui impuls de ceas suplimentar în blocul CNT6, determinându-l să emită un ciclu de ceas mai devreme decât ar fi avut altfel. Acest proces este prezentat în Figura 8.

CNT1 continuă să fie tactat la o rată constantă, dar CNT6 are injectate câteva ceasuri suplimentare. De fiecare dată când există un ceas suplimentar la contor, acesta își deplasează ieșirea cu o perioadă de ceas spre stânga.

În schimb, pentru a reduce ciclul de funcționare, săriți un impuls de ceas pentru CNT6, așa cum se arată în figura 9. CNT1 este încă în curs de ceas cu o rată constantă și există impulsuri de ceas sărite pentru CNT6, unde contorul nu a fost ceasat atunci când se presupunea la. În acest fel, ieșirea CNT6 este împinsă la dreapta cu o perioadă de ceas la rând, scurtând ciclul de funcționare PWM de ieșire.

Funcționalitatea de injectare a ceasului și saltarea ceasului se realizează cu utilizarea unor elemente logice digitale în cadrul GreenPAK. O pereche de blocuri multifuncționale sunt folosite pentru a crea o pereche de combo-uri cu detector de blocare / margine. LUT0 pe 4 biți este utilizat pentru a mux între semnalul general al ceasului (CLK / 8) și semnalele de injectare a ceasului sau de saltare a ceasului. Această funcționalitate este descrisă mai detaliat în Pasul 7.

Pasul 6: Introducere BUTON

BUTON Intrare
BUTON Intrare

Intrarea BUTON este redusă pentru 20 ms, apoi este utilizată pentru a comuta un zăvor care determină dacă este selectat acest chip special. Dacă este selectat, atunci LUT-ul pe 4 biți trece semnalele de saltare a ceasului sau de injecție. Dacă cipul nu este selectat, atunci LUT-ul pe 4 biți trece pur și simplu semnalul CLK / 8.

Pasul 7: Prevenirea răsturnării ciclului de funcționare

Prevenirea răsturnării ciclului de funcționare
Prevenirea răsturnării ciclului de funcționare
Prevenirea răsturnării ciclului de funcționare
Prevenirea răsturnării ciclului de funcționare
Prevenirea răsturnării ciclului de funcționare
Prevenirea răsturnării ciclului de funcționare

Dispozitivele de blocare RS LUT5 pe 3 biți și LUT3 pe 3 biți sunt utilizate pentru a vă asigura că nu puteți injecta sau sări peste atât de multe ceasuri, încât contoare offset să se rotească. Aceasta pentru a evita ca sistemul să atingă un ciclu de funcționare de 100% și apoi să treacă la un ciclu de funcționare de 1% dacă primește un alt ceas injectat.

Zăvorile RS împiedică acest lucru prin blocarea intrărilor la blocurile multifuncționale atunci când sistemul este la un ciclu de ceas distanță de rulare. O pereche de DFF întârzie semnalele PWM_SET și PWM_nRST cu o perioadă de ceas, așa cum se arată în Figura 11.

O pereche de LUT-uri sunt folosite pentru a crea logica necesară. Dacă ciclul de funcționare este atât de scăzut încât semnalul PWM_SET întârziat apare în același timp cu semnalul PWM_nRST, o scădere suplimentară a ciclului de funcționare va provoca o răsturnare.

În mod similar, dacă se apropie de ciclul maxim de funcționare, astfel încât semnalul PWM_nRST întârziat să apară în același timp cu semnalul PWM_SET, este necesar să se evite orice creștere suplimentară a ciclului de funcționare. În acest caz, întârziați semnalul nRST cu două cicluri de ceas pentru a vă asigura că sistemul nu se răstoarnă de la 99% la 1%.

Pasul 8: Controlul ciclului de funcționare cu I2C

Controlul ciclului de funcționare cu I2C
Controlul ciclului de funcționare cu I2C
Controlul ciclului de funcționare cu I2C
Controlul ciclului de funcționare cu I2C
Controlul ciclului de funcționare cu I2C
Controlul ciclului de funcționare cu I2C

Acest design încorporează un alt mod de a controla ciclul de funcționare, altul decât saltarea ceasului / injectarea ceasului. Un microcontroler extern poate fi folosit pentru a scrie comenzi I2C pe GreenPAK pentru a seta ciclul de funcționare.

Controlarea ciclului de lucru pe I2C necesită controlerului să efectueze o secvență de comandă specifică. Aceste comenzi sunt afișate în ordine în Tabelul 1. Un „x” indică un bit care nu ar trebui să se schimbe, „[” indică un bit START și „]” indică un bit STOP

Blocul PDLY generează un impuls activ scurt scurt pe marginea de cădere a semnalului CLK / 8, care se numește! CLK / 8. Acest semnal este utilizat pentru a ceasura DFF14 la o frecvență constantă. Când I2C_SET crește în mod asincron, următoarea margine ascendentă a! CLK / 8 determină ieșirea DFF14 HIGH, care declanșează CNT5 OneShot. OneShot rulează pentru numărul de cicluri de ceas pe care utilizatorul le-a scris așa cum se specifică în comanda I2C „Scrieți la CNT5” din Tabelul 1. În acest caz, este vorba de 10 cicluri de ceas. OneShot permite oscilatorului de 25 MHz să ruleze exact pentru durata sa și nu mai mult, astfel încât LUT0 pe 3 biți să primească numărul de cicluri de ceas care au fost scrise în CNT5.

Figura 15 prezintă aceste semnale, unde ceasurile roșii sunt cele care sunt trimise către LUT0 pe 3 biți, care le trece în CNT6 (contorul PWM_SET), creând astfel compensarea pentru generarea ciclului de funcționare.

Pasul 9: citirea tahometrului

Citirea tahometrului
Citirea tahometrului
Citirea tahometrului
Citirea tahometrului

Dacă se dorește, utilizatorul poate citi valoarea tahometrului peste I2C pentru a urmări cât de repede se întoarce ventilatorul citind valoarea CNT2. CNT2 este incrementat de fiecare dată când ACMP0H are o margine ascendentă și poate fi resetat asincron cu o comandă I2C. Rețineți că aceasta este o caracteristică opțională, iar pragul ACMP0H va trebui modificat în funcție de specificațiile ventilatorului utilizat.

Pasul 10: Proiectarea circuitului extern

Proiectarea circuitului extern
Proiectarea circuitului extern

Circuitul extern este destul de simplu. Există un buton conectat la Pin6 al GreenPAK pentru a comuta dacă acest dispozitiv este selectat pentru control rotativ și un LED conectat la Pin12 și Pin13 pentru a indica când este selectat dispozitivul.

Deoarece ventilatorul se stinge de 12 V, este necesară o pereche de FET-uri pentru a controla comutarea acestuia. Pin-urile GreenPAK și Pin19 conduc un nFET. Când nFET este pornit, trage poarta pFET LOW, care conectează ventilatorul la +12 V. Când nFET este oprit, poarta PFET este trasă de rezistorul de 1 kΩ, care deconectează ventilatorul de la +12 V.

Pasul 11: Proiectare PCB

Design PCB
Design PCB

Pentru a prototipa designul, au fost asamblate câteva PCB-uri. PCB-ul din stânga este „Fan Controller”, care găzduiește codificatorul rotativ, mufa de 12 V, SLG46108 GreenPAK și conectorii pentru placa FT232H USB to I2C. Cele două PCB-uri din dreapta sunt „Fan Boards”, care conțin SLG46826 GreenPAK, butoane, comutatoare, LED-uri și anteturi de ventilator.

Fiecare placă de ventilator are un antet masculin învelit în partea stângă și un antet feminin în partea dreaptă, astfel încât acestea să poată fi înlănțuite. Fiecare placă de ventilator poate fi populată cu resurse pentru a controla independent doi ventilatori.

Pasul 12: Aplicație C #

Aplicație C #
Aplicație C #

O aplicație C # a fost scrisă pentru a interfața cu plăcile de ventilator prin podul FT232H USB-I2C. Această aplicație poate fi utilizată pentru a regla frecvența fiecărui ventilator cu comenzile I2C generate de aplicație.

Aplicația trimite ping tuturor celor 16 adrese I2C o dată pe secundă și completează GUI cu adresele slave prezente. În acest exemplu Fan 1 (adresa slave 0001) și Fan 3 (adresa slave 0011) conectate la placa. Reglajele individuale ale ciclului de funcționare ale fiecărui ventilator pot fi făcute prin mutarea barei glisante sau prin tastarea unei valori de la 0-256 în caseta de text de sub bara glisantă.

Concluzii

Folosind acest design este posibil să controlați independent până la 16 ventilatoare (deoarece există 16 adrese slave I2C posibile) fie cu un codificator rotativ, fie cu o aplicație C #. S-a demonstrat cum se generează un semnal PWM cu o pereche de contoare offset și cum se mărește și se micșorează ciclul de funcționare al acelui semnal fără răsturnare.

Recomandat: