В HTML      В PDF
микроэлектроника, микросхема, микроконтроллер, память, msp430, MSP430, Atmel, Maxim, LCD, hd44780, t6963, sed1335, SED1335, mega128, avr, mega128  
  Главная страница > Обзоры по типам > Микроконтроллеры > AVR

реклама

 
радиационно стойкие ПЗУ Миландр

Продажа силового и бронированного кабеля и провода в Москве




Arduino Uno R3 Atmega328
готовый модуль
Лучшая Цена 335 руб




Стартовый набор с большим набором аксесуаров
Arduino Uno R3 Atmega328
Лучшая Цена 2211 руб



20. Последовательный интерфейс SPI

20.1. Отличительные особенности

  • Полнодуплексная, синхронная передача данных по трем линиям
  • Ведущая или подчиненная работа
  • Первым передается младший или старший бит данных
  • Восемь программно-выбираемых скоростей
  • Флаг прерывания по завершению передачи
  • Флаг ошибочной записи в регистр данных
  • Возобновление активной работы МК из режима IDLE
  • Ведущий режим с удвоенной скоростью (CK/2)

20.2. Обзор

Последовательный интерфейс SPI - интерфейс для высокоскоростной синхронной передачи данных с использованием трех или четырех выводов ИС. С его помощью можно организовать высокоскоростное соединение между МК XMEGA и внешними ИС, а также между несколькими микроконтроллерами AVR. Интерфейс SPI поддерживает полнодуплексную передачу данных.

Устройство, подключенное к шине, должно действовать как ведущее устройство или как подчиненное. Ведущее устройство инициирует транзакции передачи данных и полностью ими управляет. Взаимодействие между ведущим и подчиненным ЦПУ через интерфейс SPI показано на рисунке 20.1. Система состоит из двух сдвиговых регистров, а также генератора синхронизации на стороне ведущего устройства.

Ведущий SPI инициирует цикл связи установкой низкого уровня на выводе выбора подчиненного устройства (SS) той ИС, с которой необходимо установить соединение. Подлежащие передаче данные ведущее и подчиненное устройства помещают в сдвиговые регистры. После этого, ведущее устройство начинает генерировать импульсы синхронизации на линии SCK, что приводит к взаимному обмену данными. Передача данных сдвигом в направлении от ведущего устройства к подчиненному всегда выполняется на линии MOSI, а передача в обратном направлении - на линии MISO. После передачи каждого пакета данных, ведущее устройство, в целях синхронизации подчиненного устройства, может перевести линию SS в высокое состояние.

Механизм взаимодействия ведущего и подчиненного модулей SPI
Рисунок 20.1. Механизм взаимодействия ведущего и подчиненного модулей SPI

Модуль SPI микроконтроллеров XMEGA оснащен одноуровневой буферизацией в канале передачи и двухуровневой буферизацией в канале приема. Это означает, что подлежащие передаче байты данных, нельзя поместить в регистр данных модуля SPI пока полностью не завершится цикл сдвигов. Во время приема данных, принятую посылку необходимо успеть считать прежде, чем завершится прием очередной посылки. В противном случае, первый байт данных будет потерян.

В подчиненном режиме SPI, логика управления выполняет выборку поступающего на вход SCK сигнала. Чтобы гарантировать корректность выборок сигнала синхронизации, необходимо соблюдать требования к длительности низкого и высокого уровней импульсов синхронизации: длительность и низкого и высокого уровней должна быть не менее 2 циклов синхронизации ЦПУ.

После разрешения работы модуля SPI, вступают в силу альтернативные настройки направления на выводах MOSI, MISO, SCK и SS в соответствии с таблицей 20.1. Выводы, которые отмечены как "задается пользователем", должны быть настроены программно.

Таблица 20.1. Перекрытие модулем SPI настроек порта ввода-вывода

Вывод Направление для ведущего SPI Направление для подчиненного SPI
MOSI Задается пользователем Вход
MISO Вход Задается пользователем
SCK Задается пользователем Вход
/SS Задается пользователем Вход

20.3. Ведущий режим

Когда интерфейс SPI используется как ведущий, автоматическое управление линией SS не производится. Вывод SS необходимо настроить как выход и им необходимо управлять из программы пользователя. Если к шине подключено несколько подчиненных и/или ведущих устройств, то ведущий модуль SPI может использовать любые имеющиеся у МК линии ввода-вывода общего назначения для управления линией SS каждого подключенного к шине подчиненного устройства.

После записи байта в регистр данных включается в работу генератор синхронизации шины SPI и выполняется передача сдвигом восьми бит данных в подчиненное устройство. По завершении сдвига одного байта, генератор синхронизации шины SPI останавливается и устанавливается флаг прерывания модуля SPI. Записью нового байта в регистр данных ведущее устройство может продолжить передачу данных. Кроме того, он может сигнализировать о завершении передачи данных установкой низкого уровня на линии SS. Последний принятый байт данных сберегается в буферном регистре.

Если вывод SS настроен как вход, необходимо учитывать, что работа ведущего устройства будет возможной, только если на этом входе будет присутствовать высокий уровень. Если же вывод SS будет работать как вход и на нем будет присутствовать низкий уровень, то модуль SPI будет интерпретировать такую ситуацию, как попытку другого ведущего устройства получить управление над шиной. Во избежание конфликтов на шине, ведущее устройство выполняет следующие действия:

  1. Переходит в подчиненный режим.
  2. Устанавливает флаг прерывания модуля SPI.


<-- Предыдущая страница Оглавление Следующая страница -->





 
Впервые? | Реклама на сайте | О проекте | Карта портала
тел. редакции: +7 (495) 514 4110. e-mail:info@eust.ru
©1998-2016 ООО Рынок Микроэлектроники