Satura rādītājs:

DIY PWM vadība datoru ventilatoriem: 12 soļi
DIY PWM vadība datoru ventilatoriem: 12 soļi

Video: DIY PWM vadība datoru ventilatoriem: 12 soļi

Video: DIY PWM vadība datoru ventilatoriem: 12 soļi
Video: PS3 #2: Ressurecting the impossable! | EPIC rollercoaster repair that nearly broke me. 2024, Jūlijs
Anonim
DIY PWM vadība datoru ventilatoriem
DIY PWM vadība datoru ventilatoriem

Šajā pamācībā ir aprakstīts pilnvērtīga 12 V datora ventilatora PWM kontroliera izveide. Dizains var vadīt līdz 16 3-pin datoru ventilatoriem. Dizains izmanto pāris Dialog GreenPAK ™ konfigurējamus jaukta signāla IC, lai kontrolētu katra ventilatora darba ciklu. Tas ietver arī divus veidus, kā mainīt ventilatora ātrumu:

a. ar kvadrātisko/rotējošo kodētāju

b. ar iebūvētu Windows lietojumprogrammu C#, kas sazinās ar GreenPAK, izmantojot I2C.

Tālāk mēs aprakstījām darbības, kas vajadzīgas, lai saprastu, kā GreenPAK mikroshēma ir ieprogrammēta, lai izveidotu PWM vadību datoru ventilatoriem. Tomēr, ja vēlaties tikai iegūt programmēšanas rezultātu, lejupielādējiet GreenPAK programmatūru, lai apskatītu jau pabeigto GreenPAK dizaina failu. Pievienojiet GreenPAK attīstības komplektu datoram un nospiediet programmu, lai izveidotu pielāgotu IC PWM vadībai datoru faniem.

1. darbība: sistēmas bloķēšanas shēma

Sistēmas bloku diagramma
Sistēmas bloku diagramma

2. darbība: rotācijas dekodētāja dizains SLG46108

Rotācijas dekodētāja dizains SLG46108
Rotācijas dekodētāja dizains SLG46108
Rotācijas dekodētāja dizains SLG46108
Rotācijas dekodētāja dizains SLG46108
Rotācijas dekodētāja dizains SLG46108
Rotācijas dekodētāja dizains SLG46108

Rotējošo kodētāju izmanto, lai manuāli palielinātu vai samazinātu ventilatoru darba ciklu. Šī ierīce izvada impulsus no A un B kanāla izejām, kas atrodas 90 ° attālumā viens no otra. Skatiet AN-1101: Atbloķēts kvadratūras dekodētājs, lai iegūtu papildinformāciju par rotējošā kodētāja darbību.

Pulksteņveida rotējošu dekodētāju var izveidot, izmantojot Dialog GreenPAK SLG46108, lai apstrādātu A un B kanāla signālus un izvadītu tos pretēji pulksteņrādītāja virzienam (CCW) un pulksteņrādītāja virzienam (CW).

Kad A kanāls vada B kanālu, dizains izvada īsu impulsu CW. Kad B kanāls vada A kanālu, tas CCW izvada īsu impulsu

Trīs DFF sinhronizē A kanāla ieeju ar pulksteni. Līdzīgi caurules aizkave ar OUT0 ir iestatīta uz diviem DFF un OUT1 uz trim DFF rada tādu pašu funkcionalitāti B kanālam.

Lai izveidotu CW un CCW izejas, izmantojiet dažus LUT, lai iegūtu papildinformāciju par šo standarta rotējošā dekodētāja dizainu, apmeklējiet šo vietni.

Rotācijas dekodētājs GreenPAK saņems ievades impulsus A un B un izvadīs CW un CCW impulsus, kā parādīts 4. attēlā.

Shēma pēc XOR vārtiem nodrošina, ka nekad nebūs CW impulsa un CCW impulsa vienlaikus, pieļaujot jebkādas kļūdas ar rotējošo kodētāju. CW un CCW signālu krītošās malas aizkavēšanās 8 ms liek tiem palikt augstiem 8 ms plus viens pulksteņa cikls, kas nepieciešams pakārtotajiem SLG46826 GreenPAK.

3. darbība: SLG46826 ventilatora kontroliera dizains

SLG46826 Ventilatora kontrollera dizains
SLG46826 Ventilatora kontrollera dizains

4. solis: PWM ģenerēšana ar nobīdes skaitītājiem

PWM ģenerēšana ar nobīdes skaitītājiem
PWM ģenerēšana ar nobīdes skaitītājiem
PWM ģenerēšana ar nobīdes skaitītājiem
PWM ģenerēšana ar nobīdes skaitītājiem

PWM signāla ģenerēšanai tiek izmantots nobīdes skaitītāju pāris ar tādu pašu periodu. Pirmais skaitītājs nosaka DFF, bet otrais to atiestata, izveidojot konsekventu darba cikla PWM signālu, kā parādīts 6. un 7. attēlā.

CNT6 nosaka DFF10, un CNT1 apgrieztā izeja atiestata DFF10. Tapas 18 un 19 tiek izmantotas, lai izvadītu PWM signālu ārējai shēmai

5. solis: darba cikla kontrole ar pulksteņa iesmidzināšanu un pulksteņa izlaišanu

Darba cikla kontrole ar pulksteņa iesmidzināšanu un pulksteņa izlaišanu
Darba cikla kontrole ar pulksteņa iesmidzināšanu un pulksteņa izlaišanu
Darba cikla kontrole ar pulksteņa iesmidzināšanu un pulksteņa izlaišanu
Darba cikla kontrole ar pulksteņa iesmidzināšanu un pulksteņa izlaišanu

Ventilatora regulators uztver CW un CCW signālus kā ieejas no rotējošā dekodētāja un izmanto tos, lai palielinātu vai samazinātu PWM signālu, kas kontrolē ventilatora ātrumu. Tas tiek panākts ar vairākiem digitālās loģikas komponentiem.

Darba ciklam ir jāpalielinās, kad tiek saņemts CW impulss. Tas tiek darīts, CNT6 blokā ievadot papildu pulksteņa impulsu, liekot tam izvadīt vienu pulksteņa ciklu agrāk, nekā tas būtu citādi. Šis process ir parādīts 8. attēlā.

CNT1 joprojām tiek fiksēts nemainīgā ātrumā, bet CNT6 ir ievadīti pāris papildu pulksteņi. Katru reizi, kad skaitītājam ir papildu pulkstenis, tas pārslēdz savu produkciju par vienu pulksteņa periodu pa kreisi.

Un otrādi, lai samazinātu darba ciklu, izlaidiet CNT6 pulksteņa impulsu, kā parādīts 9. attēlā. uz. Tādā veidā CNT6 izeja tiek pagriezta pa labi par vienu pulksteņa periodu vienlaikus, saīsinot izejas PWM darba ciklu.

Pulksteņa ievadīšanas un pulksteņa izlaišanas funkcija tiek veikta, izmantojot dažus GreenPAK digitālos loģikas elementus. Pāris daudzfunkcionālu bloku tiek izmantoti, lai izveidotu fiksatoru/malu detektoru kombināciju pāri. 4 bitu LUT0 izmanto, lai sajauktu starp vispārējo pulksteņa signālu (CLK/8) un pulksteņa ievadīšanas vai pulksteņa izlaišanas signāliem. Šī funkcionalitāte ir sīkāk aprakstīta 7. darbībā.

6. darbība: pogas ievade

POGA Ievads
POGA Ievads

BUTTON ievade tiek atslēgta uz 20 ms, pēc tam tiek izmantota, lai pārslēgtu fiksatoru, kas nosaka, vai ir izvēlēta šī konkrētā mikroshēma. Ja tas ir izvēlēts, 4 bitu LUT nodod pulksteņa izlaišanas vai injekcijas signālus. Ja mikroshēma nav izvēlēta, tad 4 bitu LUT vienkārši nodod CLK/8 signālu.

7. darbība: darba cikla apgāšanās novēršana

Darba cikla apgāšanās novēršana
Darba cikla apgāšanās novēršana
Darba cikla apgāšanās novēršana
Darba cikla apgāšanās novēršana
Darba cikla apgāšanās novēršana
Darba cikla apgāšanās novēršana

RS fiksatori 3 bitu LUT5 un 3 bitu LUT3 tiek izmantoti, lai pārliecinātos, ka nevarat injicēt vai izlaist tik daudz pulksteņu, lai nobīdes skaitītāji apgāztos. Tas nepieciešams, lai izvairītos no tā, ka sistēma sasniedz 100 % darba ciklu un pēc tam pāriet uz 1 % darba ciklu, ja tā saņem citu iesmidzinātu pulksteni.

RS aizbīdņi to novērš, saslēdzot ieejas daudzfunkcionālajos blokos, kad sistēma atrodas viena pulksteņa cikla attālumā no apgāšanās. DFF pāris aizkavē PWM_SET un PWM_nRST signālus par vienu pulksteņa periodu, kā parādīts 11. attēlā.

Lai izveidotu nepieciešamo loģiku, tiek izmantoti LUT pāri. Ja darba cikls ir tik zems, ka aizkavētais PWM_SET signāls parādās vienlaikus ar PWM_nRST signālu, turpmāks darba cikla samazinājums izraisīs apgāšanos.

Līdzīgi, ja tuvojas maksimālajam darba ciklam, ja aizkavētais PWM_nRST signāls rodas vienlaikus ar PWM_SET signālu, jāizvairās no turpmāka darba cikla palielināšanas. Šajā gadījumā aizkavējiet nRST signālu par diviem pulksteņa cikliem, lai nodrošinātu, ka sistēma neapgāžas no 99 % uz 1 %.

8. darbība: darba cikla kontrole ar I2C

Darba cikla kontrole ar I2C
Darba cikla kontrole ar I2C
Darba cikla kontrole ar I2C
Darba cikla kontrole ar I2C
Darba cikla kontrole ar I2C
Darba cikla kontrole ar I2C

Šī konstrukcija ietver citu veidu, kā kontrolēt darba ciklu, izņemot pulksteņa izlaišanu/pulksteņa ievadīšanu. Lai iestatītu darba ciklu, GreenPAK var izmantot ārēju mikrokontrolleri, lai rakstītu I2C komandas.

Lai kontrolētu darba ciklu, izmantojot I2C, kontrolierim ir jāveic noteikta komandu secība. Šīs komandas ir parādītas 1. tabulā. "X" norāda bitu, kuram nevajadzētu mainīties, "[" norāda START bitu un "]" norāda STOP bitu

PDLY bloks ģenerē īsu aktīvu augstu impulsu uz CLK/8 signāla krītošās malas, ko sauc par! CLK/8. Šis signāls tiek izmantots, lai noskanētu DFF14 vienmērīgā frekvencē. Kad I2C_SET paaugstinās asinhroni, nākamā! CLK/8 pieaugošā mala izraisa DFF14 izvadi HIGH, kas aktivizē CNT5 OneShot. OneShot darbojas pēc pulksteņa ciklu skaita, ko lietotājs rakstīja, kā norādīts 1. tabulas komandā "Rakstīt uz CNT5" I2C. Šajā gadījumā tas ir 10 pulksteņa cikli. OneShot ļauj 25 MHz oscilatoram darboties tieši tā ilgumā un ne ilgāk, lai 3 bitu LUT0 saņemtu CNT5 ierakstīto pulksteņa ciklu skaitu.

15. attēlā parādīti šie signāli, kur sarkanie pulksteņi ir tie, kas tiek nosūtīti uz 3 bitu LUT0, kas tos nodod CNT6 (PWM_SET skaitītājs), tādējādi radot nobīdi darba cikla ģenerēšanai.

