AVR для начинающих. Урок 12.SPI.Регистры.

Автор: | 01.10.2016

Доброго времени суток!

В данном уроке речь пойдет об интерфейсе SPI, который позволяет как связать между собой 2 и более микроконтроллеров, так и подключить к микроконтроллеру внешние устройства. Итак, приступим.

SPI(Serial Peripheral Interface)— последовательный синхронный стандарт передачи данных. В микроконтроллерах фирмы Atmel представляет собой четырехпроводной интерфейс. Данный интерфейс синхронный, синхронизация происходит по тактовому сигналу (Т.е. чтение/запись происходит по сигналу тактовой линии). Физически соединение выглядит так:

Согласно протоколу SPI, данные передаются между ведущим(Master) и ведомым(Slave) устройствами. Master инициализирует (начинает) передачу, передает (принимает) данные, а так же формирует тактовый сигнал.Slave в свою очередь передает/принимает данные, согласно тактовому сигналу ведущего устройства.

Передача данных происходит по линиям MOSI(Master Out Slave In) и MISO(Master In Slave Out). Вывод MOSI служит для передачи данных от ведущего устройства к ведомому, а MISO от ведомого к ведущему.Данные передаются по одному биту. Вывод SCK служит для передачи тактового сигнала, синхронизирующего передачу данных. Вывод SS служит для выбора ведомого устройства. Графически передачу данных можно представить следующим образом:

За работу SPI микроконтроллера AtMega8, отвечают следующие регистры:

SPCR — Регистр настройки SPI. Рассмотрим подробнее его биты:

  • SPIEПри установке данного бита в “1”, прерывания SPI разрешены. При установке “0” запрещены.
  • SPE Данный бит включает/выключает модуль SPI. Установка бита в “1” включает модуль, установка в “0” — выключает.
  • DORD Данный бит позволяет настроить порядок передачи данных. При установке бита в “1” данные передаются младшим битом вперед, при установке в “0” старшим битом вперед.
  • MSTR Данный бит определяет режим работы микроконтроллера. При установке бита в “1” микроконтроллер работает в режиме Master, при установке бита в “0” — в режиме Slave.
  • CPOLБит CPOL позволяет выбрать полярность тактового сигнала. При установке данного бита в “0” на линии SCK во время ожидания установлен низкий логический уровень, при установке в “1” на линии SCK во время ожидания устанавливается логическая “1”.
  • CPHA Данный бит позволяет выбрать фазу тактового сигнала. При установке данного бита в “1” данные считываются по ниспадающему фронту SCK, при установке бита в “0” — по нарастающему.Пара регистров CPOL:CPHA определяет 4 режима работы SPI:

 

Читайте также  GPS Модуль.GYNEO6MV2.

Режим

CPOL

CPHA

SPI режим 0

SPI режим 1

1

SPI режим 2

1

SPI режим 3

1

1

 

  • SPR1:SPR0 — Биты SPR1, SPR совместно с битом SPI2X регистра SPSR определяют скорость обмена данных.

Где fosc тактовая частота работы микроконтроллера.

 

SPSR — Регистр статуса SPI. Рассмотрим его биты подробнее:

  • SPIF— Флаг прерывания SPI. Устанавливается в “1” при окончании передачи/приема данных.
  • WCOLФлаг конфликта записи. Устанавливается в “1”, если в процессе передачи данных выполнялась запись в регистр SPDR. То есть, изменение регистра SPDR во время передачи/приема данных может привести к возникновению ошибки.
  • SPI2X Бит удвоения скорости передачи данных. Совместно с битами SPR1 и SPR0 регистра SPCR определяет скорость обмена данными модуля SPI. При записи “1” в данный бит, скорость обмена удваивается.

 

SPDRРегистр данных модуля SPI. При передаче данных, запись байта в регистр SPDR инициализирует передачу данных. При приеме данных, полученный байт можно считать из регистра SPDR.

На этом остановимся. В следующий раз рассмотрим практический пример работы с модулем SPI.Продолжение.

Спасибо за внимание! Вопросы оставляйте ниже, в комментариях.

Другие уроки цикла.


Любое копирование, воспроизведение, цитирование материала, или его частей разрешено только с письменного согласия администрации MKPROG.RU. Незаконное копирование, цитирование, воспроизведение преследуется по закону!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *