Hogyan Lehet összekapcsolni A Shift Regisztert Az Arduinóval

Hogyan Lehet összekapcsolni A Shift Regisztert Az Arduinóval
Hogyan Lehet összekapcsolni A Shift Regisztert Az Arduinóval

Tartalomjegyzék:

Anonim

Az egyik korábbi cikkben már röviden kitértünk a műszakregiszter használatára, különös tekintettel a 74HC595-re. Vizsgáljuk meg közelebbről a mikrokapcsolat használatának lehetőségeit és eljárását.

Szükséges

  • - Arduino;
  • - műszakregiszter 74HC595;
  • - összekötő vezetékek.

Utasítás

1. lépés

A 74HC595 váltóregisztert és hasonlókat eszközként használják a soros adatok párhuzamos konvertálásához, és az adatok "reteszeként" is használhatók, az átadott állapotot tartva.

A kihúzás (kitűzés) a bal oldali ábrán látható. Céljuk a következő.

Q0… Q7 - párhuzamos adatkimenetek;

GND - test (0 V);

Q7 '- soros adatkimenet;

^ MR - master visszaállítása (aktív alacsony);

SHcp - shift regiszter óra bemenet;

STcp - "reteszelt" óra impulzus bemenet;

^ OE - kimenet engedélyezése (aktív alacsony);

Ds - soros adatbevitel;

Vcc - tápegység +5 V.

Szerkezetileg a mikrokapcsolás többféle esetben készül; A jobb oldali ábrán láthatóat - a kimenetet - azért fogom használni, mert könnyebb kenyérdeszkával használni.

2. lépés

Hadd idézzem fel röviden az SPI soros interfészt, amelyet az adatok átvitelére fogunk használni a shift regiszterbe.

Az SPI egy négyvezetékes, kétirányú soros interfész, amelyben egy master és egy slave vesz részt. A mester esetünkben az Arduino lesz, a rabszolga a 74HC595 regiszter lesz.

Az Arduino fejlesztői környezete rendelkezik egy beépített könyvtárral az SPI felületen való munkához. Alkalmazásakor az ábrán megjelölt következtetéseket használjuk:

SCLK - SPI órajel kimenet;

MOSI - adatok a mestertől a rabszolgáig;

MISO - adatok a rabszolgától a masterig;

SS - szolga kiválasztása.

Arduino tábla szabványos SPI csapok
Arduino tábla szabványos SPI csapok

3. lépés

Állítsuk össze az áramkört, mint a képen.

Csatlakoztatok egy logikai analizátort a shift regiszteres mikrokapcsoló minden érintkezőjéhez. Segítségével meglátjuk, hogy mi történik fizikai szinten, milyen jelek merre mennek, és kitaláljuk, mit jelentenek. Valami olyannak kell kinéznie, mint a fénykép.

A 74HC595 váltóregiszter Arduino kapcsolási kapcsolata
A 74HC595 váltóregiszter Arduino kapcsolási kapcsolata

4. lépés

Írjunk egy ilyen vázlatot, és töltsük be az Arduino memóriába.

A PIN_SPI_SS változó egy belső standard konstans, amely megfelel az Arduino "10" tűjének, amikor az itt használt SPI interfész mestereként használjuk. Elvileg ugyanolyan jól használhatnánk bármilyen más digitális tűt az Arduino-n; akkor deklarálnunk kellene és beállítanunk az üzemmódját.

Ennek a tűnek a LOW adagolásával aktiváljuk a váltási regiszterünket az adáshoz / fogadáshoz. Az átvitel után ismét HIGH-ra emeljük a feszültséget, és a csere véget ér.

Vázlat a műszakregiszter működésének bemutatására
Vázlat a műszakregiszter működésének bemutatására

5. lépés

Változtassuk áramkörünket munkává, és nézzük meg, mit mutat nekünk a logikai elemző. Az időzítési diagram általános nézete az ábrán látható.

A kék szaggatott vonal 4 SPI vonalat, a piros szaggatott vonal a shift regiszter párhuzamos adatainak 8 csatornáját mutatja.

Az időskála A pontja az a pillanat, amikor a "210" számot átviszik a váltási regiszterbe, B az a pillanat, amikor a "0" számot beírják, C az elejétől megismétlődő ciklus.

Amint láthatja, A-tól B-ig - 10,03 ezredmásodperc, és B-től C-ig - 90,12 ezredmásodperc, majdnem úgy, ahogy a vázlatban kértük. Egy kis kiegészítés 0, 03 és 0, 12 ms alatt a soros adatok átvitelének ideje az Arduino-ból, tehát itt nincs pontosan 10 és 90 ms.

Az Arduino csere- és váltóregiszter 74HC595 időzítési diagramja
Az Arduino csere- és váltóregiszter 74HC595 időzítési diagramja

6. lépés

Vizsgáljuk meg közelebbről az A szakaszt.

A legtetején egy hosszú impulzus található, amellyel az Arduino megkezdi az adást az SPI-ENABLE vonalon - a szolga kiválasztása. Ekkor SPI-CLOCK óraimpulzusok kezdenek keletkezni (felülről a második sor), 8 darab (1 bájt átvitelére).

A következő sor felülről az SPI-MOSI - az adatok, amelyeket átadunk az Arduino-ból a shift regiszterbe. Ez a szám a "210" bináris formában - "11010010".

Az átvitel befejezése után, az SPI-ENABLE impulzus végén azt látjuk, hogy a shift regiszter ugyanazt az értéket állította be a 8 lábán. Ezt kék pontozott vonallal emeltem ki, és az érthetőség érdekében felcímkéztem az értékeket.

A 210-es szám beállítása párhuzamos buszon az SPI segítségével
A 210-es szám beállítása párhuzamos buszon az SPI segítségével

7. lépés

Most fordítsuk figyelmünket a B szakaszra.

Ismét minden azzal kezdődik, hogy kiválasztunk egy rabszolgát és 8 óra impulzust generálunk.

Az SPI-MOSI vonal adatai most "0". Vagyis ebben a pillanatban beírjuk a "0" számot a regiszterbe.

De amíg az átvitel nem fejeződik be, a regiszter tárolja az "11010010" értéket. Kimenet a Q0.. Q7 párhuzamos csapokhoz, és akkor kerül kimenetre, ha a Q7 'párhuzamos kimenet és az SPI-MISO vonal között az impulzusok impulzusok vannak.

A 0 szám beállítása párhuzamos buszon az SPI segítségével
A 0 szám beállítása párhuzamos buszon az SPI segítségével

8. lépés

Így részletesen megvizsgáltuk a mester eszköz, amely az Arduino volt, és a 74HC595 váltóregiszter közötti információcsere kérdését. Megtanultuk a műszakregiszter összekapcsolását, az adatok beírását és az adatok kiolvasását.

Ajánlott: