Закрыть ... [X]

Улучшение параметров ОЗУ

Рекомендуем посмотреть ещё:




Совет 5: Как подключить сдвиговый регистр к Arduino

Вам понадобится
  • - Ардуино;
  • - сдвиговый регистр 74HC595;
  • - соединительные провода.
Инструкция
Сдвиговый регистр 74HC595 и его использование в качестве последовательных данных в параллельных, а также может использоваться как «защёлка» для данных, удерживая переданное на него состояние.
Схема выводов ("распиновка") приведена на рисунке слева. Их назначение такое.
Q0 ... Q7- выходы параллельных данных;
GND- земля (0 В);
Q7'- выход последовательных данных;
^ MR- сброс ведущего устройства (активный низкий);
SHcp- вход тактовых импульсов сдвигового регистра;
STCP- вход тактовых импульсов "защёлки";
^ О.Е.- разрешение вывода (активный низкий);
Ds- вход последовательных данных;
Vcc- питание +5 В.
Конструктивно микросхема в нескольких типах корпусов; я буду использовать тот, что приведён на рисунке справа - выводной - т.к. его проще использовать с макетной платой (бредбордом).
Внешний вид сдвигового регистра и схема выводов
Коротко напомню о последовательном интерфейсе SPI, который мы будем использовать для передачи данных в сдвиговый регистр.
SPI- это четырёхпроводный двунаправленный последовательный интерфейс, в котором принимают участие ведущее и ведомое устройства. Ведущий в нашем случае будет являться Arduino, ведомым - регистр 74HC595.
Среда разработки для Arduino имеет встроенную библиотеку работы по интерфейсу SPI. При их применении используются, как отмечены на рисунке:
SCLK- вывод тактовых импульсов SPI;
MOSI- данные из ведущего - к ведомому;
MISO- данные от ведомого к ведущему;
SS- выбор ведомого.
Стандартные выводы SPI платы Arduino
Давайте соберём схему, как на рисунке.
Я также подключу ко всем ножкам микросхемы регистра сдвига логический анализатор. С помощью него мы увидим, что же происходит на физическом уровне, какие сигналы куда идут, и разберёмся, что они означают. Должно получиться примерно как на фотографии.
Схема подключения сдвигового регистра 74HC595 к Arduino
Напишем вот такой скетч и загрузим в память Arduino.
ПеременнаяPIN_SPI_SS- это внутренняя стандартная константа, которая соответствует выводу "10" Ардуино при использовании его в качестве ведущего устройства интерфейса SPI, который мы тут используем. В принципе, мы могли бы с таким же успехом использовать любой другой цифровой вывод Arduino; тогда нам пришлось пришлось его объявить и задать его режим работы.
Подавая на этот вывод LOW, мы активизируем наш сдвиговый регистр на приём / передачу. После передачи мы снова поднимаем напряжение в HIGH, и обмен заканчивается.
Скетч для демонстрации работы сдвигового регистра
Включим нас логический анализатор. Общий вид временных диаграммы - на рисунке.
Голубой пунктирной линией показаны 4 линии SPI, красной пунктирной - 8 каналов параллельных данных регистра сдвига.
Точкана шкале времени - это момент передачи в регистр сдвига числа "210",В- момент записи числа "0",С- повторение цикла с начала.
Как видно, от А до Б - 10,03 миллисекунд, а от Б до С - 90,12 миллисекунд, почти как мы и задали в скетче. Небольшая добавка в 0,03 и 0,12 мс - это время передачи последовательных данных от Arduino, поэтому мы тут имеем не ровно 10 и 90 мс.
Временная диаграмма обмена Arduino и сдвигового регистра 74HC595
Рассмотрим подробнее участок.
В самом верху - длинный импульс, которым Arduino инициализирует передачу по линииSPI-ВКЛЮЧИТЬ- выбор ведомого. В это время начинают генерироваться тактовые импульсыSPI-ЧАСЫ(вторая строка сверху), 8 штук (для передачи 1 байта).
Следующая строка сверху -SPI-MOSI- данные, которые мы передаём от Arduino к сдвиговому регистру. Это наше число "210" в двоичном виде - "11010010".
После завершения передачи, в момент предложения импульсаSPI-ВКЛЮЧИТЬ, мы видим, что сдвиговый регистр выставил на своих 8-ми ножках такое же значение. Я выделил это в голубой пунктирной линией и подписал значения для наглядности.
Вычисление 210 на параллельной шине по SPI
Теперь обратим внимание на участокВ.
Опять всё начинается с выбора ведомого и генерирования 8-ми тактовых импульсов.
Данные на линииSPI-MOSIтеперь - «0». То есть мы записываем в этот момент в регистр число "0".
Но пока передача не закончена, в регистре хранит значение "11010010". Оно выводится на параллельные выводыQ0..Q7, и выдаётся при наличии тактовых импульсов в линии c параллельного выходаQ7'в линиюSPI-MISO, что мы тут и видим.
Выставление числа 0 на параллельной шине по SPI
Таким образом, мы детально изучили вопрос информационного обмена между ведущим устройством, в роли которого был Ардуино, и сдвиговым регистром 74HC595. Научились подключать сдвиговый регистр, записывать в него данные и считывать из него данных.




ШОКИРУЮЩИЕ НОВОСТИ



Video: Как сделать бегущий (умный) поворотник своими руками

Самодельные соединительные провода для breadboard и ардуино
Совет 5: Как подключить сдвиговый регистр к Arduino

Отличный набор ардуино starter kit для начинающих
Совет 5: Как подключить сдвиговый регистр к Arduino






Похожие статьи

Могут ли уволить за частые больничные
Современный дресс-код для жениха
Как приготовить роллы с креветкой. Инструкция для начинающих
Стильный аксессуар для любого случая
Как готовить пюре в блендере
Как пить Амоксиклав
Как очистить королевские креветки
Лидия Смирнова: фильмография, биография и личная жизнь
Как написать стих подруге
Как продать квартиру, если в ней зарегистрированы несовершеннолетние дети

mirzhenshhin.ru / Карта сайта / Карта сайта