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

Ответ: Контроллер 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 МГц
00022,0 МГц4,0 МГц
00141,0 МГц2,0 МГц
0108500 кГц1,0 МГц
01116250 кГц500 кГц
10032125 кГц250 кГц
1016462,5 кГц125 кГц
11012831,3 кГц62,5 кГц
11125615,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 предпочтительно использовать в системах, которые имеют более одного ведомого устройства.

Перейти на страницу:
Нет соединения с сервером, попробуйте зайти чуть позже