Как да свържа регистъра на смяната към Arduino

Съдържание:

Как да свържа регистъра на смяната към Arduino
Как да свържа регистъра на смяната към Arduino

Видео: Как да свържа регистъра на смяната към Arduino

Видео: Как да свържа регистъра на смяната към Arduino
Видео: Ардуино для начинающих. Загрузка скетча на плату. Установка Arduino IDE 2024, Ноември
Anonim

В една от предишните статии вече накратко засегнахме използването на регистър за смяна, по-специално 74HC595. Нека разгледаме по-отблизо възможностите и процедурата за работа с тази микросхема.

Регистриране на смяна 74HC595
Регистриране на смяна 74HC595

Необходимо

  • - Arduino;
  • - регистър за смяна 74HC595;
  • - свързващи проводници.

Инструкции

Етап 1

Shift регистър 74HC595 и други подобни се използват като устройства за преобразуване на серийни данни в паралелни и могат да се използват и като "резе" за данни, задържащи прехвърленото състояние.

Пинът (pinout) е показан на фигурата вляво. Целта им е следната.

Q0 … Q7 - паралелни изходи за данни;

GND - земя (0 V);

Q7 '- сериен изход на данни;

^ MR - нулиране на главен (активен нисък);

SHcp - вход за часовник на регистър на смяна;

STcp - импулсен вход за тактова честота "резе";

^ OE - активиране на изхода (активно ниско);

Ds - последователно въвеждане на данни;

Vcc - захранване +5 V.

Структурно микросхемата е направена в няколко вида случаи; Ще използвам показаната на фигурата вдясно - изхода - защото по-лесно е да се използва с макет.

Външен вид и разпечатка на регистъра за смяна
Външен вид и разпечатка на регистъра за смяна

Стъпка 2

Позволете ми накратко да си припомня серийния интерфейс SPI, който ще използваме за прехвърляне на данни към регистъра за смяна.

SPI е двупроводен двупосочен сериен интерфейс, в който участват главен и подчинен. Главният в нашия случай ще бъде Arduino, подчиненият ще бъде регистриран 74HC595.

Средата за разработка на Arduino има вградена библиотека за работа по интерфейса SPI. При прилагането му се използват заключенията, отбелязани на фигурата:

SCLK - изход на часовника SPI;

MOSI - данни от главен на подчинен;

MISO - данни от подчинен на главен;

SS - избор на роб.

Стандартни SPI щифтове за платка Arduino
Стандартни SPI щифтове за платка Arduino

Стъпка 3

Нека да съберем веригата, както е на снимката.

Също така ще свържа логически анализатор към всички изводи на микросхемата на регистъра за смяна. С него ще видим какво се случва на физическо ниво, какви сигнали къде отиват и ще разберем какво означават те. Трябва да изглежда нещо като снимката.

Схема за свързване на регистър за смяна 74HC595 към Arduino
Схема за свързване на регистър за смяна 74HC595 към Arduino

Стъпка 4

Нека напишем скица като тази и я заредим в паметта на Arduino.

Променливата PIN_SPI_SS е вътрешна стандартна константа, която съответства на щифт "10" на Arduino, когато се използва като главен интерфейс SPI, който използваме тук. По принцип бихме могли също така да използваме всеки друг цифров щифт на Arduino; тогава ще трябва да го декларираме и да зададем режима му на работа.

Чрез подаване на този щифт LOW, ние активираме нашия регистър за смяна за предаване / приемане. След предаването отново вдигаме напрежението до HIGH и обмяната приключва.

Скица за демонстрация на работата на регистъра за смяна
Скица за демонстрация на работата на регистъра за смяна

Стъпка 5

Нека превърнем нашата схема в работа и да видим какво ни показва логическият анализатор. Общият изглед на времевата диаграма е показан на фигурата.

Синята пунктирана линия показва 4 SPI линии, червената пунктирана линия показва 8 канала успоредни данни на регистъра на смяната.

Точка А на времевата скала е моментът, когато числото "210" се прехвърля в регистъра за смяна, В е моментът, когато се записва числото "0", С е цикълът, повтарящ се от началото.

Както можете да видите, от А до Б - 10,03 милисекунди и от Б до В - 90,12 милисекунди, почти както поискахме в скицата. Малко добавяне в 0, 03 и 0, 12 ms е времето за прехвърляне на серийни данни от Arduino, така че тук нямаме точно 10 и 90 ms.

Времева диаграма на Arduino обмен и регистър за смяна 74HC595
Времева диаграма на Arduino обмен и регистър за смяна 74HC595

Стъпка 6

Нека разгледаме по-отблизо раздел А.

В самия връх има дълъг импулс, с който Arduino инициира предаване по линията SPI-ENABLE - подбор на подчинени. По това време започват да се генерират тактови импулси SPI-CLOCK (втори ред отгоре), 8 броя (за прехвърляне на 1 байт).

Следващият ред отгоре е SPI-MOSI - данните, които прехвърляме от Arduino към регистъра за смяна. Това е нашето число "210" в двоично - "11010010".

След приключване на трансфера, в края на импулса SPI-ENABLE, виждаме, че регистърът за смяна е задал същата стойност на своите 8 крака. Подчертах това със синя пунктирана линия и обозначих стойностите за яснота.

Задаване на числото 210 на паралелна шина чрез SPI
Задаване на числото 210 на паралелна шина чрез SPI

Стъпка 7

Сега нека насочим вниманието си към раздел Б.

Отново всичко започва с избиране на роб и генериране на 8 тактови импулса.

Данните по линията SPI-MOSI вече са "0". Тоест в този момент ние записваме числото „0“в регистъра.

Но докато прехвърлянето завърши, регистърът съхранява стойността "11010010". Той се извежда към паралелните щифтове Q0.. Q7 и се извежда, когато има тактови импулси в линията от паралелния изход Q7 'към линията SPI-MISO, която виждаме тук.

Задаване на числото 0 на паралелна шина чрез SPI
Задаване на числото 0 на паралелна шина чрез SPI

Стъпка 8

По този начин проучихме подробно въпроса за обмена на информация между главното устройство, което беше Arduino, и регистъра за смяна 74HC595. Научихме как да свързваме регистър за смяна, да записваме данни в него и да четем данни от него.

Препоръчано: