Indholdsfortegnelse:
- Trin 1: Systemblokdiagram
- Trin 2: SLG46108 Rotary Decoder Design
- Trin 3: SLG46826 Design af ventilatorstyring
- Trin 4: PWM -generation med forskydningstællere
- Trin 5: Duty Cycle Control med urinjektion og urspring
- Trin 6: KNAPP -input
- Trin 7: Forebyggelse af rullecyklus
- Trin 8: Duty Cycle Control med I2C
- Trin 9: Omdrejningstælleraflæsning
- Trin 10: Eksternt kredsløbsdesign
- Trin 11: PCB -design
- Trin 12: C# -applikation
Video: DIY PWM -kontrol til pc -fans: 12 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:26
Denne instruktionsbog beskriver opbygning af en fuldt udstyret 12 V pc-ventilator PWM-controller. Designet kan styre op til 16 3-bens computerblæsere. Designet bruger et par Dialog GreenPAK ™ -konfigurerbare blandede signal-IC'er til at styre hver ventilators driftscyklus. Det inkluderer også to måder at ændre ventilatorens hastighed på:
en. med en kvadratur/roterende encoder
b. med en Windows -applikation indbygget C#, der kommunikerer med GreenPAK gennem I2C.
Nedenfor beskrev vi de nødvendige trin for at forstå, hvordan GreenPAK -chippen er programmeret til at oprette PWM -kontrol til pc -fans. Men hvis du bare vil få resultatet af programmeringen, skal du downloade GreenPAK -software for at se den allerede gennemførte GreenPAK -designfil. Tilslut GreenPAK Development Kit til din computer, og tryk på programmet for at oprette den brugerdefinerede IC til PWM -kontrol til pc -fans.
Trin 1: Systemblokdiagram
Trin 2: SLG46108 Rotary Decoder Design
En roterende encoder bruges til at øge eller reducere ventilatorernes driftscyklus manuelt. Denne enhed udsender pulser på sine kanal A- og kanal B -udgange, der er 90 ° fra hinanden. Se AN-1101: Unlocked Quadrature Decoder for flere oplysninger om, hvordan en roterende encoder fungerer.
En roterende dekoder med ur kan oprettes ved hjælp af en Dialog GreenPAK SLG46108 til at behandle kanal A- og kanal B -signalerne og udsende dem som mod uret (CCW) og med uret (CW) pulser.
Når kanal A leder kanal B, udsender designet en kort puls på CW. Når kanal B fører kanal A, udsender den en kort puls på CCW
Tre DFF'er synkroniserer kanal A -indgangen med uret. På samme måde skaber rørforsinkelsen med OUT0 indstillet til to DFF'er og OUT1 indstillet til tre DFF'er den samme funktionalitet for kanal B.
For at oprette CW- og CCW -udgange skal du bruge et par LUT'er. Besøg dette websted for at få flere oplysninger om dette standard roterende dekoder -design.
GreenPAK Rotary Decoder modtager inputimpulser A og B og udsender CW- og CCW -impulser som vist i figur 4.
Kredsløbet efter XOR -portene sikrer, at der aldrig vil være en CW -puls og en CCW -puls på samme tid, hvilket muliggør enhver fejl med den roterende encoder. De 8 ms faldende kantforsinkelse på CW- og CCW -signalerne tvinger dem til at forblive høje i 8 ms plus en urcyklus, hvilket er nødvendigt for nedstrøms SLG46826 GreenPAK'er.
Trin 3: SLG46826 Design af ventilatorstyring
Trin 4: PWM -generation med forskydningstællere
Et par forskydningstællere med samme periode bruges til at generere PWM -signalet. Den første tæller indstiller en DFF, og den anden nulstiller den, hvilket skaber et konsekvent PWM -signal for driftscyklus som vist i figur 6 og figur 7.
CNT6 indstiller DFF10, og den omvendte output fra CNT1 nulstiller DFF10. Stifterne 18 og 19 bruges til at sende PWM -signalet til eksterne kredsløb
Trin 5: Duty Cycle Control med urinjektion og urspring
Ventilatorstyringen modtager CW- og CCW -signalerne som input fra den roterende dekoder og bruger dem til enten at øge eller reducere PWM -signalet, der styrer blæserhastigheden. Dette opnås med flere digitale logiske komponenter.
Driftscyklussen skal øges, når der modtages en CW -puls. Dette gøres ved at injicere en ekstra urpuls i CNT6 -blokken, hvilket får den til at udsende en urcyklus tidligere, end den ellers ville have. Denne proces er vist i figur 8.
CNT1 får stadig uret med en konstant hastighed, men CNT6 har injiceret et par ekstra ure. Hver gang der er et ekstra ur til tælleren, flytter det sit output en urperiode til venstre.
Omvendt, for at reducere driftscyklussen, skal du springe en urpuls til CNT6 over som vist i figur 9. CNT1 bliver stadig klokket med en konstant hastighed, og der er sprunget over urimpulser for CNT6, hvor tælleren ikke blev klokket, da den skulle til. På denne måde skubbes output fra CNT6 til højre med en urperiode ad gangen, hvilket forkorter output PWM -driftscyklussen.
Urinjektionen og uret springer funktionalitet ud med brug af nogle digitale logiske elementer i GreenPAK. Et par multifunktionsblokke bruges til at oprette et par låse-/kantdetektorkombinationer. 4-bit LUT0 bruges til at mikse mellem det generelle urssignal (CLK/8) og urets indsprøjtning eller uroverspringssignaler. Denne funktionalitet er beskrevet mere detaljeret i trin 7.
Trin 6: KNAPP -input
KNAPPE -indgangen frakobles i 20 ms og bruges derefter til at skifte en lås, der bestemmer, om denne særlige chip er valgt. Hvis det er valgt, passerer 4-bit LUT urets oversprings- eller injektionssignaler. Hvis chippen ikke er valgt, passerer 4-bit LUT simpelthen CLK/8-signalet.
Trin 7: Forebyggelse af rullecyklus
RS-låsene 3-bit LUT5 og 3-bit LUT3 bruges til at sikre, at du ikke kan injicere eller springe så mange ure over, at offset-tællerne vælter. Dette er for at undgå, at systemet når 100 % driftscyklus og derefter ruller over til en 1 % driftscyklus, hvis det modtager endnu et injiceret ur.
RS -låsene forhindrer dette i at ske ved at låse input til multifunktionsblokkene, når systemet er en urcyklus væk fra at vælte. Et par DFF'er forsinker PWM_SET- og PWM_nRST -signalerne med en urperiode som vist i figur 11.
Et par LUT'er bruges til at skabe den nødvendige logik. Hvis driftscyklussen er så lav, at det forsinkede PWM_SET -signal forekommer samtidig med PWM_nRST -signalet, vil et yderligere fald i driftscyklussen forårsage en rollover.
På samme måde, hvis man nærmer sig maksimal driftscyklus, således at det forsinkede PWM_nRST -signal forekommer samtidig med PWM_SET -signalet, er det nødvendigt at undgå yderligere forøgelse af driftscyklussen. I dette tilfælde skal du forsinke nRST -signalet med to urcyklusser for at sikre, at systemet ikke vælter fra 99 % til 1 %.
Trin 8: Duty Cycle Control med I2C
Dette design indeholder en anden måde at styre driftscyklussen på, andet end urspring/urinjektion. En ekstern mikrokontroller kan bruges til at skrive I2C -kommandoer til GreenPAK for at indstille driftscyklussen.
Kontrol af driftscyklussen over I2C kræver, at controlleren udfører en bestemt kommandosekvens. Disse kommandoer vises i rækkefølge i tabel 1. Et "x" angiver en bit, der ikke bør ændres, "[" angiver en START -bit, og "]" angiver en STOP -bit
PDLY -blokken genererer en kort aktiv høj puls på den faldende kant af CLK/8 -signalet, som kaldes! CLK/8. Dette signal bruges til at klokke DFF14 med en konstant frekvens. Når I2C_SET går højt asynkront, får den næste stigende kant af! CLK/8 DFF14 til at udsende HIGH, hvilket udløser CNT5 OneShot. OneShot kører for antallet af urcyklusser, som brugeren skrev som angivet i kommandoen "Skriv til CNT5" I2C i tabel 1. I dette tilfælde er det 10 urcyklusser. OneShot tillader 25 MHz-oscillatoren at køre i nøjagtig sin varighed og ikke længere, så 3-bit LUT0 modtager det antal urcykler, der blev skrevet til CNT5.
Figur 15 viser disse signaler, hvor de røde ure er dem, der sendes til 3-bit LUT0, som sender dem ind i CNT6 (PWM_SET-tælleren), hvilket skaber forskydning for driftscyklusgenerering.
Trin 9: Omdrejningstælleraflæsning
Hvis det ønskes, kan brugeren aflæse omdrejningstællerværdien over I2C for at spore, hvor hurtigt ventilatoren drejer ved at aflæse CNT2 -værdien. CNT2 øges hver gang ACMP0H har en stigende kant og kan nulstilles asynkront med en I2C -kommando. Bemærk, at dette er en valgfri funktion, og tærsklen for ACMP0H skal justeres i henhold til specifikationerne for den særlige blæser, der bruges.
Trin 10: Eksternt kredsløbsdesign
Det eksterne kredsløb er ret simpelt. Der er en trykknap tilsluttet Pin6 på GreenPAK for at skifte, om denne særlige enhed er valgt til rotationsstyring, og en LED tilsluttet Pin12 og Pin13 for at angive, hvornår enheden er valgt.
Da blæseren kører 12 V, er et par FET'er til styring af dens omskiftning påkrævet. GreenPAKs Pin18 og Pin19 driver en nFET. Når nFET er tændt, trækker det porten til pFET LOW, som forbinder blæseren til +12 V. Når nFET er slukket, trækkes porten til PFET op af 1 kΩ modstanden, som afbryder blæseren fra +12 V.
Trin 11: PCB -design
For at prototype designet blev et par printkort samlet. PCB'et til venstre er "Fan Controller", der huser den roterende encoder, 12 V jack, SLG46108 GreenPAK og stik til FT232H USB til I2C breakout board. De to printkort til højre er "Fan Boards", som indeholder SLG46826 GreenPAK'er, trykknapper, kontakter, lysdioder og ventilatorhoveder.
Hvert fanbræt har et indhyllet hanhoved i venstre side og et kvindeligt overskud i højre side, så de kan kobles sammen med en daisy. Hvert fanbræt kan udfyldes med ressourcer til uafhængigt at styre to fans.
Trin 12: C# -applikation
En C# -applikation blev skrevet til grænseflade med ventilatortavlerne via FT232H USB-I2C-broen. Denne applikation kan bruges til at justere frekvensen for hver blæser med I2C -kommandoer, der genereres af applikationen.
Applikationen pinger alle 16 I2C -adresser en gang i sekundet og udfylder GUI'en med de tilstedeværende slaveadresser. I dette eksempel er ventilator 1 (slaveadresse 0001) og ventilator 3 (slaveadresse 0011) forbundet til kortet. Justeringer af hver blæsers individuelle driftscyklus kan foretages ved at flytte skyderen eller ved at indtaste en værdi fra 0-256 i tekstboksen under skyderen.
Konklusioner
Ved hjælp af dette design er det muligt uafhængigt at styre op til 16 blæsere (da der er 16 mulige I2C -slaveadresser) enten med en roterende encoder eller med en C# -applikation. Det er blevet demonstreret, hvordan man genererer et PWM -signal med et par offset -tællere, og hvordan man kan øge og reducere arbejdscyklussen for dette signal uden rollover.
Anbefalede:
PWM Med ESP32 - Dæmpning LED med PWM på ESP 32 Med Arduino IDE: 6 trin
PWM Med ESP32 | Dæmpning af LED med PWM på ESP 32 Med Arduino IDE: I denne instruktion vil vi se, hvordan man genererer PWM -signaler med ESP32 ved hjælp af Arduino IDE & PWM bruges dybest set til at generere analog output fra enhver MCU, og den analoge output kan være alt mellem 0V til 3,3V (i tilfælde af esp32) & fra
LoRa Messenger til to enheder til distancer Op til 8 km: 7 trin
LoRa Messenger til to enheder til afstande Op til 8 km: Tilslut projektet til din bærbare computer eller telefon, og chat derefter mellem enhederne uden internet eller SMS ved hjælp af bare LoRa.Hey, hvad sker der gutter? Akarsh her fra CETech. I dag skal vi lave et projekt, der kan forbindes til din smartphone eller en hvilken som helst
1A til 40A nuværende BOOST -konverter til op til 1000W DC -motor: 3 trin
1A til 40A Current BOOST-konverter til op til 1000W DC-motor: Hej! I denne video lærer du, hvordan du laver et strømforstærkerkredsløb til dine høj ampere DC-motorer op til 1000W og 40 ampere med transistorer og en center-tap-transformer. Selvom, strømmen ved udgangen er meget høj, men spændingen bliver r
Overbevis dig selv om bare at bruge en 12V-til-AC-line inverter til LED-lysstrenge i stedet for at genoprette dem til 12V .: 3 trin
Overbevis dig selv om bare at bruge en 12V-til-AC-line inverter til LED-lysstrenge i stedet for at genoprette dem til 12V .: Min plan var enkel. Jeg ville skære en væg-drevet LED-lysstreng i stykker og derefter genkoble den til at køre 12 volt. Alternativet var at bruge en strømomformer, men vi ved alle, at de er frygtelig ineffektive, ikke? Ret? Eller er de det?
12v til USB Adapter 12v til 5v Transformer (fantastisk til biler): 6 trin
12v til USB Adapter 12v til 5v Transformer (fantastisk til biler): Dette viser dig, hvordan du laver en 12v til USB (5v) adapter. Den mest oplagte anvendelse af dette er til 12v biladaptere, men hvor som helst du har 12v kan du bruge det! Hvis du har brug for 5v til andet end USB, skal du blot springe trinene om tilføjelse af USB -porte over