Kuidas Vahetuste Registrit Arduinoga ühendada

Sisukord:

Kuidas Vahetuste Registrit Arduinoga ühendada
Kuidas Vahetuste Registrit Arduinoga ühendada

Video: Kuidas Vahetuste Registrit Arduinoga ühendada

Video: Kuidas Vahetuste Registrit Arduinoga ühendada
Video: Sagatavošanās pārejai. Krajons_1 2024, November
Anonim

Ühes eelmises artiklis puudutasime juba lühidalt vahetuste registri kasutamist, eriti 74HC595. Vaatame lähemalt selle mikrolülitusega töötamise võimalusi ja protseduure.

Vahetusregister 74HC595
Vahetusregister 74HC595

Vajalik

  • - Arduino;
  • - vahetuste register 74HC595;
  • - juhtmete ühendamine.

Juhised

Samm 1

Nihkeregistrit 74HC595 jms kasutatakse seadmetena seeriandmete paralleelseks teisendamiseks ning neid saab kasutada ka andmete "riivina", hoides ülekantud olekut.

Pinout (pinout) on näidatud joonisel vasakul. Nende eesmärk on järgmine.

Q0… Q7 - paralleelsed andmeväljundid;

GND - maandus (0 V);

Q7 '- jadandmete väljund;

^ MR - lähtestada master (aktiivne madal);

SHcp - nihkeregistri kella sisend;

STcp - "riivi" impulsi sisend;

^ OE - väljundi lubamine (aktiivne madal);

Ds - seeriaandmete sisestamine;

Vcc - toiteallikas +5 V.

Struktuurselt tehakse mikrolülitust mitut tüüpi juhtumitel; Kasutan seda, mis on näidatud paremal joonisel - väljundit, sest seda on leivalauaga lihtsam kasutada.

Vahetusregistri välimus ja kinnitus
Vahetusregistri välimus ja kinnitus

2. samm

Meenutan lühidalt SPI jadaliidest, mida kasutame andmete vahetuste registrisse edastamiseks.

SPI on neljajuhtmeline kahesuunaline jadaliides, milles osalevad ülem ja ori. Meie puhul on peremeheks Arduino, orjaks on register 74HC595.

Arduino arenduskeskkonnas on sisseehitatud teek SPI-liidesega töötamiseks. Selle rakendamisel kasutatakse joonisel märgitud järeldusi:

SCLK - SPI kella väljund;

MOSI - andmed peremehelt orjale;

MISO - andmed orjalt peremehele;

SS - orjade valik.

Arduino pardal olevad SPI tihvtid
Arduino pardal olevad SPI tihvtid

3. samm

Paneme skeemi kokku nagu pildil.

Ühendan loogikaanalüsaatori ka kõigi nihkeregistri mikrolülituse tihvtidega. Selle abil näeme, mis toimub füüsilisel tasandil, millised signaalid kuhu lähevad, ja saame aru, mida need tähendavad. See peaks välja nägema umbes selline nagu foto.

Nihutusregistri 74HC595 ühendamise skeem Arduinole
Nihutusregistri 74HC595 ühendamise skeem Arduinole

4. samm

Kirjutame sellise visandi ja laadime selle Arduino mällu.

Muutuja PIN_SPI_SS on sisemise standardi konstant, mis vastab Arduino tihvtile "10", kui seda kasutatakse siin kasutatava SPI-liidese meistrina. Põhimõtteliselt võiksime sama hästi kasutada Arduino mis tahes muud digitaalset tihvti; siis peaksime selle deklareerima ja selle töörežiimi seadistama.

Selle tihvti LOW söötmisega aktiveerime oma vahetuste registri edastamiseks / vastuvõtmiseks. Pärast ülekannet tõstame pinge uuesti HIGH-le ja vahetus lõpeb.

Visand vahetuste registri toimimise näitamiseks
Visand vahetuste registri toimimise näitamiseks

5. samm

Muutkem oma vooluring tööks ja vaatame, mida loogika analüsaator meile näitab. Ajastusdiagrammi üldvaade on näidatud joonisel.

Sinine katkendjoon näitab 4 SPI joont, punane katkendjoon näitab 8 nihkeregistri paralleelsete andmete kanalit.

Ajaskaala punkt A on hetk, mil arv "210" kantakse nihkeregistrisse, B on hetk, kui kirjutatakse arv "0", C on algusest peale korduv tsükkel.

Nagu näete, A-st B-ni - 10,03 millisekundit ja B-st C-ni - 90,12 millisekundit, peaaegu nagu sketšil küsisime. Väike täiendus 0, 03 ja 0, 12 ms on aeg seeriandmete edastamiseks Arduinost, seega pole meil siin täpselt 10 ja 90 ms.

Arduino vahetuse ja vahetuste registri 74HC595 ajadiagramm
Arduino vahetuse ja vahetuste registri 74HC595 ajadiagramm

6. samm

Vaatame lähemalt A osa.

Kõige tipus on pikk impulss, millega Arduino algatab edastamise liinil SPI-ENABLE - orjavalimine. Sel ajal hakkavad tekkima SPI-CLOCK kella impulsid (ülalt teine rida), 8 tükki (1 baidi ülekandmiseks).

Järgmine rida ülalt on SPI-MOSI - andmed, mille me Arduinost vahetuste registrisse edastame. See on meie number "210" kahendkoodis - "11010010".

Pärast ülekande lõpetamist näeme SPI-ENABLE impulsi lõpus, et nihkeregister on seadnud sama väärtuse oma 8 jalale. Olen selle rõhutanud sinise punktiirjoonega ja märkinud väärtused selguse huvides.

Numbri 210 määramine SPI kaudu paralleelsele siinile
Numbri 210 määramine SPI kaudu paralleelsele siinile

7. samm

Pöörame nüüd tähelepanu jaotisele B.

Jällegi algab kõik orja valimisest ja 8 kellaimpulssi genereerimisest.

SPI-MOSI-liini andmed on nüüd "0". See tähendab, et hetkel kirjutame registrisse numbri "0".

Kuid kuni ülekande lõpuleviimiseni salvestatakse registrisse väärtus "11010010". See väljastatakse paralleelsetele tihvtidele Q0.. Q7 ja väljastatakse siis, kui paralleelsest väljundist Q7 'kuni SPI-MISO jooneni on joonel impulsid, mida me siin näeme.

Numbri 0 määramine SPI kaudu paralleelsel siinil
Numbri 0 määramine SPI kaudu paralleelsel siinil

8. samm

Seega oleme üksikasjalikult uurinud teabevahetuse küsimust põhiseadme, milleks oli Arduino, ja nihkeregistri 74HC595 vahel. Õppisime vahetuste registri ühendamist, sinna andmete sisestamist ja andmete lugemist.

Soovitan: