Innehållsförteckning:
- Steg 1: Systemblockdiagram
- Steg 2: SLG46108 Rotary Decoder Design
- Steg 3: SLG46826 Design av fläktkontroller
- Steg 4: PWM -generation med förskjutningsräknare
- Steg 5: Duty Cycle Control med klockinjektion och klockhoppning
- Steg 6: KNAPP -ingång
- Steg 7: Förhindra rullning av arbetscykeln
- Steg 8: Driftcykelkontroll med I2C
- Steg 9: Varvräknare
- Steg 10: Extern kretsdesign
- Steg 11: PCB -design
- Steg 12: C# -applikation
Video: DIY PWM -kontroll för PC -fläktar: 12 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:41
Denna instruktion beskriver att bygga en fullt utrustad 12 V PC-fläkt PWM-styrenhet. Designen kan styra upp till 16 3-stifts datorfläktar. Designen använder ett par Dialog GreenPAK ™ -konfigurerbara blandade IC: er för att styra varje fläkts arbetscykel. Det innehåller också två sätt att ändra fläktens hastighet:
a. med en kvadratur/roterande pulsgivare
b. med ett Windows -program inbyggt C# som kommunicerar med GreenPAK via I2C.
Nedan beskriver vi de steg som behövs för att förstå hur GreenPAK -chipet har programmerats för att skapa PWM -kontroll för PC -fläktar. Men om du bara vill få resultatet av programmeringen, ladda ner GreenPAK -programvara för att se den redan färdiga GreenPAK -designfilen. Anslut GreenPAK Development Kit till din dator och tryck på programmet för att skapa anpassad IC för PWM -kontroll för PC -fläktar.
Steg 1: Systemblockdiagram
Steg 2: SLG46108 Rotary Decoder Design
En roterande kodare används för att öka eller minska fläktarnas driftscykel manuellt. Denna enhet matar ut pulser på sina kanal A- och kanal B -utgångar som är 90 ° från varandra. Se AN-1101: Unclocked Quadrature Decoder för mer information om hur en roterande kodare fungerar.
En klockad roterande avkodare kan skapas med en Dialog GreenPAK SLG46108 för att bearbeta kanal A- och kanal B -signalerna och mata ut dem som moturs (CCW) och medurs (CW) pulser.
När kanal A leder kanal B, ger designen en kort puls på CW. När kanal B leder kanal A matar den ut en kort puls på CCW
Tre DFF: er synkroniserar kanal A -ingången med klockan. På samma sätt skapar rörfördröjningen med OUT0 inställd på två DFF och OUT1 inställd på tre DFF samma funktion för kanal B.
För att skapa CW- och CCW -utgångar, använd några LUT, för mer information om denna standard roterande dekoder -design, besök denna webbplats.
GreenPAK Rotary Decoder tar emot ingångspulser A och B och matar ut CW- och CCW -pulserna som visas i figur 4.
Kretsen efter XOR -grindarna säkerställer att det aldrig kommer att finnas en CW -puls och en CCW -puls samtidigt, vilket möjliggör eventuella fel med den roterande givaren. 8 ms fallande kantfördröjning på CW- och CCW -signalerna tvingar dem att hålla sig höga i 8 ms plus en klockcykel, vilket är nödvändigt för nedströms SLG46826 GreenPAK.
Steg 3: SLG46826 Design av fläktkontroller
Steg 4: PWM -generation med förskjutningsräknare
Ett par förskjutningsräknare med samma period används för att generera PWM -signalen. Den första räknaren ställer in en DFF, och den andra återställer den, vilket skapar en konsekvent PWM -signal för arbetscykeln som visas i figur 6 och figur 7.
CNT6 ställer in DFF10 och den inverterade utsignalen från CNT1 återställer DFF10. Stift 18 och 19 används för att mata ut PWM -signalen till externa kretsar
Steg 5: Duty Cycle Control med klockinjektion och klockhoppning
Fläktstyrenheten tar emot CW- och CCW -signalerna som ingångar från den roterande avkodaren och använder dem för att antingen öka eller minska PWM -signalen som styr fläkthastigheten. Detta uppnås med flera digitala logikkomponenter.
Driftscykeln måste öka när en CW -puls tas emot. Detta görs genom att injicera en extra klockpuls i CNT6 -blocket, vilket får den att mata ut en klockcykel tidigare än den annars skulle ha. Denna process visas i figur 8.
CNT1 klockas fortfarande i konstant takt, men CNT6 har ett par extra klockor injicerade. Varje gång det finns en extra klocka till räknaren, flyttar den sin utgång en klockperiod till vänster.
Omvänt, för att minska arbetscykeln, hoppa över en klockpuls för CNT6 som visas i figur 9. CNT1 klockas fortfarande med en konstant hastighet, och det finns hoppade klockpulser för CNT6, där räknaren inte fick klockan när den var tänkt till. På detta sätt trycks utmatningen från CNT6 åt höger med en klockperiod i taget, vilket förkortar PWM -driftscykeln.
Klockinjektionen och klockhoppningsfunktionen utförs med användning av några digitala logiska element i GreenPAK. Ett par multifunktionsblock används för att skapa ett par lås/kantdetektorkombinationer. 4-bitars LUT0 används för att muxa mellan den allmänna klocksignalen (CLK/8) och klockinsprutnings- eller klockhoppningssignalerna. Denna funktion beskrivs mer detaljerat i steg 7.
Steg 6: KNAPP -ingång
KNAPP -ingången avbryts i 20 ms och används sedan för att växla en spärr som avgör om just detta chip är valt. Om det väljs, passerar 4-bitars LUT klockans hoppning eller injektionssignaler. Om chipet inte väljs passerar 4-bitars LUT helt enkelt CLK/8-signalen.
Steg 7: Förhindra rullning av arbetscykeln
RS-spärrarna 3-bitars LUT5 och 3-bitars LUT3 används för att se till att du inte kan injicera eller hoppa över så många klockor att förskjutningsräknarna välter. Detta för att undvika att systemet når 100 % driftscykel och sedan rullar över till en 1 % driftscykel om det får en annan injicerad klocka.
RS -spärrarna förhindrar att detta händer genom att låsa ingångarna till multifunktionsblocken när systemet är en klockcykel borta från att välta. Ett par DFF: er fördröjer PWM_SET- och PWM_nRST -signalerna med en klockperiod som visas i figur 11.
Ett par LUT används för att skapa den nödvändiga logiken. Om arbetscykeln är så låg att den fördröjda PWM_SET -signalen inträffar samtidigt som PWM_nRST -signalen, kommer en ytterligare minskning av arbetscykeln att orsaka en övergång.
På samma sätt, när man närmar sig maximal driftscykel, så att den fördröjda PWM_nRST -signalen inträffar samtidigt som PWM_SET -signalen, är det nödvändigt att undvika ytterligare ökning av arbetscykeln. I det här fallet, fördröja nRST -signalen med två klockcykler för att säkerställa att systemet inte rullar från 99 % till 1 %.
Steg 8: Driftcykelkontroll med I2C
Denna design innehåller ett annat sätt att styra arbetscykeln än klockhoppning/klockinsprutning. En extern mikrokontroller kan användas för att skriva I2C -kommandon till GreenPAK för att ställa in driftscykeln.
För att styra arbetscykeln över I2C krävs att regulatorn utför en specifik kommandosekvens. Dessa kommandon visas i ordning i tabell 1. Ett "x" indikerar en bit som inte bör ändras, "[" indikerar en START -bit och "]" indikerar en STOP -bit
PDLY -blocket genererar en kort aktiv hög puls på den fallande kanten av CLK/8 -signalen, som kallas! CLK/8. Den signalen används för att klocka DFF14 med en konstant frekvens. När I2C_SET går högt asynkront, får nästa stigande kant på! CLK/8 DFF14 att mata ut HIGH, vilket utlöser CNT5 OneShot. OneShot körs för antalet klockcykler som användaren skrev enligt specifikationen i "Skriv till CNT5" I2C -kommandot i tabell 1. I det här fallet är det 10 klockcykler. OneShot tillåter 25 MHz-oscillatorn att köra exakt under dess längd och inte längre, så att 3-bitars LUT0 tar emot antalet klockcykler som skrevs till CNT5.
Figur 15 visar dessa signaler, där de röda klockorna är de som skickas till 3-bitars LUT0, som skickar dem in i CNT6 (PWM_SET-räknaren), och skapar därmed förskjutningen för driftcykelgenerering.
Steg 9: Varvräknare
Om så önskas kan användaren läsa varvräknaren över I2C för att spåra hur snabbt fläkten vrider genom att läsa CNT2 -värdet. CNT2 ökas varje gång ACMP0H har en stigande kant och kan asynkront återställas med ett I2C -kommando. Observera att detta är en valfri funktion, och tröskeln för ACMP0H måste justeras enligt specifikationerna för den specifika fläkten som används.
Steg 10: Extern kretsdesign
Den externa kretsen är ganska enkel. Det finns en tryckknapp ansluten till Pin6 på GreenPAK för att växla om just denna enhet är vald för roterande styrning, och en LED ansluten till Pin12 och Pin13 för att indikera när enheten är vald.
Eftersom fläkten går från 12 V krävs ett par FET: er för att styra dess omkoppling. GreenPAK: s Pin18 och Pin19 driver en nFET. När nFET slås på drar det porten till pFET LOW, som ansluter fläkten till +12 V. När nFET är avstängd, dras PFET -porten upp av 1 kΩ motståndet, som kopplar bort fläkten från +12 V.
Steg 11: PCB -design
För att prototypa konstruktionen monterades ett par kretskort. Kretskortet till vänster är "Fan Controller", som rymmer roterande givare, 12 V -uttag, SLG46108 GreenPAK och kontakter för FT232H USB till I2C -brytkort. De två kretskorten till höger är "Fan Boards", som innehåller SLG46826 GreenPAK, tryckknappar, omkopplare, lysdioder och fläkthuvuden.
Varje fläktbräda har ett höljt manligt sidhuvud på vänster sida och ett kvinnligt huvud på höger sida så att de kan kopplas ihop med tusensköna. Varje Fan Board kan fyllas med resurser för att självständigt styra två fans.
Steg 12: C# -applikation
En C# -applikation skrevs för att ansluta till fläktkorten via FT232H USB-I2C-bron. Denna applikation kan användas för att justera frekvensen för varje fläkt med I2C -kommandon som genereras av applikationen.
Programmet pingar alla 16 I2C -adresser en gång per sekund och fyller i GUI: n med de slavadresser som finns. I detta exempel är fläkt 1 (slavadress 0001) och fläkt 3 (slavadress 0011) anslutna till kortet. Justeringar av varje fläkt individuellt kan göras genom att flytta reglaget eller genom att skriva ett värde från 0-256 i textrutan under reglaget.
Slutsatser
Med denna design är det möjligt att självständigt styra upp till 16 fläktar (eftersom det finns 16 möjliga I2C -slavadresser) antingen med en roterande kodare eller med en C# -applikation. Det har visats hur man genererar en PWM -signal med ett par förskjutningsräknare och hur man ökar och minskar signalcykeln utan att välta.
Rekommenderad:
Inställning för extern Bluetooth GPS -leverantör för Android -enheter: 8 steg
Inställning för extern Bluetooth GPS-leverantör för Android-enheter: Den här instruktionsboken kommer att förklara hur du skapar din egen externa Bluetooth-aktiverade GPS för din telefon, tänd vad som helst för ungefär $ 10. Materialräkning: NEO 6M U-blox GPSHC-05 bluetooth-modul Kunskap om gränssnitt Blutooth LavenergimodulerArdui
Akustisk levitation med Arduino Uno Steg-för-steg (8-steg): 8 steg
Akustisk levitation med Arduino Uno Steg-för-steg (8-steg): ultraljudsgivare L298N Dc kvinnlig adapter strömförsörjning med en manlig DC-pin Arduino UNOBreadboardHur det fungerar: Först laddar du upp kod till Arduino Uno (det är en mikrokontroller utrustad med digital och analoga portar för att konvertera kod (C ++)
Väggfäste för iPad som kontrollpanel för hemautomation, med servostyrd magnet för att aktivera skärmen: 4 steg (med bilder)
Väggfäste för iPad Som kontrollpanel för hemautomation, med servostyrd magnet för att aktivera skärmen: På senare tid har jag ägnat ganska mycket tid åt att automatisera saker i och runt mitt hus. Jag använder Domoticz som min hemautomationsapplikation, se www.domoticz.com för mer information. I min sökning efter en instrumentpanelapplikation som visar all Domoticz -information tillsammans
Övertyga dig själv om att bara använda en 12V-till-AC-omriktare för LED-ljussträngar istället för att koppla om dem för 12V: 3 steg
Övertyga dig själv om att bara använda en 12V-till-AC-linjeomvandlare för LED-ljussträngar istället för att koppla om dem för 12V: Min plan var enkel. Jag ville klippa upp en väggdriven LED-ljussträng i bitar och sedan dra om den för att gå av 12 volt. Alternativet var att använda en kraftomvandlare, men vi vet alla att de är fruktansvärt ineffektiva, eller hur? Höger? Eller är de det?
1.5A linjär regulator för konstant ström för lysdioder för: 6 steg
1.5A linjär regulator för konstant ström för lysdioder för: Så det finns massor av instruktioner som täcker användning av LED -lampor med hög ljusstyrka. Många av dem använder den kommersiellt tillgängliga Buckpuck från Luxdrive. Många av dem använder också linjära regleringskretsar som toppar vid 350 mA eftersom de är mycket ineffektiva