Բովանդակություն:
- Քայլ 1: Ներմուծեք տրված VHDL ֆայլերը
- Քայլ 2. VHDL վերին մոդուլի խզումը
- Քայլ 3. VHDL Kill Switch մոդուլի խափանում
- Քայլ 4. VHDL Flip Flop մոդուլի խափանում
- Քայլ 5. VHDL Piezo Buzzer մոդուլի խափանում
- Քայլ 6: VHDL սահմանափակումների ֆայլի խզում
- Քայլ 7. Հիմքերի կառուցում 3
- Քայլ 8. VHDL ֆայլերի ներդրում Basys 3 -ում
- Քայլ 9. Օգտագործելով Basys 3 տախտակը
- Քայլ 10: Offույց տվեք:
Video: Ունիվերսալ անջատիչ մոդելը `10 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:51
Հոգնե՞լ եք քնելուց առաջ ստուգելուց, որ ձեր տան բոլոր լույսերն անջատված են: Wishանկանու՞մ եք, որ միանգամից անջատեք յուրաքանչյուր լույս առանց աղմուկի: Էներգիա և ժամանակ խնայելու համար մենք որոշեցինք ստեղծել մի համակարգ, որը տեսականորեն կարող էր մի ամբողջ տուն փակել միանգամից:
Մենք մոդելավորեցինք այս հայեցակարգի ապացույցը ՝ օգտագործելով մի քանի լուսադիոդային և բազային 3 միակցիչ տախտակ և ստեղծեցինք դիզայն, որը կոճակի սեղմումով կանջատեր բոլոր LED- ները: Այս մոդելը կարող է կիրառվել նաև տան լուսավորության իրական համակարգի նկատմամբ, չնայած այն կպահանջի ավելի բարդ էլեկտրագծեր և փոփոխություններ տվյալ VHDL ֆայլերի համար:
Քայլ 1: Ներմուծեք տրված VHDL ֆայլերը
Որպեսզի մեր մոդելը ճիշտ աշխատի, դուք պետք է ներբեռնեք այն ծրագրաշարը, որը տալիս է Basys 3 տախտակին իր ցուցումները:
Նախ պետք է ներբեռնեք սինթեզի գործիք ՝ vhdl ֆայլերը ապարատային ծրագրերի իրականացման համար: Եթե ցանկանում եք վստահ լինել, որ ամբողջ ծածկագիրը ամբողջությամբ կկրկնօրինակի մեր դիզայնը ՝ առանց որևէ փոփոխության անհրաժեշտության, խորհուրդ ենք տալիս օգտագործել Vivado 2016.2 -ը: Vivado- ի տեղադրումից հետո կարող եք ստեղծել նախագիծ և ներբեռնել մեր սկզբնական ֆայլերը: Ավելացրեք դրանք որպես աղբյուր ձեր նախագծին, մի մոռացեք ավելացնել նաև սահմանափակումների ֆայլը:
Հաջորդը մենք կբացատրենք, թե ինչ է անում աղբյուրի ֆայլերից յուրաքանչյուրը: Բաց թողեք 2 -ից 6 -րդ քայլերը, եթե պարզապես ցանկանում եք հասնել սարքի ֆիզիկական կառուցվածքին:
Քայլ 2. VHDL վերին մոդուլի խզումը
Topրագրի վերին մոդուլն այն է, ինչը կապում է բոլոր առանձին բաղադրիչ մոդուլները օգտագործված սարքավորման հետ: Ինչպես տեսնում եք, մենք ունենք killSwitch և buzzerControl մոդուլներ, որոնք սահմանված են որպես բաղադրիչներ վերևում:
Ստորին հատվածում նշվում է, թե ինչպես են այս մոդուլները միացված միմյանց: Մենք չորս LED միացրել ենք տախտակին և դրանք կապել kill0witch մոդուլների հետ dev0 միջոցով dev3: Մենք ունենք killSwitch- ի չորս մոդուլ, քանի որ մեզ անհրաժեշտ է մեկը `միացված յուրաքանչյուր LED- ի վիճակը կառավարելու համար: Այս մոդուլներից յուրաքանչյուրն օգտագործում է ժամացույցի և կոճակի ազդանշանը, որը մենք ստեղծել ենք վերին մոդուլի սահմանման մեջ, ինչպես նաև դրանց համապատասխան մուտքային և ելքային սարքի ազդանշանները:
Ներքևի ազդանշանային կառավարման մոդուլը ակտիվացնում է ազդանշանը, երբ սեղմված է համընդհանուր անջատման կոճակը: Ինչպես տեսնում եք, ազդանշանային կառավարման մոդուլը փոխանցվում է ժամացույցի և կոճակի ազդանշանին որպես մուտքագրում: Այն նաև փոխանցվում է ֆիզիկական ազդանշանի ելքային քորոցին `համապատասխանաբար այն կառավարելու համար:
Քայլ 3. VHDL Kill Switch մոդուլի խափանում
Kill Switch- ը ունիվերսալ անջատման կոճակ է, և մոդուլը հիմնականում վերաբերում է այն միացման այլ տարրերին միացնելուն, որպեսզի սեղմելիս բոլոր լույսերը անջատվեն:
Մինչ վերին մոդուլը կարգավորում է ֆիզիկական ապարատը ծրագրային ապահովման հետ միացնելը, killSwitch մոդուլը կարգավորում է յուրաքանչյուր սարքի հիմնական տրամաբանությունը: Մոդուլը ընդունում է ժամացույցի ազդանշանի, ունիվերսալ անջատման կոճակի և սարքի միացման անջատիչի մուտքերը: Դրա դիմաց այն վերահսկում է սարքի կապի վիճակը, որին միացված է:
Կոդի ճարտարապետության բաժնում մենք տեսնում ենք, որ այն կախվածություն ունի dFlipFlop մոդուլից `հիշողություն պահելու համար: Կարող եք նաև տեսնել, որ մենք հայտարարագրել ենք չորս ազդանշան, որոնք կօգտագործվեն մատով խփելիս միացնելու, ինչպես նաև մեր տրամաբանական հայտարարություններն իրականացնելու համար: Կոդի վարքագծային բաժնում մենք ստեղծել ենք dFlipFlop մոդուլի օրինակ և մեր մուտքի/ելքի ազդանշանները նշանակել նավահանգիստներին:
Այստեղից մեր տրամաբանության հիմնական մասը գտնվում է invertState- ի և isDevOn- ի ազդանշանային արժեքների մեջ: Սարքի մեր տրամաբանական հիմքը հետևյալն է. Այս երկու հայտարարություններից կարող ենք եզրակացնել, որ LED- ի վիճակը պետք է լինի անջատիչի XOR- ը և մեր հիշողության տարրը: Այդ կերպ կամ LED- ի փոփոխությունը շրջում է LED- ը: Սա կարելի է տեսնել isDevOn ազդանշանի իրագործման մեջ: Հիշողության տարրի պայմանով LED- ը մշակվում է մեր invertState ազդանշանի միջոցով: Եթե LED- ը միացված է, և կոճակը սեղմված է, մեր հիշողության տարրը կթարմացվի և կշրջի իր վիճակը: Սա նաև շրջում է LED- ի վիճակը:
Քայլ 4. VHDL Flip Flop մոդուլի խափանում
Մեր դիզայնի հետ կապված խնդիրներից մեկն այն էր, որ անջատիչ անջատիչն օգտագործելուց հետո նախկինում միացված լույսերը կարող էին երկու անգամ պտտվել `միացված դիրքին վերադառնալու համար: Սա ժամանակի ընթացքում բավականին անհարմարություն կլինի մարդկանց համար: Մեզ հաջողվեց շրջանցել այս անհարմարությունը ՝ ներառելով «Flip Flop» - ը, որը կարող է տեղեկատվություն պահպանել ՝ մեր նախագծում: Այժմ համակարգը հիշում է, թե արդյոք լույսի անջատիչը նախկինում միացված էր, որպեսզի այն նորից շրջվելու դեպքում այն միանա անկախ իր սկզբնական դիրքից:
VHDL ծածկագիրը օգտագործում է if և else հայտարարությունները, որպեսզի Flip Flop- ը ստեղծի որպես բաղադրիչ մեր սխեմայի նախագծման մեջ: Այն ապահովում է, որ ժամացույցի ազդանշանը ցածրից բարձր վիճակի անցնելիս, երբ լամպը միացված է, և երբ անջատիչը սեղմված է, մատանի շղթայի ելքը փոխարինում է նրա մուտքին: Երբ մուտքը վերաշարադրվում է, մատով խափանումը շրջվում է:
Քայլ 5. VHDL Piezo Buzzer մոդուլի խափանում
Ինչ վերաբերում է ապարատային դիզայնին, այս ֆայլը մի փոքր ավելորդ է, բայց այն էական է, որպեսզի վերին մոդուլը և սահմանափակումների ֆայլերը սահուն աշխատեն: Եթե որոշեք չօգտագործել Piezo ազդանշանը, ներբեռնեք այս ֆայլը, բայց միացրեք ազդանշանը Basys 3 տախտակին:
Piezo ազդանշանը, սեղմելով անջատելու կոճակը, կհնչի երկու նոտայի հնչերանգով, որը օգտվողին կտրամադրի կոճակը սեղմված լսողական արձագանք: Մենք դա վարքագծով իրականացրեցինք VHDL- ում `գործընթացային կառուցվածքում մի շարք if հայտարարությունների միջոցով: Մենք սկսեցինք ստեղծել մի ամբողջ թիվ ՝ հետևելու համար, թե ժամացույցի քանի փոփոխություն է տեղի ունեցել: Գործընթացը սկսվելուց հետո ծրագիրը առաջին կես վայրկյանը (0 -ից մինչև 50 միլիոն ժամացույց) տալիս է A նոտա ՝ 440 հերց արագությամբ: Դա արվում է ՝ պիեզո -ազդանշանային ազդանշանը շրջելով 227272 ժամացույցի յուրաքանչյուր նույնիսկ բազմակի ՝ մոդուլային գործառույթով: Այս թիվը տախտակի ժամացույցի ազդանշանը (100 ՄՀց) բաժանելու արդյունքն է ցանկալի հաճախականությանը (400 Հց): Երկրորդ կեսի ընթացքում (50 -ից 100 միլիոն ժամացույցի հարված) տախտակը թողարկում է F նոտա 349.2 հերց արագությամբ ՝ նույն մեթոդով, ինչ նախկինում: Մեկ վայրկյան անց ծրագիրը այլևս չի ավելացնում ժամացույցի փոփոխականը և դադարում է որևէ բան դուրս բերել պիեզո ազդանշանից: Համընդհանուր անջատման կոճակը կրկին սեղմելը այս թիվը 0 -ի է վերադարձնում ՝ վերսկսելով աղմուկի ցիկլը:
Քայլ 6: VHDL սահմանափակումների ֆայլի խզում
Սահմանափակումների ֆայլը պատմում է Vivado- ին, թե ինչ սարքեր ենք մենք օգտագործում Basys 3 տախտակի վրա: Այն նաև տրամադրում է Vivado- ի անունները, որոնք մենք տվել ենք մեր ծածկագրում գտնվող սարքերին: Vivado- ն կարիք ունի այս տեղեկատվության, որպեսզի իմանա, թե ինչպես միացնել մեր տրամաբանական տարրերը ֆիզիկական սարքավորումներին: Արգելքների ֆայլը ներառում է մեծ քանակությամբ մեկնաբանված (չօգտագործված) ծածկագիր: Կոդի այս տողերը վերաբերում են տախտակի վրա գտնվող սարքերին, որոնք մենք չենք օգտագործում:
Սարքերը, որոնք մենք օգտագործում ենք, ներառում են չորս մուտքային անջատիչ ՝ տախտակի վրա մակնշված V17, V16, W16 և W1: Մենք նաև օգտագործում ենք ունիվերսալ անջատման կոճակը ՝ U18 պիտակով: Մեր չորս միացված LED- ների ելքային կապերն են `JB4, JB10, JC4 և JC10: Մեր պիեցցո ազդանշանի համար մենք օգտագործում ենք ելքային կապ JA9:
Ինչպես նշեցինք վերևի մոդուլի խզման մեջ, եթե ցանկանում եք լրացուցիչ լուսադիոդային լուսարձակներ կամ այլ սարքեր ավելացնել տախտակին, անհրաժեշտ է մեծացնել sw և dev ազդանշանների շրջանակը, ավելացնել ավելի killSwitch մոդուլներ և դրանք միացնել միասին: Այնուհետեւ դուք պետք է այդ փոփոխականների անունները կապեք սարքի ապարատին `սահմանափակումների ֆայլի միջոցով: Դա կարելի է անել ՝ չմեկնաբանելով (նորից միացնելով) այն կոդերը, որոնք կապված են այն կապում, որը ցանկանում եք օգտագործել, այնուհետև վերին մոդուլում ավելացնելով դրա հետ կապված փոփոխականի անունը: Դրա համար համապատասխան շարահյուսությունը կարող է պատճենվել մեր օգտագործած սարքերից: Գրատախտակների անունները պարզելու համար, որոնք ցանկանում եք օգտագործել գրատախտակին, հղեք այստեղ Baasys 3 տեղեկատու ուղեցույցը:
Քայլ 7. Հիմքերի կառուցում 3
Դուք պետք է ձեր LED- ները միացնեք Basys- ի ճիշտ I/O նավահանգիստներին: Հետևեք ներկայացված նկարներին `որոշելու, թե որոնք են ճիշտ նավահանգիստները, քանի որ LED- ը սխալ նավահանգստին միացնելու դեպքում այն չի լուսավորվի: Եթե դուք ընտրել եք կցել պիեզո ազդանշանը, ապա ձեզ նույնպես պետք է այն միացնել ճիշտ մուտքի/ելքի պորտերին:
Երբ տախտակը պատրաստ լինի, միացրեք այն համակարգչին USB մալուխի միջոցով:
Քայլ 8. VHDL ֆայլերի ներդրում Basys 3 -ում
Այժմ, երբ ձեր տախտակը պատրաստ է, և ձեր ծածկագիրն ավարտված է, դուք կարող եք վերջապես համատեղել մոդելը:
Երբ դուք ստեղծեք ձեր նախագիծը Vivado- ում, դուք պետք է սեղմեք «Ստեղծել Bitstream» կոճակը ՝ ծածկագիրը կազմելու համար, նախքան այն տախտակ վերբեռնվելը: Եթե այս պահին դուք ստանում եք սխալի հաղորդագրություն, դուք պետք է կրկնակի ստուգեք, որ ձեր կոդը ճշգրիտ համընկնում է մեր կոդի հետ: Երբ ես հստակ ասում եմ, ես նկատի ունեմ նույնիսկ ստորակետները կամ փակագծերի տեսակները, որոնք օգտագործվում են: Երբ ձեր bitstream- ը հաջողությամբ գրվի, գնացեք Vivado- ի ապարատային մենեջեր և կտտացրեք «Բաց թիրախ» կոճակին, այնուհետև անմիջապես սեղմեք «Deրագրի սարք»: Ձեր Basys 3 տախտակն այժմ պետք է լիովին գործի:
Քայլ 9. Օգտագործելով Basys 3 տախտակը
Այժմ, երբ Basys 3 խորհուրդը գործում է և ծրագրված է ներկայացնել մեր մոդելը, դուք պետք է իմանաք, թե ինչպես օգտագործել այն:
Աջից ամենահեռավոր չորս անջատիչներից յուրաքանչյուրը վերահսկում է LED- ներից մեկը, դրանք սեղմելը կհանգեցնի LED- ի միացման կամ անջատման: Եթե LED- ը չի ակտիվանում, ստուգեք, որ միացված եք ճիշտ մուտքի/ելքի պորտին, և որ ձեր LED- ն առաջին հերթին ֆունկցիոնալ է:
Երբ ուզում եք անջատել բոլոր LED- ները միանգամից, դուք պետք է սեղմեք կենտրոնական կոճակը վերևում ցուցադրված հինգ կոճակների հավաքածուի մեջ:
Քայլ 10: Offույց տվեք:
Մոդելը ծառայում է որպես կոկիկ փոքրիկ նորույթ, որը կարող եք ցուցադրել ձեր ընկերների և ընտանիքի առջև: Այն տեսականորեն կարող է օգտագործվել նաև ձեր տան էլեկտրական համակարգում ունիվերսալ անջատիչ տեղադրելու համար, եթե LED- ները փոխարինեք ձեր լույսերին տանող լարերով: Թեև դա հնարավոր է, մենք դեռ պետք է խորհուրդ տանք դրա դեմ: Հնարավոր է լուրջ վնաս հասցնել ինքներդ ձեզ կամ ձեր տանը, եթե փորձեք վերալիցքավորել առանց էլեկտրիկի օգնության:
Խորհուրդ ենք տալիս:
USB Ուրախ/Տխուր Միացված/Անջատիչ Անջատիչ ափսե Լեգոյի հետ :): 9 քայլ
USB Ուրախ/Տխուր Միացված/Անջատիչ ափսե Լեգոյի հետ :) Ամեն դեպքում, ահա հրահանգները, եթե ցանկանում եք կառուցել ձեր սեփականը: =)
Ինչպես օգտագործել Chips Vendor Op-Amp մոդելը LTSpice- ում. 10 քայլ
Ինչպես օգտագործել Chip Vendor Op-Amp մոդելը LTSpice- ում: Ներածություն փորձարկել նոր սխեմաներ իմ
Ստեղնաշարի և մկնիկի ավտոմատ անջատիչ - USB հոսքի վերին անջատիչ ՝ 5 քայլ
Ավտոմատ ստեղնաշարի և մկնիկի անջատիչ - USB վերևի անջատիչ. Այս նախագծում մենք կհավաքենք ստեղնաշարի և մկնիկի ավտոմատ անջատիչ, որը թույլ է տալիս հեշտությամբ կիսել երկու համակարգիչ: Այս նախագծի գաղափարը ծագեց իմ անհրաժեշտության դեպքում, ցանկացած պահի ունենալ երկու համակարգիչ իմ լաբորատոր սեղանը: Շատ դեպքերում դա իմ D
Ապտակ անջատիչ `պարզ, չզոդվող հպման անջատիչ` 7 քայլ
Slap Switch. Simple, No-Solder Touch Switch: The Slap Switch- ը պարզ դիմադրության հպման անջատիչ է, որը նախատեսված է իմ Explode the Controller ծրագրի համար `Makey Makey- ի և Scratch- ի հետ համակարգչային խաղերում ֆիզիկական խաղ ներառելու համար: Նախագծին անհրաժեշտ էր հպման անջատիչ, որն էր ՝ ամուր, ապտակելու համար
Ունիվերսալ IR հեռակառավարիչ անջատիչ ՝ 12 քայլ
Ունիվերսալ IR հեռակառավարման անջատիչ. Այս նախագիծը ցույց է տալիս կոկիկ չիպի օգտագործումը, որը թույլ է տալիս օգտագործել ցանկացած IR հեռակառավարիչ `ինչ-որ բան անջատելու համար: Այստեղ ես փոխել եմ հին չաշխատող General Electric RF հեռակա AC անջատիչը դեպի անջատիչ, որը կարող է կառավարվել ցանկացած IR հեռակառավարմամբ: Իմ մոտիվացիան