Чтение онлайн

ЖАНРЫ

Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С

Пак Дэниэл Дж.

Шрифт:

Аппаратные средства контроллера SPI могут генерировать запросы на прерывание. Два источника запросов располагаются в регистре состояния SP0SR. Первый источник — триггер завершения обмена SPIF, второй источник — флаг нарушения режима MODF.

Оба прерывания разрешаются установкой в 1 бита SPIE в регистре управления SP0CR1.

Вопросы для самопроверки

1. Каковы различия между двумя режимами работы контроллера SPI: режимом ведущего и режимом ведомого?

Ответ: Контроллер SPI, работающий в режиме ведущего, начинает обмен и генерирует импульсы синхронизации SCK для обмена. Таким образом, ведущий контроллер управляет обменом. Ведомый контроллер SPI ожидает сигналов от ведущего, и под их управлением запоминает информацию с линии MOSI, а также генерирует информацию на линию MISO. Завершается обмен

под управлением ведущего.

2. Каково назначение сигнала SCK?

Ответ: Сигнал SCK предназначается для синхронизации передачи информации между двумя устройствами. Частота этого сигнала определяет скорость передачи. В течение одного периода SCK два устройства обмениваются одним битом данных.

4.19.3. Регистры контроллера SPI

Подобно контроллеру асинхронного обмена контроллер SPI обслуживается несколькими регистрами специальных функций:

• Регистр скорости обмена;

• Регистры управления;

• Регистр состояния;

• Регистр данных.

Далее мы рассмотрим формат и назначение битов каждого регистра модуля SPI.

Регистр скорости обмена SPxBR

Регистр скорости обмена SPxBR позволяет выбрать частоту следования импульсов синхронизации SCK, а, следовательно, и скорость обмена по синхронному последовательному интерфейсу. Формат регистра SPxBR представлен на рис. 4.72. Три бита этого регистра SPR2…SPR0 определяют коэффициент деления импульсной последовательности ECLOCK, из которой образуется сигнал синхронизации SCK. Соответствие численных значений коэффициентов деления возможным комбинациям битов SPR2…SPR0 устанавливает таблица рис. 4.72. Внимательно проанализируйте данные этой таблицы. Вспомните, что при тех же частотах системной шины МК, максимальная скорость обмена в асинхронном режиме с использованием контроллера SCI составляла 38400 бод, что для SPI эквивалентно частоте SCK в 38,4 кГц. А для контроллера SPI максимальная частота синхронизации, а, следовательно, и максимальная скорость обмена составляет 4,0 МГц.

Выбор частоты обмена по SPI

SPR[2:0] Коэффициент деления При частоте внутренней системной шины
4 МГц 8 МГц
000 2 2,0 МГц 4,0 МГц
001 4 1,0 МГц 2,0 МГц
010 8 500 кГц 1,0 МГц
011 16 250 кГц 500 кГц
100 32 125 кГц 250 кГц
101 64 62,5 кГц 125 кГц
110 128 31,3 кГц 62,5 кГц
111 256 15,6 кГц 31,3 кГц Формат регистров управления контроллера SPI

Рис. 4.72.

Регистры управления SPxCR1 и SPxCR2

Формат первого регистра управления SPxCR1 контроллера SPI представлен на рис. 4.72. Биты этого регистра имеет следующее назначение:

SPIE:

Бит разрешения прерывания по запросу модуля SPI. Бит разрешает генерацию запросов на прерывание от модуля SPI. Запросы в модуле SPI могут генерироваться при установленном флаге SPIF, который свидетельствует о завершении приема или передачи одного байта информации, или при установленном флаге ошибки MODF.

1 — прерывания разрешены;

0 — прерывания по запросу приемника запрещены.

SPE:

Бит разрешения работы модуля SPI.

1 —

контроллер SPI включен;

0 — контроллер SPI выключен.

SWOM:

Бит выбора режима открытого коллектора. Этот бит определяет состояние выходных буферов линий MOSI, MISO, SCK, если эти линии работают на вывод.

1 — буферы переведены в режим открытого коллекторного выхода;

0 — буферы работают в режиме двунаправленной передачи с возможностью установки в высокоимпедансное состояние.

Перевод линий MOSI и MISO в режим открытого коллектора позволяет соединить их по схеме «монтажное И».

MSTR:

Бит режима работы контроллера SPI.

1 — контроллер SPI работает в режиме ведущего (Master);

0 — контроллер SPI работает в режиме ведомого (Slave).

CPOL:

Бит выбора полярности сигнала синхронизации SCK.

Этот бит определяет состояние линии SCK между сеансами передачи данных. Бит CPOL вместе с битом CPHA задает один из четырех возможных режимов SPI интерфейса.

1 — SCK=1 между сеансами передачи данных

0 — SCK=0 между сеансами передачи данных

CPHA:

Бит выбора фазы сигнала синхронизации SCK. Этот бит определяет протокол обмена по SPI шине. Если CPHA=0, то начало обмена инициируется установкой сигнала выбора ведомого

 в активное состояние (режимы 0 и 1). Первый перепад сигнала синхронизации SCK используется принимающим устройством для запоминания очередного бита в сдвиговом регистре. Передающее устройство выставляет очередной бит посылки на линии MOSI по каждому четному фронту сигнала SCK. Сигнал на линии выбора ведущего
 должен быть возвращен в неактивное состояние после передачи каждого байта в любом направлении. Режимы 0 и 1 предпочтительно использовать в системах, которые имеют более одного ведомого устройства.

Если CPHA=1, то начало обмена определяет первое изменение уровня сигнала на линии SCK после установки сигнала выбора ведомого

 в активное состояние (режимы 2 и 3). Все нечетные перепады SCK вызывают выдвижение очередного бита посылки из сдвигового регистра передатчика на линию. Каждый четный перепад используется для записи этого бита в сдвиговый регистр приемника. Сигнал выбора ведомого может оставаться в активном состоянии
= 0 в течение передачи нескольких байт информации. Режимы 2 и 3 рекомендуется использовать в системах с одним ведомым устройством.

SSOE:

Бит разрешения работы вывода в режиме ведущего. Если контроллер SPI работает в режиме ведущего, то при установке этого бита в 1 вывод может использоваться как вывод для формирования сигнала «выбор ведомого»

1 — функция выхода

 разрешена;

0 — функция выхода

 не реализуется.

LSBF:

Бит выбора очередности выдачи битов данных на линию MOSI. Если бит LSBF сброшен, то данные в процессе передачи выставляются на линию MOSI, начиная со старшего бита. Этот режим считается нормальным режимом обмена для интерфейса SPI. Если же бит LSBF установлен в 1, то при передаче первым на линию MOSI выдается младший бит. Некоторые периферийные ИС требуют такого режима обмена.

Формат второго регистра управления SPxCR2 контроллера SPI также приведен на рис. 4.72. Этот регистр содержит всего три бита управления:

PUPS:

Бит выбора схемотехники входных буферов порта S. Если этот бит равен 1, то все линии порта S, которые находятся в режиме ввода, переходят в состояние входа с внутренним подтягивающим к напряжению питания резистором.

RDS:

Бит выбора схемотехники выходных буферов порта S. Если этот бит равен 1, то все линии порта S, которые находятся в режиме вывода, переходят в состояние выхода с пониженной нагрузочной способностью.

Поделиться с друзьями: