Предыдущая Следующая

Таблица 13.1. Условия синхронизации передачи и приема данных через SPI

Значения CPOL и СРНА

Управление передачей первого бита данных

Управление передачей остальных битов данных

Прием (выборка) данных

CPOL = 0, СРНА = 0

До первого фронта (положительного перепада) сигнала SCK

Спадом (отрицательным перепадом) сигнала SCK

Фронтом сигнала SCK

CPOL = 0, СРНА= 1

Первым фронтом сигнала SCK

Фронтом сигнала SCK

Спадом сигнала SCK

CPOL=l, СРНА = 0

До первого спада сигнала SCK

Фронтом сигнала SCK

Спадом сигнала SCK

CPOL= 1, СРНА= 1

Первым спадом сигнала SCK

Спадом сигнала SCK

Фронтом сигнала SCK

Момент начала передачи байта через SPI для конкретного устройства, в общем случае, определяется тем,является ли оно ведущим или ведомым, а также зависит от значения переменной СРНА. Если устройство является ведущим, то оно само определяет конкретный момент начала передачи, когда имеет подлежащий передаче в ведомое устройство байт (или хочет получить байт от ведомого). Для осуществления передачи, ведущее устройство начинает генерировать синхросигнал на своем выходе SCK и синхронно с ним (в соответствии с условиями Табл. 13.1) выдает на линию MOSI подлежащий передаче байт в последовательном виде. Передача заканчивается, когда заканчивается последний тактовый цикл (см. Рис. 13.2).

Если устройство является ведомым и СРНА = 0, то оно начинает передачу, когда внешний сигнал SSEL переходит в активный уровень, и заканчивает, когда этот сигнал возвращается в пассивный уровень (см. Рис. 13.2)!

Если устройство является ведомым и СРНА = 1, то оно начинает передачу по первому фронту внешнего синхроимпульса в случае, если ведомый предварительно выбран активным уровнем внешнего сигнала SSEL, и заканчивает по последнему фронту синхроимпульса, который производит выборку данных (см. Рис. 13.2).

13.3. Детализация периферии SPI

13.3.1. Общая информация

Управление периферийным модулем SPI осуществляется с помощью четырех регистров.

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

Регистр состояния SPI содержит доступные только для чтения биты, которые используются, чтобы контролировать состояние интерфейса SPI, включая штатные функции и исключительные ситуации (ИС). Главное назначение этого регистра состоит в том, чтобы обнаружить завершение передачи данных. Для этой цели предназначен бит SPIF. Прочие биты в этом регистре являются индикаторами исключительной ситуации. Эти ИС будут описаны ниже в этом разделе.

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


Предыдущая Следующая



НА ГЛАВНУЮ | ЧТО ТАКОЕ PIC ? | ПРОГРАММАТОР | ПРОЕКТЫ | СТАТЬИ | ССЫЛКИ | КАРТА САЙТА
Hosted by uCoz