Kaip Prijungti Pamainų Registrą Prie „Arduino“

Turinys:

Kaip Prijungti Pamainų Registrą Prie „Arduino“
Kaip Prijungti Pamainų Registrą Prie „Arduino“

Video: Kaip Prijungti Pamainų Registrą Prie „Arduino“

Video: Kaip Prijungti Pamainų Registrą Prie „Arduino“
Video: How to Add Outputs to an #Arduino using a Shift Register - The Learning Circuit 2024, Gegužė
Anonim

Viename iš ankstesnių straipsnių mes jau trumpai palietėme pamainų registro naudojimą, visų pirma, 74HC595. Panagrinėkime atidžiau darbo su šia mikroschema galimybes ir tvarką.

Pamainų registras 74HC595
Pamainų registras 74HC595

Būtinas

  • - Arduino;
  • - pamainų registras 74HC595;
  • - jungiamieji laidai.

Nurodymai

1 žingsnis

„Shift“registras 74HC595 ir panašūs elementai naudojami kaip įtaisai, skirti nuosekliems duomenims konvertuoti lygiagrečiai, taip pat gali būti naudojami kaip duomenų „užraktai“, palaikantys perkeltą būseną.

Pins (pinout) parodytas paveikslėlyje kairėje. Jų tikslas yra toks.

Q0… Q7 - lygiagrečios duomenų išvestys;

GND - žemė (0 V);

Q7 '- nuoseklių duomenų išvestis;

^ MR - atstatyti pagrindinį (aktyvus žemas);

SHcp - poslinkio registro laikrodžio įvestis;

STcp - „fiksatoriaus“laikrodžio impulso įvestis;

^ OE - išėjimo įjungimas (aktyvus žemas);

Ds - nuoseklus duomenų įvedimas;

Vcc - maitinimas +5 V.

Struktūriškai mikroschema gaminama kelių tipų atvejais; Aš naudosiu tą, kuris parodytas paveikslėlyje dešinėje - išvestį, nes tai lengviau naudoti su duonos lenta.

„Shift“registro išvaizda ir prisegimas
„Shift“registro išvaizda ir prisegimas

2 žingsnis

Leiskite trumpai prisiminti SPI nuosekliąją sąsają, kurią naudosime duomenims perkelti į pamainų registrą.

SPI yra keturių laidų dvikryptė nuoseklioji sąsaja, kurioje dalyvauja pagrindinis ir vergas. Šeimininkas mūsų atveju bus „Arduino“, vergas bus registruotas 74HC595.

„Arduino“kūrimo aplinkoje yra įmontuota biblioteka, skirta dirbti su SPI sąsaja. Taikant jį, naudojamos išvados, pažymėtos paveikslėlyje:

SCLK - SPI laikrodžio išvestis;

MOSI - duomenys nuo šeimininko iki vergo;

MISO - duomenys nuo vergo iki šeimininko;

SS - vergo pasirinkimas.

„Arduino“lentos standartiniai kaiščiai
„Arduino“lentos standartiniai kaiščiai

3 žingsnis

Sudėkime grandinę, kaip parodyta paveikslėlyje.

Taip pat prie visų poslinkio registro mikroschemos kaiščių prijungsiu loginį analizatorių. Su jo pagalba pamatysime, kas vyksta fiziniame lygmenyje, kokie signalai kur eina, ir išsiaiškinsime, ką jie reiškia. Tai turėtų atrodyti panašiai kaip nuotrauka.

Perjungimo registro 74HC595 į „Arduino“jungimo schema
Perjungimo registro 74HC595 į „Arduino“jungimo schema

4 žingsnis

Parašykime tokį eskizą ir įkelkime jį į „Arduino“atmintį.

