Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Основы работы с последовательным периферийным интерфейсом (SPI)

Покупка
Основная коллекция
Артикул: 747176.01.99
Доступ онлайн
от 80 ₽
В корзину
В учебном пособии изложены сведения по работе с последовательным периферийным интерфейсом (SPI), описана работа модуля SPI микроконтроллера Atmega32 компании Atmel, достаточно подробно, на примерах, разобрана работа со сдвиговыми регистрами, АЦП, цифровым потенциометром и датчиком температуры работающих по SPI. Учебное пособие по дисциплине «Проектирование микроконтроллерных систем» предназначено для студентов, обучающихся по направлению 13.03.02 «Электроэнергетика и электротехника».
Основы работы с последовательным периферийным интерфейсом (SPI) : учебное пособие / Д.О. Варламов, С.М. Зуев, Ю.М. Шматков, А.А. Лавриков, А.А. Тимошенко. — Москва : ИНФРА-М, 2020. — 66 с. — (Высшее образование: Бакалавриат). - ISBN 978-5-16-109364-1. - Текст : электронный. - URL: https://znanium.com/catalog/product/1232181 (дата обращения: 19.04.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
Высшее образование — Бакалавриат

 

МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ 

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ 

ВЫСШЕГО ОБРАЗОВАНИЯ 

«МОСКОВСКИЙ ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ» (МОСКОВСКИЙ ПОЛИТЕХ) 

Д.О. ВАРЛАМОВ
С.М. ЗУЕВ
Ю.М. ШМАТКОВ
А.А. ЛАВРИКОВ
А.А. ТИМОШЕНКО

ОСНОВЫ РАБОТЫ 

С ПОСЛЕДОВАТЕЛЬНЫМ 

ПЕРИФЕРИЙНЫМ 

ИНТЕРФЕЙСОМ (SPI)

Учебное пособие

 
 
 

Москва 

ИНФРА-М

2020

УДК 004.312(075.8)
ББК 32.85я73

В18

Рекомендовано к изданию на заседании кафедры

«Электрооборудование и промышленная электроника»,

протокол № 10 от 18.06.2019

Варламов Д.О.

В18
Основы 
работы 
с 
последовательным 
периферийным 

интерфейсом (SPI) : учебное пособие / Д.О. Варламов, С.М. Зуев, 
Ю.М. Шматков, А.А. Лавриков, А.А. Тимошенко. — Москва : 
ИНФРА-М, 2020. — 66 с. — (Высшее образование: Бакалавриат).

ISBN 978-5-16-109364-1 (online)

В 
учебном 
пособии 
изложены 
сведения 
по 
работе 
с 

последовательным периферийным интерфейсом (SPI), описана работа 
модуля SPI микроконтроллера Atmega32 компании Atmel, достаточно 
подробно, на примерах, разобрана работа со сдвиговыми регистрами, 
АЦП, 
цифровым
потенциометром 
и 
датчиком 
температуры

работающих по SPI.

Учебное 
пособие 
по 
дисциплине 
«Проектирование 

микроконтроллерных 
систем» 
предназначено 
для 
студентов,

обучающихся 
по 
направлению 
13.03.02 
«Электроэнергетика 
и 

электротехника».

УДК 004.312(075.8)

ББК 32.85я73

ISBN 978-5-16-109364-1 (online)
© Варламов Д.О., Зуев С.М., 

Шматков Ю.М., Лакриков А.А., 
Тимошенко А.А., 2020

ФЗ 

№ 436-ФЗ 

Издание не подлежит маркировке 
в соответствии с п. 1 ч. 2 ст. 1 

 

Оглавление

1. Общие сведения ..................................................................................4

2. Функционирование модуля SPI.........................................................5

3. Режимы передачи данных................................................................10

4. Использование вывода SS................................................................12

5. Соединение двух микроконтроллеров по интерфейсу SPI ..........13

6. Микросхема цифрового потенциометра серии MCP41XXXс 
интерфейсом SPI ...................................................................................18

7. Управление микросхемой MCP41010 цифрового потенциометра 
помощью микроконтроллера...............................................................22

10. Способы работы с несколькими ведомыми по интерфейсу SPI 34

11. Управление c помощью микроконтроллера микросхемой 
MCP3201 и MCP41010 по одной шине SPI (независимое 
подключение).........................................................................................35

12. Микросхема сдвигового регистра 74HC595 ................................40

13. Управление микросхемой сдвигового регистра 74HC595 с 
помощью микроконтроллера...............................................................41

14. Управление двумя сдвиговыми регистрами 74НС595 с помощью 
микроконтроллера (каскадное подключение). ..................................46

15. Микросхема датчика температуры TC72 с интерфейсом SPI....52

16. Снятие показаний цифрового датчика температуры TC72 по 
SPIс помощью микроконтроллера ......................................................56

Приложение ...........................................................................................61

Список использованной литературы ..................................................66

1. Общие сведения

Последовательный периферийный интерфейс SPI
(Serial

Peripheral Interface), реализованный во всех микроконтроллерах 
семейства Mega, имеет два назначения:
1. С его помощью может осуществляться обмен данными между 
микроконтроллером и различными периферийными устройствами, 
такими как цифровые потенциометры, ЦАП/АЦП, сдвиговые 
регистры, различные датчики и т.д. Посредством этого интерфейса 
также может производиться обмен данными между несколькими 
микроконтроллерами AVR. 
2. Через интерфейс SPI может быть осуществлено программирование 
микроконтроллера 
(так 
называемый 
режим 

последовательного программирования) [1-2]. 

Структурная схема модуля SPI приведена на Рис. 1.

Рис.1. Структурная схема модуля SPI.

При обмене данными по интерфейсу SPI микроконтроллер 

AVR может работать как ведущий (режим Master) либо как 
ведомый (режим Slave). При этом пользователь может задавать 
следующие параметры:
•  скорость передачи (восемь программируемых значений);
• формат передачи (от младшего бита к старшему или наоборот). 

Дополнительной возможностью подсистемы SPI
является 

"пробуждение" микроконтроллера из режима Idle при поступлении 
данных [3].

2. Функционирование модуля SPI

Модуль SPI использует четыре вывода микроконтроллера. 

На рисунке 2 представлено изображение микроконтроллера 

Atmega32 в программе Proteus c обозначением выводов интерфейса 
SPI.

Рис.2.Выводы интерфейса SPI МК Atmega32.

У различных микроконтроллеров семейства Mega выводы 

модуля 
SPI
могут 
находиться 
на 
других
линиях 
портов 

ввода/вывода общего назначения. Так в МК Atmega8, выводы 
модуля SPI подключены к линиям PB2-PB5, а в Atmega128 к 

линиям PB0-PB3.

При включенном модуле SPI
режим работы указанных 

выводов 
(направление 
передачи 
данных) 
переопределяется 

согласно Табл. 1.

Таблица №1 Переназначение режима работы модуля SPI.

Как видно из таблицы, в определенных случаях пользователь 

должен 
самостоятельно 
задать 
режим 
работы 
вывода, 

используемого модулем SPI, в соответствии с его назначением. При 
этом возможность управления внутренними подтягивающими 
резисторами выводов, работающих как входы, сохраняется 
независимо от способа управления их режимом работы.

Рис.3. Формат регистра SPCR.

Для 
управления 
модулем 
SPI
предназначен 
регистр 

управления SPCR. Формат этого регистра приведен на рисунке 3, а 
краткое описание функций битов регистра приведено в Табл.2.
Подробно использование различных битов регистра будет описано 
далее.

Контроль 
состояния 
модуля, 
а 
также 
дополнительное 

управление скоростью обмена осуществляются с помощью 
регистра состояния SPSR. Биты с 7-го по 1-й этого регистра 
доступны только для чтения, а 0-й бит — как для чтения, так и для 
записи. Формат этого регистра приведен на рисунке 4, а краткое 
описание функций битов регистра приведено в Табл.3.

Таблица 2. Биты регистра SPCR.

Рис.4. Формат регистра SPSR.

Передаваемые данные записываются, а принимаемые —

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

Таблица 3. Биты регистра SPSR.

Соединение двух микроконтроллеров (ведущий-ведомый) по 

интерфейсу SPI
показано на Рис.5. Вывод SCKL
ведущего 

микроконтроллера является выходом тактового сигнала, а ведомого 
микроконтроллера — входом.

Рис.5. Схема соединения двух микроконтроллеров по интерфейсу 
SPI.

Перед выполнением обмена необходимо, прежде всего, 

разрешить работу модуля SPI. Для этого следует установить в 1 бит 
SPE регистра SPCR. Режим работы определяется состоянием бита 
MSTR этого регистра: если бит установлен в 1, микроконтроллер 
работает в режиме Master, если сброшен в 0 - в режиме Slave.

Передача данных осуществляется следующим образом. При 

записи в регистр данных SPI
ведущего микроконтроллера 

запускается генератор тактового сигнала модуля SPI, и данные 
начинают побитно выдаваться на вывод MOSI
ведущего и 

соответственно поступать на вывод MOSI
ведомого микро
контроллера. Порядок передачи битов данных определяется 
состоянием бита DORD регистра SPCR. Если бит установлен в 1, 
первым передается младший бит байта, если же сброшен в 0 —
старший бит. После выдачи последнего бита текущего байта 
генератор тактового сигнала останавливается с одновременной 
установкой в 1 флага «Конец передачи» (SPIF). Если прерывания от 
модуля SPI разрешены (флаг SPIE регистра SPCR установлен в 1), 
генерируется запрос на прерывание. После этого ведущий 
микроконтроллер может начать передачу следующего байта либо, 
подав на вход SS ведомого напряжение ВЫСОКОГО уровня, 
перевести его в состояние ожидания.

Одновременно с передачей данных от ведущего к ведомому 

происходит передача и в обратном направлении, при условии, что 
на входе SS ведомого присутствует напряжение НИЗКОГО уровня. 

Таким образом, в каждом цикле сдвига происходит обмен данными 
между устройствами. Соответственно, в конце каждого цикла флаг 
SPIF устанавливается в 1 как в ведущем микроконтроллере, так и в 
ведомом. Принятые байты сохраняются в приемных буферах для 
дальнейшего использования.

Таблица 4. Задание режима передачи данных.

В модуле реализована одинарная буферизация при передаче и 

двойная - при приеме. Это означает, что готовый для передачи байт 
данных не может быть записан в регистр данных SPI до окончания 
предыдущего цикла обмена. При попытке изменить содержимое 
регистра данных во время передачи флаг WCOL регистра SPSR
устанавливается в 1. Сбрасывается этот флаг после чтения регистра 
SPSR с последующим обращением к регистру данных SPI.
Соответственно, при приеме данных принятый байт должен быть 
прочитан из регистра данных SPI до того, как в сдвиговый регистр 
поступит последний бит следующего байта. В противном случае 
первый байт будет потерян.

3. Режимы передачи данных

Спецификация интерфейса SPI предусматривает 4 режима 

передачи данных. Эти режимы различаются соответствием между 
фазой (момент считывания сигнала) тактового сигнала SCK, его 
полярностью и передаваемыми данными. Всего существует 4 таких 
комбинации, определяемых состоянием битов СРНА и CPOL
регистра SPCR (Табл. 4).

Соответствующие этим режимам форматы обмена данными 

через SPI приведены на рисунке 6 и рисунке7 (передача ведется от 
старшего бита к младшему).

Рис.6. Передача данных при CPHA=0.

Рис.7.Передача данных при CPHA=1.

Частота тактового сигнала SCK и соответственно скорость 

передачи данных по интерфейсу определяются состоянием битов 
SPR1:SPRO регистра SPCR и бита SPI2X регистра SPSR (Табл.5).
Разумеется, речь идет о микроконтроллере, работающем в режиме 
Master, так как именно он является источником тактового сигнала. 
Для устройства, находящегося в режиме Slave, состояние этих 
битов безразлично.

Следует иметь в виду, что работа микроконтроллера в режиме 

Slave гарантируется только на частотах, меньших или равных 

Таблица 5. Выбор частоты тактового сигнала SCK.

Доступ онлайн
от 80 ₽
В корзину