Cum Se Conectează Registrul De Schimbare La Arduino

Cuprins:

Cum Se Conectează Registrul De Schimbare La Arduino
Cum Se Conectează Registrul De Schimbare La Arduino

Video: Cum Se Conectează Registrul De Schimbare La Arduino

Video: Cum Se Conectează Registrul De Schimbare La Arduino
Video: How to Add Outputs to an #Arduino using a Shift Register - The Learning Circuit 2024, Mai
Anonim

Într-unul din articolele anterioare, am atins deja pe scurt utilizarea unui registru de schimbare, în special 74HC595. Să aruncăm o privire mai atentă la capacitățile și procedura de lucru cu acest microcircuit.

Shift Register 74HC595
Shift Register 74HC595

Necesar

  • - Arduino;
  • - registru schimbare 74HC595;
  • - conectarea firelor.

Instrucțiuni

Pasul 1

Registrul de schimbare 74HC595 și altele asemenea sunt utilizate ca dispozitive pentru conversia datelor seriale în paralel și pot fi, de asemenea, utilizate ca „blocare” pentru date, păstrând starea transferată.

Pinout (pinout) este prezentat în figura din stânga. Scopul lor este următorul.

Q0 … Q7 - ieșiri paralele de date;

GND - sol (0 V);

Q7 '- ieșire de date seriale;

^ MR - reset master (activ redus);

SHcp - intrare ceas registru shift;

STcp - intrarea impulsului ceasului "zăvor";

^ OE - activare ieșire (activă scăzută);

DS - introducere date seriale;

Vcc - sursa de alimentare +5 V.

Structural, microcircuitul este realizat în mai multe tipuri de cazuri; O voi folosi pe cea prezentată în figura din dreapta - ieșirea - pentru că este mai ușor de utilizat cu o placă de calcul.

Schimbarea aspectului registrului și deplasarea
Schimbarea aspectului registrului și deplasarea

Pasul 2

Permiteți-mi să amintesc pe scurt interfața serială SPI, pe care o vom folosi pentru a transfera date în registrul de schimbare.

SPI este o interfață serial bidirecțională cu patru fire la care participă un master și un slave. Stăpânul în cazul nostru va fi Arduino, sclavul va fi registrul 74HC595.

Mediul de dezvoltare pentru Arduino are o bibliotecă încorporată pentru lucrul la interfața SPI. La aplicarea acestuia, se utilizează concluziile care sunt marcate în figură:

SCLK - ieșire ceas SPI;

MOSI - date de la stăpân la sclav;

MISO - date de la sclav la stăpân;

SS - selecție sclavă.

Placa Arduino pini SPI standard
Placa Arduino pini SPI standard

Pasul 3

Să punem împreună circuitul ca în imagine.

Voi conecta, de asemenea, un analizor logic la toți pinii microcircuitului registrului de schimbare. Cu ajutorul acestuia, vom vedea ce se întâmplă la nivel fizic, ce semnale merg unde și vom afla ce înseamnă. Ar trebui să arate ca fotografia.

Schema de conectare pentru registrul de schimb 74HC595 la Arduino
Schema de conectare pentru registrul de schimb 74HC595 la Arduino

Pasul 4

Să scriem o schiță ca aceasta și să o încărcăm în memoria Arduino.

Variabila PIN_SPI_SS este o constantă standard internă care corespunde pinului "10" al Arduino atunci când este utilizată ca master a interfeței SPI pe care o folosim aici. În principiu, am putea folosi la fel de bine orice alt pin digital de pe Arduino; atunci ar trebui să-l declarăm și să-i setăm modul de funcționare.

Alimentând acest pin LOW, activăm registrul nostru de schimbare pentru transmisie / recepție. După transmisie, ridicăm din nou tensiunea la HIGH, iar schimbul se termină.

O schiță pentru a demonstra funcționarea registrului de schimbare
O schiță pentru a demonstra funcționarea registrului de schimbare

Pasul 5

Să transformăm circuitul nostru în muncă și să vedem ce ne arată analizatorul logic. Vederea generală a diagramei de sincronizare este prezentată în figură.

Linia punctată albastră arată 4 linii SPI, linia punctată roșie arată 8 canale de date paralele ale registrului de deplasare.

Punctul A pe scara de timp este momentul în care numărul "210" este transferat în registrul de schimbare, B este momentul în care este scris numărul "0", C este ciclul care se repetă de la început.

După cum puteți vedea, de la A la B - 10,03 milisecunde și de la B la C - 90,12 milisecunde, aproape așa cum am cerut în schiță. O mică adăugare în 0, 03 și 0, 12 ms este timpul pentru transferul datelor seriale de pe Arduino, deci nu avem exact 10 și 90 ms aici.

Diagrama de timp a schimbului Arduino și a registrului de schimbare 74HC595
Diagrama de timp a schimbului Arduino și a registrului de schimbare 74HC595

Pasul 6

Să aruncăm o privire mai atentă la secțiunea A.

În partea de sus este un impuls lung cu care Arduino inițiază transmisia pe linia SPI-ENABLE - selecția slave. În acest moment, impulsurile de ceas SPI-CLOCK încep să fie generate (a doua linie din partea de sus), 8 bucăți (pentru transferul de 1 octet).

Următoarea linie din partea de sus este SPI-MOSI - datele pe care le transferăm de la Arduino la registrul de schimbare. Acesta este numărul nostru "210" în binar - "11010010".

După finalizarea transferului, la sfârșitul impulsului SPI-ENABLE, vedem că registrul de schimbare a stabilit aceeași valoare pe cele 8 picioare ale sale. Am evidențiat acest lucru cu o linie punctată albastră și am etichetat valorile pentru claritate.

Setarea numărului 210 pe o magistrală paralelă prin SPI
Setarea numărului 210 pe o magistrală paralelă prin SPI

Pasul 7

Acum să ne îndreptăm atenția asupra secțiunii B.

Din nou, totul începe cu alegerea unui sclav și generarea a 8 impulsuri de ceas.

Datele de pe linia SPI-MOSI sunt acum „0”. Adică, în acest moment scriem numărul „0” în registru.

Dar până la finalizarea transferului, registrul stochează valoarea „11010010”. Acesta este transmis la pinii paraleli Q0.. Q7 și este emis când există impulsuri de ceas în linie de la ieșirea paralelă Q7 'la linia SPI-MISO, pe care o vedem aici.

Setarea numărului 0 pe o magistrală paralelă prin SPI
Setarea numărului 0 pe o magistrală paralelă prin SPI

Pasul 8

Astfel, am studiat în detaliu problema schimbului de informații între dispozitivul principal, care a fost Arduino, și registrul de schimbare 74HC595. Am învățat cum să conectăm un registru de schimbare, să scriem date în el și să citim date din acesta.

Recomandat: