Në një nga artikujt e mëparshëm, ne tashmë prekëm shkurtimisht përdorimin e një regjistri ndërrimi, në veçanti, 74HC595. Le të shohim nga afër aftësitë dhe procedurën për të punuar me këtë mikrocircuit.
E nevojshme
- - Arduino;
- - regjistri i ndërrimit 74HC595;
- - telat lidhës.
Udhëzimet
Hapi 1
Regjistri i ndërrimit 74HC595 dhe të ngjashme përdoren si pajisje për shndërrimin e të dhënave serike në paralele, dhe gjithashtu mund të përdoren si një "shul" për të dhënat, duke mbajtur gjendjen e transferuar.
Pinout (pinout) tregohet në figurën në të majtë. Qëllimi i tyre është si më poshtë.
Q0… Q7 - rezultatet paralele të të dhënave;
GND - tokë (0 V);
Q7 '- dalja e të dhënave serike;
^ MR - rivendosni masterin (aktiv i ulët);
SHcp - hyrja e orës së regjistrit të ndërrimit;
STcp - hyrja e pulsit të orës "shul";
^ OE - aktivizimi i daljes (aktiv i ulët);
Ds - hyrja e të dhënave serike;
Vcc - furnizimi me energji +5 V.
Strukturisht, mikrocircuit është bërë në disa lloje të çështjeve; Do të përdor atë që tregohet në figurën në të djathtë - daljen - sepse është më e lehtë për t’u përdorur me një tavë buke.
Hapi 2
Më lejoni të kujtoj shkurtimisht ndërfaqen serike SPI, të cilën do ta përdorim për të transferuar të dhëna në regjistrin e ndërrimit.
SPI është një ndërfaqe serike dy-drejtuese me katër tela në të cilën marrin pjesë një master dhe një skllav. Mjeshtri në rastin tonë do të jetë Arduino, skllavi do të jetë regjistri 74HC595.
Mjedisi i zhvillimit për Arduino ka një bibliotekë të integruar për të punuar në ndërfaqen SPI. Kur zbatohet, përdoren konkluzionet që janë shënuar në figurë:
SCLK - dalja e orës SPI;
MOSI - të dhëna nga master në skllav;
MISO - të dhëna nga skllavi në master;
SS - zgjedhja e skllavit.
Hapi 3
Le të bashkojmë qarkun si në foto.
Unë gjithashtu do të lidh një analizues logjik me të gjitha kunjat e mikrocirkut të regjistrit të ndërrimit. Me ndihmën e tij, ne do të shohim se çfarë po ndodh në nivelin fizik, cilat sinjale po shkojnë ku dhe ne do të kuptojmë se çfarë nënkuptojnë ato. Duhet të duket diçka si fotografia.
Hapi 4
Le të shkruajmë një skicë si kjo dhe ta ngarkojmë atë në kujtesën Arduino.
Ndryshorja PIN_SPI_SS është një konstante standarde e brendshme që i përgjigjet pinit "10" të Arduino kur përdoret si master i ndërfaqes SPI që po përdorim këtu. Në parim, ne mund të përdorim po aq mirë çdo pin tjetër dixhital në Arduino; atëherë do të na duhej ta deklaronim dhe të vendosnim mënyrën e funksionimit.
Duke e ushqyer këtë kunj LOW, ne aktivizojmë regjistrin tonë të ndërrimit për transmetim / marrje. Pas transmetimit, ne përsëri e ngremë tensionin në HIGH dhe shkëmbimi përfundon.
Hapi 5
Le ta kthejmë qarkun tonë në punë dhe të shohim se çfarë na tregon analisti logjik. Pamja e përgjithshme e diagramit të kohës tregohet në figurë.
Vija blu e ndërprerë tregon 4 vija SPI, vija e kuqe e ndërprerë tregon 8 kanale të të dhënave paralele të regjistrit të ndërrimit.
Pika A në shkallën kohore është momenti kur numri "210" transferohet në regjistrin e ndërrimit, B është momenti kur shkruhet numri "0", C është cikli që përsëritet nga fillimi.
Siç mund ta shihni, nga A në B - 10.03 milisekonda, dhe nga B në C - 90.12 milisekonda, pothuajse siç kërkuam në skicë. Një shtesë e vogël në 0, 03 dhe 0, 12 ms është koha për transferimin e të dhënave serike nga Arduino, kështu që këtu nuk kemi saktësisht 10 dhe 90 ms.
Hapi 6
Le të shohim më nga afër seksionin A.
Në krye është një impuls i gjatë me të cilin Arduino fillon transmetimin në linjën SPI-ENABLE - zgjedhja e skllavit. Në këtë kohë, impulset e orës SPI-CLOCK fillojnë të gjenerohen (linja e dytë nga lart), 8 copë (për transferimin e 1 bajt).
Linja tjetër nga lart është SPI-MOSI - të dhënat që transferojmë nga Arduino në regjistrin e ndërrimit. Ky është numri ynë "210" në binar - "11010010".
Pas përfundimit të transferimit, në fund të impulsit SPI-ENABLE, ne shohim se regjistri i ndërrimit ka vendosur të njëjtën vlerë në 8 këmbët e tij. Unë e kam theksuar këtë me një vijë blu me pika dhe i kam etiketuar vlerat për qartësi.
Hapi 7
Tani le ta kthejmë vëmendjen tonë në seksionin B.
Përsëri, gjithçka fillon me zgjedhjen e një skllavi dhe gjenerimin e 8 impulseve të orës.
Të dhënat në linjën SPI-MOSI janë tani "0". Kjo është, në këtë moment ne shkruajmë numrin "0" në regjistër.
Por derisa transferimi të jetë i plotë, regjistri ruan vlerën "11010010". Outputshtë dalur në kunjat paralele Q0.. Q7, dhe është dalur kur ka impulse të orës në vijë nga dalja paralele Q7 'në vijën SPI-MISO, të cilën ne e shohim këtu.
Hapi 8
Kështu, ne kemi studiuar në detaje çështjen e shkëmbimit të informacionit midis pajisjes kryesore, e cila ishte Arduino, dhe regjistrit të ndërrimit 74HC595. Ne mësuam se si të lidhim një regjistër turni, të shkruajmë të dhëna në të dhe të lexojmë të dhëna prej tij.