Kā Savienot Maiņu Reģistru Ar Arduino

Satura rādītājs:

Kā Savienot Maiņu Reģistru Ar Arduino
Kā Savienot Maiņu Reģistru Ar Arduino

Video: Kā Savienot Maiņu Reģistru Ar Arduino

Video: Kā Savienot Maiņu Reģistru Ar Arduino
Video: Из Китая Arduino UNO R3 (для начинающих) 2024, Maijs
Anonim

Vienā no iepriekšējiem rakstiem mēs jau īsi pieskārāmies maiņu reģistra izmantošanai, it īpaši 74HC595. Apskatīsim tuvāk iespējas un procedūru darbam ar šo mikroshēmu.

Maiņu reģistrs 74HC595
Maiņu reģistrs 74HC595

Nepieciešams

  • - Arduino;
  • - maiņu reģistrs 74HC595;
  • - savienojošie vadi.

Instrukcijas

1. solis

Maiņu reģistrs 74HC595 un tamlīdzīgi tiek izmantoti kā ierīces sērijveida datu konvertēšanai paralēli, un tos var izmantot arī kā datu "fiksatoru", turot pārsūtīto stāvokli.

Pinout (pinout) ir parādīts attēlā pa kreisi. Viņu mērķis ir šāds.

Q0… Q7 - paralēlas datu izejas;

GND - zeme (0 V);

Q7 '- sērijas datu izvade;

^ MR - reset master (aktīvs zems);

SHcp - maiņu reģistra pulksteņa ievade;

STcp - pulksteņa impulsa ieejas fiksators;

^ OE - izejas iespējošana (aktīva zema);

Ds - sērijveida datu ievade;

Vcc - barošana +5 V.

Strukturāli mikroshēma tiek izgatavota vairākos gadījumos; Es izmantošu to, kas parādīts attēlā pa labi - izvadi, jo to ir vieglāk izmantot ar maizes dēli.

Pārmaiņu reģistra izskats un piespraude
Pārmaiņu reģistra izskats un piespraude

2. solis

Ļaujiet man īsi atgādināt SPI sērijas saskarni, kuru izmantosim, lai pārsūtītu datus uz maiņu reģistru.

SPI ir četru vadu divvirzienu seriālais interfeiss, kurā piedalās kapteinis un vergs. Kapteinis mūsu gadījumā būs Arduino, vergs būs reģistrs 74HC595.

Arduino izstrādes vidē ir iebūvēta bibliotēka darbam ar SPI saskarni. To piemērojot, tiek izmantoti secinājumi, kas atzīmēti attēlā:

SCLK - SPI pulksteņa izeja;

MOSI - dati no kapteiņa līdz vergam;

MISO - dati no verga līdz galvenajam;

SS - vergu izvēle.

Arduino dēļu standarta SPI tapas
Arduino dēļu standarta SPI tapas

3. solis

Saliksim ķēdi kā attēlā.

Es arī savienošu loģisko analizatoru ar visām maiņu reģistra mikroshēmas tapām. Ar tās palīdzību mēs redzēsim, kas notiek fiziskajā līmenī, kādi signāli uz kurieni virzās, un izdomāsim, ko tie nozīmē. Tam vajadzētu izskatīties apmēram kā fotoattēlam.

Elektroinstalācijas shēma maiņas reģistram 74HC595 uz Arduino
Elektroinstalācijas shēma maiņas reģistram 74HC595 uz Arduino

4. solis

Uzrakstīsim šādu skici un ielādēsim to Arduino atmiņā.

Mainīgais PIN_SPI_SS ir iekšējā standarta konstante, kas atbilst Arduino tapai "10", ja to izmanto kā SPI saskarnes galveno, kuru mēs šeit izmantojam. Principā mēs tikpat labi varētu izmantot jebkuru citu digitālo tapu Arduino; tad mums tas būtu jādeklarē un jāiestata tā darbības režīms.

Padodot šo tapu LOW, mēs aktivizējam mūsu maiņu reģistru nosūtīšanai / saņemšanai. Pēc pārraides mēs atkal paaugstinām spriegumu uz HIGH, un apmaiņa beidzas.

Skice, lai parādītu maiņu reģistra darbību
Skice, lai parādītu maiņu reģistra darbību

5. solis

Pārvērsim savu ķēdi darbā un redzēsim, ko mums parāda loģiskais analizators. Laika diagrammas vispārējais skats ir parādīts attēlā.

Zilā pārtrauktajā līnijā ir redzamas 4 SPI līnijas, sarkanajā punktētā līnijā ir redzami 8 maiņu reģistra paralēlu datu kanāli.

Laika skalas punkts A ir brīdis, kad skaitlis "210" tiek pārsūtīts uz maiņu reģistru, B ir brīdis, kad tiek rakstīts skaitlis "0", C ir cikls, kas atkārtojas no sākuma.

Kā redzat, no A līdz B - 10,03 milisekundes, un no B līdz C - 90,12 milisekundes, gandrīz kā mēs prasījām skicē. Neliels papildinājums 0, 03 un 0, 12 ms laikā ir sērijveida datu pārsūtīšanas laiks no Arduino, tāpēc mums šeit nav precīzi 10 un 90 ms.

Arduino apmaiņas un maiņu reģistra 74HC595 laika shēma
Arduino apmaiņas un maiņu reģistra 74HC595 laika shēma

6. solis

Apskatīsim A sadaļu tuvāk.

Pašā augšpusē ir garš impulss, ar kuru Arduino uzsāk pārraidi līnijā SPI-ENABLE - vergu izvēle. Šajā laikā sāk veidoties SPI-CLOCK pulksteņa impulsi (otrā līnija no augšas), 8 gabali (1 baita pārsūtīšanai).

Nākamā rinda no augšas ir SPI-MOSI - dati, kurus mēs pārsūtām no Arduino uz maiņu reģistru. Tas ir mūsu skaitlis "210" binārā formā - "11010010".

Pēc pārsūtīšanas pabeigšanas impulsa SPI-ENABLE beigās mēs redzam, ka maiņu reģistrs ir iestatījis to pašu vērtību uz 8 kājām. Es to esmu izcēlis ar zilu punktētu līniju un skaidrības labad iezīmējis vērtības.

Numura 210 iestatīšana paralēlajā kopnē, izmantojot SPI
Numura 210 iestatīšana paralēlajā kopnē, izmantojot SPI

7. solis

Tagad pievērsīsim uzmanību B sadaļai.

Atkal viss sākas ar verga izvēli un 8 pulksteņa impulsu ģenerēšanu.

Dati līnijā SPI-MOSI tagad ir "0". Tas ir, šajā brīdī mēs ierakstām reģistrā skaitli "0".

Bet, kamēr pārsūtīšana nav pabeigta, reģistrā tiek saglabāta vērtība "11010010". Tas tiek izvadīts uz paralēlajām tapām Q0.. Q7 un tiek izvadīts, ja līnijā no paralēlās izejas Q7 'līdz līnijai SPI-MISO ir pulksteņa impulsi, ko mēs šeit redzam.

Numura 0 iestatīšana paralēlajā kopnē, izmantojot SPI
Numura 0 iestatīšana paralēlajā kopnē, izmantojot SPI

8. solis

Tādējādi mēs esam detalizēti izpētījuši informācijas apmaiņas jautājumu starp galveno ierīci, kas bija Arduino, un 74HC595 maiņu reģistru. Mēs iemācījāmies savienot maiņu reģistru, ierakstīt tajā datus un nolasīt no tā datus.

Ieteicams: