Ինչպես միացնել հերթափոխի գրանցումը Arduino- ին

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

Ինչպես միացնել հերթափոխի գրանցումը Arduino- ին
Ինչպես միացնել հերթափոխի գրանցումը Arduino- ին
Anonim

Նախորդ հոդվածներից մեկում մենք արդեն համառոտ անդրադարձել ենք հերթափոխային ռեգիստրի օգտագործմանը, մասնավորապես, 74HC595- ին: Եկեք ավելի սերտ նայենք այս միկրոսխեմանի հետ աշխատելու հնարավորություններին և ընթացակարգին:

Հերթափոխի գրանցում 74HC595
Հերթափոխի գրանցում 74HC595

Անհրաժեշտ է

  • - Arduino;
  • - հերթափոխի գրանցամատյան 74HC595;
  • - լարերը միացնող:

Հրահանգներ

Քայլ 1

74HC595 հերթափոխի ռեգիստրը և նմանատիպերը օգտագործվում են որպես սերիական տվյալները զուգահեռ փոխակերպելու սարքեր, և կարող են օգտագործվել նաև որպես տվյալների փոխանցում `պահելով փոխանցված վիճակը:

Pinout- ը (pinout) ցույց է տրված ձախ նկարում: Նրանց նպատակը հետևյալն է.

Q0… Q7 - տվյալների զուգահեռ ելքեր;

GND - գետնին (0 Վ);

Q7 '- սերիական տվյալների թողարկում;

^ MR - վերականգնել վարպետը (ակտիվ ցածր);

SHcp - հերթափոխի գրանցման ժամացույցի մուտք;

STcp - ժամացույցի զարկերակի «փական» մուտք;

^ OE - ելքի հնարավորություն (ակտիվ ցածր);

Ds - սերիական տվյալների մուտքագրում;

Vcc - էլեկտրամատակարարում +5 Վ

Կառուցվածքային տեսանկյունից միկրո շրջանն արտադրվում է մի քանի տեսակի դեպքերում. Ես կօգտագործեմ աջից նկարում ցույց տրվածը `ելքը, քանի որ ավելի հեշտ է օգտագործել հացաթխման տախտակի հետ:

Shift գրանցման տեսքը և pinout- ը
Shift գրանցման տեսքը և pinout- ը

Քայլ 2

Թույլ տվեք համառոտ հիշել SPI սերիական ինտերֆեյսը, որը մենք կօգտագործենք տվյալների փոխանցման ռեգիստրին փոխանցելու համար:

SPI- ն չորս մետաղալար երկկողմանի սերիական ինտերֆեյս է, որին մասնակցում են տերն ու ստրուկը: Տերը մեր դեպքում կլինի Arduino- ն, ստրուկը կգրանցվի 74HC595 գրանցումը:

Arduino- ի զարգացման միջավայրը ներկառուցված գրադարան ունի `SPI ինտերֆեյսի վրա աշխատելու համար: Այն կիրառելիս օգտագործվում են այն եզրակացությունները, որոնք նշված են նկարում.

SCLK - SPI ժամացույցի ելք;

MOSI - տվյալներ տիրոջից ստրուկ;

MISO - տվյալներ ստրուկից վարպետ;

SS - ստրուկների ընտրություն:

Arduino տախտակի ստանդարտ SPI քորոցներ
Arduino տախտակի ստանդարտ SPI քորոցներ

Քայլ 3

Եկեք միասին կազմենք միացումը, ինչպես նկարում է:

Ես նաև միացնելու եմ տրամաբանական անալիզատորը հերթափոխի գրանցման միկրոսխեմանի բոլոր քորոցներին: Դրա օգնությամբ մենք կտեսնենք, թե ինչ է տեղի ունենում ֆիզիկական մակարդակում, ինչ ազդակներ են ուր գնում, և մենք կիմանանք, թե դրանք ինչ են նշանակում: Այն պետք է նման լինի լուսանկարի:

74HC595 հերթափոխով Arduino- ի հերթափոխի միացման դիագրամ
74HC595 հերթափոխով Arduino- ի հերթափոխի միացման դիագրամ

Քայլ 4

Եկեք գրենք այսպիսի ուրվագիծ և բեռնեք այն Arduino հիշողության մեջ:

PIN_SPI_SS փոփոխականը ներքին ստանդարտ հաստատուն է, որը համապատասխանում է Arduino- ի «10» պին, երբ օգտագործվում է որպես SPI ինտերֆեյսի տիրակալ, որը մենք օգտագործում ենք այստեղ: Սկզբունքորեն, մենք կարող էինք նույնքան լավ օգտագործել Arduino- ի ցանկացած այլ թվային քորոց. ապա մենք ստիպված կլինեինք դա հայտարարել և սահմանել դրա գործառնական ռեժիմը:

Այս քորոցը feedingածր կերակրելով, մենք ակտիվացնում ենք մեր հերթափոխի գրանցամատյանը փոխանցման / ստացման համար: Փոխանցումից հետո մենք կրկին բարձրացնում ենք լարումը դեպի HIGH, և փոխանակումն ավարտվում է:

Էսքիզ ՝ հերթափոխի ռեգիստրի աշխատանքը ցույց տալու համար
Էսքիզ ՝ հերթափոխի ռեգիստրի աշխատանքը ցույց տալու համար

Քայլ 5

Եկեք մեր շղթան վերածենք աշխատանքի և տեսնենք, թե մեզ ինչ է ցույց տալիս տրամաբանական անալիզատորը: Theամկետների գծապատկերի ընդհանուր տեսքը ներկայացված է նկարում:

Կապույտ գծված գիծը ցույց է տալիս 4 SPI տող, կարմիր գծանշված գիծը ցույց է տալիս հերթափոխի ռեգիստրի զուգահեռ տվյալների 8 ալիք:

Pointամանակի սանդղակի A կետը այն պահն է, երբ «210» թիվը փոխանցվում է հերթափոխի ռեգիստրին, B- ն այն պահն է, երբ գրվում է «0» թիվը, C - սկզբից կրկնող ցիկլը:

Ինչպես տեսնում եք, A- ից B- ը `10,03 միլիվայրկյան, իսկ B- ից C - 90,12 milliseconds, գրեթե ինչպես խնդրեցինք էսքիզում: 0, 03 և 0, 12 ms- ներում մի փոքր լրացում Arduino- ից սերիական տվյալների փոխանցման ժամանակն է, ուստի այստեղ մենք ունենք ճիշտ 10 և 90 ms:

Arduino փոխանակման և հերթափոխի գրանցման 74HC595 ժամանակացույցի դիագրամ
Arduino փոխանակման և հերթափոխի գրանցման 74HC595 ժամանակացույցի դիագրամ

Քայլ 6

Եկեք ավելի սերտ նայենք Ա հատվածին:

Ամենավերևում գտնվում է երկար զարկերակը, որով Arduino- ն սկսում է փոխանցումը SPI-ENABLE գծի վրա `ստրուկների ընտրություն: Այս պահին սկսում են գեներացվել SPI-CLOCK ժամացույցի իմպուլսներ (վերևից երկրորդ գիծ), 8 հատ (1 բայթ փոխանցելու համար):

Վերևից հաջորդ տողը SPI-MOSI- ն է `տվյալները, որոնք մենք փոխանցում ենք Arduino- ից հերթափոխի գրանցամատյանին: Սա երկուականով «210» համարն է `« 11010010 »:

Տեղափոխման ավարտից հետո, SPI-ENABLE զարկերակի վերջում, մենք տեսնում ենք, որ հերթափոխի գրանցամատյանը նույն արժեքն է դրել իր 8 ոտքերի վրա: Ես սա ընդգծել եմ կապույտ կետավոր գծով և պիտակավորել հստակության արժեքները:

Numberուգահեռ ավտոբուսի վրա 210 համարի տեղադրումը SPI- ի միջոցով
Numberուգահեռ ավտոբուսի վրա 210 համարի տեղադրումը SPI- ի միջոցով

Քայլ 7

Այժմ մեր ուշադրությունը դարձնենք Բ հատվածին:

Կրկին ամեն ինչ սկսվում է ստրուկ ընտրելու և ժամացույցի 8 իմպուլս առաջացնելու հետ:

SPI-MOSI գծի վերաբերյալ տվյալներն այժմ «0» են:Այսինքն ՝ այս պահին գրանցամատյանում գրում ենք «0» թիվը:

Բայց մինչ փոխանցումն ավարտված է, գրանցամատյանում պահվում է «11010010» արժեքը: Այն դուրս է գալիս զուգահեռ կապում Q0.. Q7, և դուրս է գալիս, երբ գծում կան ժամացույցի իմպուլսներ զուգահեռ ելքից Q7 'դեպի SPI-MISO գիծ, որը մենք տեսնում ենք այստեղ:

0ուգահեռ ավտոբուսի վրա 0 համարի տեղադրումը SPI- ի միջոցով
0ուգահեռ ավտոբուսի վրա 0 համարի տեղադրումը SPI- ի միջոցով

Քայլ 8

Այսպիսով, մենք մանրամասնորեն ուսումնասիրել ենք Arduino- ի և 74HC595 հերթափոխի գրանցամատյանի հիմնական սարքի միջև տեղեկատվության փոխանակման հարցը: Մենք իմացանք, թե ինչպես միացնել հերթափոխի ռեգիստրը, տվյալներ գրել դրա մեջ և կարդալ տվյալներ դրանից:

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