Kintamasis PIN_SPI_SS yra vidinio standarto konstanta, kuri atitinka „Arduino“kaištį „10“, kai naudojamas kaip SPI sąsajos, kurią čia naudojame, valdytojas. Iš esmės taip pat gerai galėtume naudoti bet kurį kitą „Arduino“skaitmeninį kaištį; tada turėtume tai deklaruoti ir nustatyti jo veikimo režimą.

Maitindami šį kaištį LOW, mes suaktyviname savo keitimo registrą perduoti / priimti. Po perdavimo vėl pakeliame įtampą iki HIGH, ir mainai baigiasi.

Eskizas, parodantis pamainų registro veikimą
Eskizas, parodantis pamainų registro veikimą

5 žingsnis

Paverskime savo grandinę darbu ir pažiūrėkime, ką mums rodo loginis analizatorius. Bendras laiko diagramos vaizdas parodytas paveikslėlyje.

Mėlyna brūkšninė linija rodo 4 SPI linijas, raudona brūkšninė linija rodo 8 kanalus lygiagrečių poslinkių registro duomenų.

Laiko skalės taškas A yra momentas, kai skaičius „210“perkeliamas į pamainų registrą, B yra momentas, kai užrašomas skaičius „0“, C yra ciklas, kartojantis nuo pradžių.

Kaip matote, nuo A iki B - 10,03 milisekundės, o nuo B iki C - 90,12 milisekundės, beveik taip, kaip mes paprašėme eskize. Mažas papildymas per 0, 03 ir 0, 12 ms yra laikas perduoti serijinius duomenis iš „Arduino“, todėl čia mes neturime tiksliai 10 ir 90 ms.

„Arduino“mainų ir pamainų registro 74HC595 laiko schema
„Arduino“mainų ir pamainų registro 74HC595 laiko schema

6 žingsnis

Pažvelkime atidžiau į A skyrių.

Pačiame viršuje yra ilgas impulsas, kuriuo „Arduino“inicijuoja perdavimą SPI-ENABLE linijoje - vergo pasirinkimas. Šiuo metu pradedami generuoti SPI-CLOCK laikrodžio impulsai (antra eilutė iš viršaus), 8 vienetai (1 baitui perduoti).

Kita eilutė iš viršaus yra SPI-MOSI - duomenys, kuriuos mes perkeliame iš „Arduino“į pamainų registrą. Tai yra mūsų skaičius „210“dvejetainiu - „11010010“.

Baigę perkėlimą, pasibaigus „SPI-ENABLE“impulsui, matome, kad poslinkių registras nustatė tą pačią vertę savo 8 kojoms. Aš tai paryškinau mėlyna punktyrine linija ir aiškumo sumetimais pažymėjau vertes.

Skaičiaus 210 nustatymas lygiagrečioje magistralėje per SPI
Skaičiaus 210 nustatymas lygiagrečioje magistralėje per SPI

7 žingsnis

Dabar atkreipkime dėmesį į B skyrių.

Vėlgi, viskas prasideda nuo vergo pasirinkimo ir 8 laikrodžio impulsų generavimo.

SPI-MOSI linijos duomenys dabar yra „0“. Tai yra, šiuo metu mes įrašome skaičių "0" į registrą.

Kol perkėlimas nebus baigtas, registre bus įrašyta reikšmė „11010010“. Jis išvedamas į lygiagrečius kaiščius Q0.. Q7 ir išvedamas, kai linijoje nuo lygiagretaus išėjimo Q7 'iki SPI-MISO linijos yra laikrodžio impulsai, kuriuos matome čia.

Skaičiaus 0 nustatymas lygiagrečioje magistralėje per SPI
Skaičiaus 0 nustatymas lygiagrečioje magistralėje per SPI

8 žingsnis

Taigi mes išsamiai išnagrinėjome informacijos mainų tarp pagrindinio įrenginio, kuris buvo „Arduino“, ir 74HC595 pamainų registro klausimą. Sužinojome, kaip prijungti pamainų registrą, įrašyti į jį duomenis ir nuskaityti duomenis iš jo.

Rekomenduojamas: