Скачиваний:
144
Добавлен:
21.02.2014
Размер:
1.47 Mб
Скачать

6.4 Регистры spi.

Для управления, хранения текущего состояния системы и хранения данных SPI использует три регистра. Эти регистры называются: регистр управления SPI (SPCR), регистр статуса SPI (SPCR) и регистр ввода/вывода SPI (SPDR). Они описываются в последующих параграфах.

6.4.1 Регистр управления периферийным интерфейсом (spcr).

7

6

5

4

3

2

1

0

$1028

SPIE

SPE

DWOM

MSTR

CPOL

CPHA

SPR1

SPR0

SPCR

Сброс

0

0

0

0

0

1

U

U

SPIE -разрешение прерываний от SPI:

0=прерывания по флагу SPIF запрещены;

1=запрос прерывания от SPI если SPIF=1.

SPE -разрешение работы SPI:

0=система SPI запрещена;

1=система SPI разрешена.

DWOM -выбор режима работы линий порта D:

Бит DWOM влияет сразу на шесть выводов порта D.

0=выводы порта D являются нормальными КМОП-выводами;

1=выводы порта D-выводы с открытым стоком.

MSTR -выбор режима устройства:

0=режим ведомого устройства;

1=режим ведомого устройства.

CPOL -полярность сигналов синхронизации.

Если этот бит сброшен и данные не передаются, то на выводе SCK ведомого устройства находится постоянный сигнал с низким уровнем. Наоборот, если бит установлен, то на выводе присутствует сигнал высокого уровня. Этот бит также используется совместно с битом управления фазой для задания формы импульсов синхронизации между ведущим и ведомым устройствами. См. рисунок 6-1.

CPHA -фаза сигналов синхронизации.

Этот бит используется совместно с битом управления полярностью для задания формы импульсов синхронизации между ведущим и ведомым устройствами. Бит CPOL можно рассматривать также как простой инвертор, устанавливаемый на линии SCK. Бит CPHA позволяет выбирать один из двух фундаментально отличных протоколов обмена. Если бит CPHA=0, то импульсы сдвига представляют собой логическое ИЛИ между SCK и SS/. Как только на выводе SS/ появляется низкий уровень сигнала, передача данных начинается с первым фронтом SCK, включая в себя первый образец данных. При бите SPHA=1 вывод SS/ можно рассматривать просто как управляющий сигнал разрешения вывода. См. рисунок 6-1.

SPR1 и SPR0 -выбор частоты обмена SPI.

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

SPR1

SPR0

Делитель для частоты внутренней синхронизации

0

0

2

0

1

4

1

0

16

1

1

32

Таблица 6-1. Выбор скорости обмена по SPI.

6.4.2 Регистр статуса поеледовательного периферийного интерфейса (spsr).

7

6

5

4

3

2

1

0

$1029

SPIF

WCOL

0

MODF

0

0

0

0

SPSR

Сброс

0

0

0

0

0

0

0

0

SPIF -флаг завершения передачи.

Флаг завершения передачи по SPI устанавливается при завершении последовательности передачи между микроконтроллером и внешним устройством. Если флаг SPIF принимает значение 1, а бит SPIE установлен, то генерируется запрос на прерывание от последовательного периферийного интерфейса. Чтение значения регистра SPSR с последующим доступом к регистру SPDR (при условии, что флаг SPIF установлен) вызывает сброс этого флага. Если бит SPIF установлен, то все попытки записать в регистр SPDR любое значение без предшествующего чтения содержимог регистра SPSR игнорируются.

WCOL -ошибка записи.

Бит ошибки записи устанавливается при попытке произвести запись в регистр данных SPI во время передачи данных. Если CPHA=0, то передача начинается с возникновением сигнала низкого уровня на выводе SS/ и заканчивается с появлением на нем высокого уровня после восьми тактов синхронизации на SCK. Если же CPHA=1, то передача начинается как только SCK становится активным при низком уровне сигнала на выводе SS/ и заканчивается с установкой флага SPIF. Сброс бита WCOL производится аналогично сбросу бита SPIF.

Бит 5 -не используется, при чтении всегда возвращает ноль.

MODF -сбой режима.

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

1) Если бит SPIE=1, то генерируется запрос на прерывание.

2) Очищается бит SPE, что запрещает работу системы SPI.

3) Очищается бит MSTR, что переводит устройство в работу как ведомого.

4) Четыре бита DDRD, соответствующие выводам SPI сбрасываются.

Флаг MODF очищается посредством чтения значения SPSR (при установленном флаге MODF) и последущей записью в регистр SPCR. После очистки флага MODF программа может восстановить исходное состояние битов SPE и MSTR. После сбоя необходимо также восстановить состояние регистра DDRD.

Биты 3-0 -не используется, при чтении всегда возвращают ноль.

Соседние файлы в папке МС68НС11Е9