9. solis: tahometra nolasīšana

Tahometra rādījumi
Tahometra rādījumi
Tahometra rādījumi
Tahometra rādījumi

Ja vēlaties, lietotājs var nolasīt tahometra vērtību, izmantojot I2C, lai izsekotu ventilatora griešanās ātrumu, nolasot CNT2 vērtību. CNT2 tiek palielināts katru reizi, kad ACMP0H ir augoša mala, un to var asinhroni atiestatīt ar komandu I2C. Ņemiet vērā, ka šī ir neobligāta funkcija, un ACMP0H slieksnis būs jāpielāgo atbilstoši konkrētā izmantotā ventilatora specifikācijām.

10. solis: Ārējās shēmas dizains

Ārējās shēmas dizains
Ārējās shēmas dizains

Ārējā ķēde ir diezgan vienkārša. Ir spiedpoga, kas savienota ar GreenPAK 6. taustiņu, lai pārslēgtu, vai šī konkrētā ierīce ir izvēlēta rotējošai vadībai, un LED, kas savienota ar Pin12 un Pin13, lai norādītu, kad ierīce ir atlasīta.

Tā kā ventilators darbojas ar 12 V spriegumu, ir nepieciešams pāris FET, lai kontrolētu tā pārslēgšanos. GreenPAK pin18 un Pin19 vada nFET. Kad nFET ir ieslēgts, tas pavelk pFET LOW vārtus, kas savieno ventilatoru ar +12 V. Kad nFET ir izslēgts, PFET vārtus pavelk uz augšu 1 kΩ rezistors, kas atvieno ventilatoru no +12 V.

11. solis: PCB dizains

PCB dizains
PCB dizains

Lai izstrādātu dizaina prototipu, tika samontēti pāris PCB. Kreisajā pusē esošā PCB ir "ventilatora kontrolieris", kurā atrodas rotējošais kodētājs, 12 V ligzda, SLG46108 GreenPAK un savienotāji FT232H USB līdz I2C sadalīšanas plāksnei. Abas labās puses PCB ir "ventilatoru plates", kurās ir SLG46826 GreenPAK, spiedpogas, slēdži, gaismas diodes un ventilatora galvenes.

Katrā fanu padomē kreisajā pusē ir ietverta vīriešu galvene, bet labajā pusē-sieviešu galviņa, lai tās varētu sasaistīt kopā. Katru ventilatoru padomi var aizpildīt ar resursiem, lai neatkarīgi kontrolētu divus ventilatorus.

12. solis: C# lietojumprogramma

C# Pieteikums
C# Pieteikums

Izmantojot FT232H USB-I2C tiltu, tika izveidota lietojumprogramma C#, lai izveidotu saskarni ar ventilatoru dēļiem. Šo lietojumprogrammu var izmantot, lai pielāgotu katra ventilatora frekvenci, izmantojot I2C komandas, kuras ģenerē lietojumprogramma.

Lietojumprogramma vienu reizi sekundē pinga visas 16 I2C adreses un aizpilda GUI ar esošajām vergu adresēm. Šajā piemērā pie paneļa ir pievienots ventilators 1 (verga adrese 0001) un ventilators 3 (verga adrese 0011). Katra ventilatora darba ciklu var pielāgot atsevišķi, pārvietojot slīdni vai ievadot vērtību no 0 līdz 256 tekstlodziņā zem slīdņa.

Secinājumi

Izmantojot šo dizainu, ir iespējams patstāvīgi vadīt līdz 16 ventilatoriem (jo ir 16 iespējamās I2C vergu adreses) vai nu ar rotējošu kodētāju, vai ar C# lietojumprogrammu. Ir pierādīts, kā ģenerēt PWM signālu ar pāris nobīdes skaitītājiem un kā palielināt un samazināt šī signāla darba ciklu bez apgāšanās.

Ieteicams: