Katika moja ya nakala zilizopita, tayari tuligusia kifupi juu ya utumiaji wa rejista ya mabadiliko, haswa, 74HC595. Wacha tuangalie kwa karibu uwezo na utaratibu wa kufanya kazi na microcircuit hii.
Muhimu
- - Arduino;
- - rejista ya kuhama 74HC595;
- - kuunganisha waya.
Maagizo
Hatua ya 1
Sajili ya Shift 74HC595 na zingine hutumiwa kama vifaa vya kubadilisha data ya serial kuwa sawa, na pia inaweza kutumika kama "latch" ya data, inayoshikilia hali iliyohamishwa.
Pinout (pinout) inaonyeshwa kwenye takwimu upande wa kushoto. Kusudi lao ni kama ifuatavyo.
Q0… Q7 - matokeo ya data yanayofanana;
GND - ardhi (0 V);
Q7 '- pato la data ya serial;
^ MR - upya bwana (hai chini);
SHcp - zamu ya kuingiza sajili ya saa;
STcp - pembejeo ya kunde ya saa "latch";
^ OE - pato kuwezesha (kazi chini);
Ds - uingizaji wa data ya serial;
Vcc - usambazaji wa umeme +5 V.
Kimuundo, microcircuit hufanywa katika aina kadhaa za kesi; Nitatumia ile iliyoonyeshwa kwenye takwimu iliyo kulia - pato - kwa sababu ni rahisi kutumia na ubao wa mkate.
Hatua ya 2
Acha nikumbuke kwa kifupi kiolesura cha serial cha SPI, ambacho tutatumia kuhamisha data kwenye rejista ya mabadiliko.
SPI ni kiwambo cha waya zinazoongoza pande zote mbili ambazo bwana na mtumwa hushiriki. Bwana katika kesi yetu atakuwa Arduino, mtumwa atasajiliwa 74HC595.
Mazingira ya maendeleo ya Arduino yana maktaba iliyojengwa kwa kufanya kazi kwenye kiolesura cha SPI. Wakati wa kuitumia, hitimisho hutumiwa ambazo zimewekwa alama kwenye takwimu:
SCLK - Pato la saa la SPI;
MOSI - data kutoka kwa bwana hadi mtumwa;
MISO - data kutoka kwa mtumwa hadi bwana;
SS - uteuzi wa watumwa.
Hatua ya 3
Wacha tuweke pamoja mzunguko kama kwenye picha.
Pia nitaunganisha analyzer ya mantiki kwa pini zote za rejista ndogo ya sajili. Kwa msaada wake, tutaona kile kinachotokea katika kiwango cha mwili, ni ishara gani zinaenda wapi, na tutajua nini wanamaanisha. Inapaswa kuonekana kama picha.
Hatua ya 4
Wacha tuandike mchoro kama huu na upakie kwenye kumbukumbu ya Arduino.
PIN_SPI_SS inayobadilika ni hali ya kawaida ya ndani inayolingana na pini "10" ya Arduino wakati inatumiwa kama bwana wa kiolesura cha SPI tunachotumia hapa. Kimsingi, tunaweza kutumia pini nyingine yoyote ya dijiti kwenye Arduino; basi tutalazimika kuitangaza na kuweka hali yake ya uendeshaji.
Kwa kulisha pini hii CHINI, tunaamsha rejista yetu ya zamu ya kupitisha / kupokea. Baada ya usafirishaji, tunainua voltage kwa HIGH tena, na ubadilishaji unaisha.
Hatua ya 5
Wacha tugeuze mzunguko wetu kuwa kazi na tuone nini analyzer ya mantiki inatuonyesha. Mtazamo wa jumla wa mchoro wa wakati unaonyeshwa kwenye takwimu.
Mstari uliopigwa na hudhurungi unaonyesha mistari 4 ya SPI, laini nyekundu iliyopigwa inaonyesha vituo 8 vya data sawa ya rejista ya mabadiliko.
Point A kwa kiwango cha wakati ni wakati ambapo nambari "210" inahamishiwa kwa rejista ya zamu, B ni wakati ambapo nambari "0" imeandikwa, C ni mzunguko unaorudia kutoka mwanzo.
Kama unavyoona, kutoka A hadi B - 10.03 milliseconds, na kutoka B hadi C - 90.12 milliseconds, karibu kama tulivyouliza kwenye mchoro. Nyongeza ndogo katika 0, 03 na 0, 12 ms ni wakati wa kuhamisha data ya serial kutoka Arduino, kwa hivyo hatuna 10 na 90 ms hapa.
Hatua ya 6
Wacha tuangalie kwa karibu sehemu A.
Juu kabisa kuna mapigo marefu ambayo Arduino huanzisha usambazaji kwenye laini ya UWEZO WA SPI - uteuzi wa watumwa. Kwa wakati huu, kunde za saa za SPI-CLOCK zinaanza kuzalishwa (mstari wa pili kutoka juu), vipande 8 (kwa kuhamisha baiti 1).
Mstari unaofuata kutoka juu ni SPI-MOSI - data ambayo tunahamisha kutoka Arduino hadi rejista ya mabadiliko. Hii ndio nambari yetu "210" kwa binary - "11010010".
Baada ya kukamilika kwa uhamisho, mwisho wa kunde ya SPI-ENABLE, tunaona kuwa rejista ya mabadiliko imeweka thamani sawa kwa miguu yake 8. Nimeangazia hii na laini ya dotted ya bluu na kuweka alama kwa uwazi.
Hatua ya 7
Sasa wacha tuangalie sehemu ya B.
Tena, yote huanza na kuchagua mtumwa na kutengeneza mapigo ya saa 8.
Takwimu kwenye laini ya SPI-MOSI sasa ni "0". Hiyo ni, kwa wakati huu tunaandika nambari "0" kwenye sajili.
Lakini mpaka uhamisho ukamilike, rejista inahifadhi thamani "11010010". Ni pato kwa pini zinazofanana Q0.. Q7, na ni pato wakati kuna saa za laini kwenye laini kutoka kwa pato linalofanana Q7 'hadi laini ya SPI-MISO, ambayo tunaona hapa.
Hatua ya 8
Kwa hivyo, tumejifunza kwa kina suala la ubadilishaji wa habari kati ya kifaa kikuu, ambacho kilikuwa Arduino, na rejista ya zamu ya 74HC595. Tulijifunza jinsi ya kuunganisha rejista ya mabadiliko, andika data ndani yake na usome data kutoka kwake.