Բովանդակություն:

DIY PWM վերահսկում համակարգչային երկրպագուների համար. 12 քայլ
DIY PWM վերահսկում համակարգչային երկրպագուների համար. 12 քայլ

Video: DIY PWM վերահսկում համակարգչային երկրպագուների համար. 12 քայլ

Video: DIY PWM վերահսկում համակարգչային երկրպագուների համար. 12 քայլ
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Նոյեմբեր
Anonim
DIY PWM վերահսկում համակարգչային երկրպագուների համար
DIY PWM վերահսկում համակարգչային երկրպագուների համար

Այս հրահանգը նկարագրում է 12 Վ համակարգչի PWM օդափոխիչի PWM լիովին վերահսկիչ սարք ստեղծելը: Դիզայնը կարող է կառավարել մինչև 16 3-փին համակարգչային երկրպագու: Դիզայնը օգտագործում է զույգ Dialog GreenPAK ™ կազմաձևվող խառը ազդանշանային IC- ներ ՝ յուրաքանչյուր երկրպագուի աշխատանքային ցիկլը վերահսկելու համար: Այն ներառում է նաև օդափոխիչի արագությունը փոխելու երկու եղանակ.

ա քառակուսի/պտտվող կոդավորիչով

բ. C# ներկառուցված Windows հավելվածով, որը GreenPAK- ի հետ շփվում է I2C- ի միջոցով:

Ստորև մենք նկարագրեցինք այն քայլերը, որոնք անհրաժեշտ են հասկանալու համար, թե ինչպես է GreenPAK չիպը ծրագրավորվել ՝ համակարգչի երկրպագուների համար PWM հսկողություն ստեղծելու համար: Այնուամենայնիվ, եթե դուք պարզապես ցանկանում եք ստանալ ծրագրավորման արդյունքը, ներբեռնեք GreenPAK ծրագիրը ՝ արդեն ավարտված GreenPAK դիզայնի ֆայլը դիտելու համար: Միացրեք GreenPAK զարգացման հավաքածուն ձեր համակարգչին և հարվածեք ծրագրին ՝ համակարգչի երկրպագուների համար PWM կառավարման անհատական IC ստեղծելու համար:

Քայլ 1: Համակարգի արգելափակման դիագրամ

Համակարգի արգելափակման դիագրամ
Համակարգի արգելափակման դիագրամ

Քայլ 2. SLG46108 Պտտվող ապակոդավորիչի ձևավորում

SLG46108 Պտտվող ապակոդավորիչի ձևավորում
SLG46108 Պտտվող ապակոդավորիչի ձևավորում
SLG46108 Պտտվող ապակոդավորիչի ձևավորում
SLG46108 Պտտվող ապակոդավորիչի ձևավորում
SLG46108 Պտտվող ապակոդավորիչի ձևավորում
SLG46108 Պտտվող ապակոդավորիչի ձևավորում

Պտտվող կոդավորիչն օգտագործվում է երկրպագուների աշխատանքային ցիկլը ձեռքով ավելացնելու կամ նվազեցնելու համար: Այս սարքը ելքեր է թողնում իր A և B ալիքների ելքերի վրա, որոնք գտնվում են 90 ° հեռավորության վրա: Տե՛ս AN-1101: Unclocked Quadrature Decoder ՝ լրացուցիչ տեղեկությունների համար, թե ինչպես է աշխատում պտտվող կոդավորիչը:

Clockամացույցով պտտվող ապակոդավորիչը կարող է ստեղծվել Dialog GreenPAK SLG46108- ի միջոցով `A և B ալիքների ազդանշանները մշակելու և դրանք ելքագրելու համար ժամացույցի սլաքի հակառակ ուղղությամբ (CCW) և ժամացույցի սլաքի ուղղությամբ (CW) իմպուլսների միջոցով:

Երբ A ալիքը տանում է B ալիքին, դիզայնը կարճ իմպուլս է թողնում CW- ի վրա: Երբ B ալիքը տանում է A ալիք, այն կարճ իմպուլս է թողնում CCW- ի վրա

Երեք DFF- ներ համաժամացնում են A ալիքի մուտքը ժամացույցի հետ: Նմանապես, OUT0- ով խողովակի հետաձգումը սահմանում է երկու DFF և OUT1- ը `երեք DFF, ստեղծում է նույն ֆունկցիոնալությունը B ալիքի համար:

CW և CCW ելքեր ստեղծելու համար օգտագործեք մի քանի LUT, այս ստանդարտ պտտվող ապակոդավորման նախագծի մասին լրացուցիչ տեղեկությունների համար այցելեք այս կայքը:

GreenPAK- ի պտտվող ապակոդավորիչը կստանա մուտքային A և B իմպուլսներ և դուրս կբերի CW և CCW իմպուլսները, ինչպես ցույց է տրված Նկար 4 -ում:

XOR դարպասներից հետո միացումն ապահովում է, որ երբեք միևնույն ժամանակ չլինի CW զարկերակ և CCW զարկերակ ՝ թույլ տալով պտտվող կոդավորիչի հետ կապված ցանկացած սխալ: CW և CCW ազդանշանների վրա 8 ms ընկնելու եզրերի հետաձգումը ստիպում է նրանց բարձր մնալ 8 ms գումարած մեկ ժամացույցի ցիկլ, որն անհրաժեշտ է ստորին SLG46826 GreenPAK- երի համար:

Քայլ 3. SLG46826 Օդափոխիչի վերահսկիչի ձևավորում

SLG46826 Երկրպագուների վերահսկիչի ձևավորում
SLG46826 Երկրպագուների վերահսկիչի ձևավորում

Քայլ 4. PWM սերունդ ՝ օֆսեթ հաշվիչներով

PWM սերունդ ՝ օֆսեթ հաշվիչներով
PWM սերունդ ՝ օֆսեթ հաշվիչներով
PWM սերունդ `օֆսեթ հաշվիչներով
PWM սերունդ `օֆսեթ հաշվիչներով

PWM ազդանշան ստեղծելու համար օգտագործվում է մի զույգ օֆսեթ հաշվիչ `նույն ժամանակահատվածով: Առաջին հաշվիչը սահմանում է DFF, իսկ երկրորդը վերականգնում է այն ՝ ստեղծելով կայուն ցիկլի PWM ազդանշան, ինչպես ցույց է տրված Նկար 6 -ում և 7 -ում:

CNT6- ը սահմանում է DFF10, իսկ CNT1- ի հակադարձ ելքը վերականգնում է DFF10- ը: 18 -րդ և 19 -րդ կապումներն օգտագործվում են PWM ազդանշանը արտաքին միացումներին դուրս բերելու համար

Քայլ 5. Աշխատանքային ցիկլի վերահսկում ժամացույցի ներարկումով և ժամացույցի բացթողմամբ

Հերթապահ ցիկլի վերահսկում ժամացույցի ներարկումով և ժամացույցի բացթողումով
Հերթապահ ցիկլի վերահսկում ժամացույցի ներարկումով և ժամացույցի բացթողումով
Հերթապահ ցիկլի վերահսկում ժամացույցի ներարկումով և ժամացույցի բացթողումով
Հերթապահ ցիկլի վերահսկում ժամացույցի ներարկումով և ժամացույցի բացթողումով

Օդափոխիչի վերահսկիչը ստանում է CW և CCW ազդանշանները որպես պտտվող ապակոդավորողից մուտքագրված միջոցներ և դրանք օգտագործում է կամ բարձրացնելու կամ նվազեցնելու PWM ազդանշանը, որը վերահսկում է օդափոխիչի արագությունը: Սա հասնում է մի քանի թվային տրամաբանության բաղադրիչների:

CW ցիկլը պետք է մեծանա, երբ CW զարկերակ է ստացվում: Դա արվում է լրացուցիչ ժամացույցի զարկերակի ներարկմամբ CNT6 բլոկի մեջ, որի արդյունքում այն դուրս է գալիս մեկ ժամացույցի ցիկլից ավելի վաղ, քան հակառակ դեպքում կլիներ: Այս գործընթացը ներկայացված է Նկար 8 -ում:

CNT1- ը դեռ անընդհատ արագանում է, բայց CNT6- ում ներարկվում են մի քանի լրացուցիչ ժամացույցներ: Ամեն անգամ, երբ հաշվիչին տեղադրվում է լրացուցիչ ժամացույց, այն մեկ ժամացույցի ժամանակահատվածը տեղափոխում է ձախ:

Ընդհակառակը, աշխատանքային ցիկլը նվազեցնելու համար բաց թողեք CNT6- ի ժամացույցի զարկերակը, ինչպես ցույց է տրված Նկար 9 -ում: CNT1- ը դեռ անընդհատ արագանում է, և կան բաց թողնված ժամացույցի զարկերակներ CNT6- ի համար, որտեղ հաշվիչը չի ժամացույցավորվել այն ժամանակ, երբ ենթադրվում էր: դեպի. Այս կերպ CNT6- ի թողարկումը միաժամանակ մեկ ժամացույցով շրջվում է աջ ՝ կրճատելով ելքային PWM աշխատանքային ցիկլը:

Clockամացույցի ներարկումը և ժամացույցը բաց թողնելու գործառույթը կատարվում է GreenPAK- ի որոշ թվային տրամաբանական տարրերի օգտագործմամբ: Մի զույգ բազմաֆունկցիոնալ բլոկ օգտագործվում է սողնակ/եզրերի դետեկտորի զույգ կոմբոներ ստեղծելու համար: 4-բիթանոց LUT0- ն օգտագործվում է ընդհանուր ժամացույցի ազդանշանի (CLK/8) և ժամացույցի ներարկիչ կամ ժամացույցը բաց թողնելու ազդանշանների միջև խառնվելու համար: Այս գործառույթը ավելի մանրամասն նկարագրված է Քայլ 7 -ում:

Քայլ 6: ՍՏՈԳԻ Մուտք

ՍՏՈԳ Մուտք
ՍՏՈԳ Մուտք

BUTTON- ի մուտքը հանվում է 20 ms- ի համար, այնուհետև օգտագործվում է կողպեքը փոխելու համար, որը որոշում է, թե արդյոք տվյալ չիպը ընտրված է: Եթե այն ընտրված է, ապա 4-բիթանոց LUT- ն անցնում է ժամացույցը բաց թողնելու կամ ներարկման ազդանշանները: Եթե չիպը ընտրված չէ, ապա 4-բիթանոց LUT- ը պարզապես անցնում է CLK/8 ազդանշանը:

Քայլ 7. Աշխատանքային ցիկլի շրջման կանխարգելում

Հերթապահ ցիկլի շրջումը կանխելը
Հերթապահ ցիկլի շրջումը կանխելը
Հերթապահ ցիկլի շրջումը կանխելը
Հերթապահ ցիկլի շրջումը կանխելը
Հերթապահ ցիկլի շրջումը կանխելը
Հերթապահ ցիկլի շրջումը կանխելը

RS փականները 3-բիթանոց LUT5 և 3-բիթանոց LUT3- ն օգտագործվում են համոզվելու համար, որ դուք չեք կարող ներարկել կամ բաց թողնել այնքան շատ ժամացույցներ, որ օֆսեթ հաշվիչները գլորվեն: Սա այն է, որպեսզի համակարգը չհասնի 100 % աշխատանքային ցիկլի և այնուհետև գլորվի 1 % աշխատանքային ցիկլի, եթե ստանա մեկ այլ ներարկված ժամացույց:

RS սողնակները դա կանխում են ՝ մուտքերը միացնելով բազմաֆունկցիոնալ բլոկներին, երբ համակարգը մեկ ժամացույցի ցիկլից հեռու է գլորվելուց: Pairույգ DFF- ները հետաձգում են PWM_SET և PWM_nRST ազդանշանները մեկ ժամացույցի ժամանակահատվածով, ինչպես ցույց է տրված Նկար 11 -ում:

Pairույգ LUTs օգտագործվում են անհրաժեշտ տրամաբանություն ստեղծելու համար: Եթե հերթապահության շրջանն այնքան ցածր է, որ ուշացած PWM_SET ազդանշանը տեղի է ունենում PWM_nRST ազդանշանի հետ միաժամանակ, հերթապահության ցիկլի հետագա նվազումը կառաջացնի շրջադարձ:

Նմանապես, եթե մոտենում ենք աշխատանքի առավելագույն ցիկլին, այնպիսին, որ հետաձգված PWM_nRST ազդանշանը հայտնվի PWM_SET ազդանշանի հետ միաժամանակ, անհրաժեշտ է խուսափել աշխատանքային ցիկլի հետագա ավելացումից: Այս դեպքում հետաձգեք nRST ազդանշանը երկու ժամացույցի ցիկլով `ապահովելու համար, որ համակարգը չի գլորվի 99 % -ից մինչև 1 %:

Քայլ 8. Աշխատանքային ցիկլի վերահսկում I2C- ով

Աշխատանքային ցիկլի վերահսկում I2C- ով
Աշխատանքային ցիկլի վերահսկում I2C- ով
Աշխատանքային ցիկլի վերահսկում I2C- ով
Աշխատանքային ցիկլի վերահսկում I2C- ով
Աշխատանքային ցիկլի վերահսկում I2C- ով
Աշխատանքային ցիկլի վերահսկում I2C- ով

Այս դիզայնը ներառում է աշխատանքային ցիկլը վերահսկելու այլ միջոց, բացի ժամացույցի բացթողումից/ժամացույցի ներարկումից: Արտաքին միկրոկառավարիչը կարող է օգտագործվել GreenPAK- ին I2C հրամաններ գրելու համար `աշխատանքային ցիկլը սահմանելու համար:

I2C- ի վրա աշխատանքային ցիկլի վերահսկումը պահանջում է, որ վերահսկիչը կատարի հրամանի որոշակի հաջորդականություն: Այս հրամանները հերթականությամբ ցուցադրվում են Աղյուսակ 1 -ում: «x» - ը ցույց է տալիս մի բիթ, որը չպետք է փոխվի, «[» - ը ՝ «START» բիթ, և «]» - ը ՝ STOP բիթ:

PDLY բլոկը առաջացնում է կարճ ակտիվ բարձր զարկերակ CLK/8 ազդանշանի ընկնող եզրին, որը կոչվում է! CLK/8: Այդ ազդանշանն օգտագործվում է կայուն հաճախականությամբ DFF14- ը ժամացույց անելու համար: Երբ I2C_SET- ը բարձրանում է բարձր ասինքրոն, CLK/8 -ի հաջորդ աճող ծայրը հանգեցնում է DFF14- ի բարձր թողարկմանը, ինչը միացնում է CNT5 OneShot- ը: OneShot- ն աշխատում է ժամացույցի այն ցիկլերի քանակի համար, որոնք օգտագործողը գրել է, ինչպես նշված է Աղյուսակ 1 -ում «Գրել CNT5» I2C հրահանգում: Այս դեպքում դա ժամացույցի 10 ցիկլ է: OneShot- ը թույլ է տալիս 25 ՄՀց տատանումին աշխատել իր տևողությամբ և ոչ ավելի, որպեսզի 3-բիթանոց LUT0- ը ստանա CNT5- ին գրված ժամացույցի ցիկլերի քանակը:

Նկար 15-ը ցույց է տալիս այս ազդանշանները, որտեղ կարմիր ժամացույցներն են, որոնք ուղարկվում են 3-բիթանոց LUT0- ին, որը դրանք փոխանցում է CNT6 (PWM_SET հաշվիչ), դրանով իսկ ստեղծելով օֆսեթ հերթապահության ցիկլի առաջացման համար:

Քայլ 9: Տախոմետրերի ընթերցում

Տախոմետրերի ընթերցում
Տախոմետրերի ընթերցում
Տախոմետրերի ընթերցում
Տախոմետրերի ընթերցում

Desiredանկության դեպքում օգտվողը կարող է կարդալ արագաչափի արժեքը I2C- ով ՝ հետևելու համար, թե որքան արագ է պտտվում օդափոխիչը ՝ կարդալով CNT2 արժեքը: CNT2- ը ավելանում է ամեն անգամ, երբ ACMP0H- ն բարձրանում է եզր և կարող է ասինխրոն կերպով զրոյացվել I2C հրամանով: Նկատի ունեցեք, որ սա կամընտիր գործառույթ է, և ACMP0H- ի շեմը պետք է շտկվի `համաձայն օգտագործվող հատուկ օդափոխիչի բնութագրերի:

Քայլ 10. Արտաքին սխեմաների ձևավորում

Արտաքին սխեմաների նախագծում
Արտաքին սխեմաների նախագծում

Արտաքին սխեման բավականին պարզ է: Կա GreenPAK- ի Pin6- ին միացված մի կոճակ `միացնելու համար, թե արդյոք այս կոնկրետ սարքը ընտրված է պտտվող կառավարման համար, և Pin12- ին և Pin13- ին միացված լուսադիոդ` սարքը ընտրելու ժամանակը նշելու համար:

Քանի որ օդափոխիչն աշխատում է 12 Վ լարման վրա, դրա անջատումը վերահսկելու համար անհրաժեշտ է մի զույգ FET: GreenPAK- ի Pin18- ը և Pin19- ը քշում են nFET- ը: Երբ nFET- ը միացված է, այն քաշում է pFET LOW- ի դարպասը, որը միացնում է երկրպագուն +12 Վ -ին: Երբ nFET- ն անջատված է, PFET- ի դարպասը քաշվում է 1 կՄ ռեզիստորով, որն անջատում է օդափոխիչը +12 Վ -ից

Քայլ 11: PCB նախագծում

PCB դիզայն
PCB դիզայն

Նախագծի նախատիպը կազմելու համար հավաքվեցին մի քանի հատ PCB: Ձախ PCB- ն «Fan Controller» - ն է, որտեղ տեղակայված են պտտվող կոդավորիչը, 12 Վ լծակը, SLG46108 GreenPAK- ը և FT232H USB- ի I2C անջատիչ տախտակի միակցիչները: Աջ կողմում գտնվող երկու PCB- ն «Fan Boards» են, որոնք պարունակում են SLG46826 GreenPAK- ներ, սեղմման կոճակներ, անջատիչներ, LED- ներ և օդափոխիչի վերնագրեր:

Յուրաքանչյուր երկրպագուների տախտակ ունի ձախ գլխարկով ծածկված գլխիկ, իսկ աջ կողմում `կին գլխով, որպեսզի դրանք միասին շղթայված լինեն: Յուրաքանչյուր Fan Board- ը կարող է համալրվել երկու երկրպագուների ինքնուրույն վերահսկելու ռեսուրսներով:

Քայլ 12: C# հավելված

C# դիմում
C# դիմում

C# հավելվածը գրվել է Fan Boards- ի հետ FT232H USB-I2C կամրջի միջոցով ինտերֆեյսի համար: Այս ծրագիրը կարող է օգտագործվել յուրաքանչյուր երկրպագուի հաճախականությունը հարմարեցնելու համար I2C հրամաններով, որոնք գեներացվում են հավելվածի կողմից:

Հավելվածը վայրկյանում մեկ անգամ կապում է բոլոր 16 I2C հասցեները և GUI- ն համալրում առկա ստրուկի հասցեներով: Այս օրինակում ՝ տախտակին միացված Fan 1 (ստրուկի հասցե 0001) և Fan 3 (ստրուկի հասցե 0011): Յուրաքանչյուր երկրպագուի աշխատանքային ցիկլի անհատական փոփոխությունները կարող են կատարվել ՝ սահեցնող սանդղակը տեղափոխելով կամ 0-256-ի արժեքը մուտքագրելով սահող սանդղակի տակ գտնվող տեքստային տուփում:

Եզրակացություններ

Այս դիզայնի միջոցով հնարավոր է ինքնուրույն վերահսկել մինչև 16 երկրպագու (քանի որ կան 16 հնարավոր I2C ստրուկի հասցե) կամ պտտվող կոդավորիչով կամ C# հավելվածով: Beenույց է տրված, թե ինչպես կարելի է զույգ օֆսեթ հաշվիչներով առաջացնել PWM ազդանշան, և ինչպես մեծացնել և նվազեցնել այդ ազդանշանի աշխատանքային ցիկլը ՝ առանց շրջվելու:

Խորհուրդ ենք տալիս: