Основы работы с последовательным периферийным интерфейсом (SPI)
Покупка
Основная коллекция
Тематика:
Электроэнергетика. Электротехника
Издательство:
НИЦ ИНФРА-М
Авторы:
Варламов Дмитрий Олегович, Зуев Сергей Михайлович, Шматков Юрий Михайлович, Лавриков Алексей Александрович, Тимошенко Артем Александрович
Год издания: 2020
Кол-во страниц: 66
Дополнительно
Вид издания:
Учебное пособие
Уровень образования:
ВО - Бакалавриат
ISBN-онлайн: 978-5-16-109364-1
Артикул: 747176.01.99
В учебном пособии изложены сведения по работе с последовательным периферийным интерфейсом (SPI), описана работа модуля SPI микроконтроллера Atmega32 компании Atmel, достаточно подробно, на примерах, разобрана работа со сдвиговыми регистрами, АЦП, цифровым потенциометром и датчиком температуры работающих по SPI.
Учебное пособие по дисциплине «Проектирование микроконтроллерных систем» предназначено для студентов, обучающихся по направлению 13.03.02 «Электроэнергетика и электротехника».
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Высшее образование — Бакалавриат МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ «МОСКОВСКИЙ ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ» (МОСКОВСКИЙ ПОЛИТЕХ) Д.О. ВАРЛАМОВ С.М. ЗУЕВ Ю.М. ШМАТКОВ А.А. ЛАВРИКОВ А.А. ТИМОШЕНКО ОСНОВЫ РАБОТЫ С ПОСЛЕДОВАТЕЛЬНЫМ ПЕРИФЕРИЙНЫМ ИНТЕРФЕЙСОМ (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 (передача ведется от старшего бита к младшему).