Шрифт:
• Регистр скорости обмена;
• Регистры управления;
• Регистр состояния;
• Регистр данных.
Далее мы рассмотрим формат и назначение битов каждого регистра модуля SPI.
Регистр скорости обмена 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 контроллера 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, то начало обмена инициируется установкой сигнала выбора ведомого
Если CPHA=1, то начало обмена определяет первое изменение уровня сигнала на линии SCK после установки сигнала выбора ведомого
SSOE:
Бит разрешения работы вывода в режиме ведущего. Если контроллер SPI работает в режиме ведущего, то при установке этого бита в 1 вывод может использоваться как вывод для формирования сигнала «выбор ведомого»
1 — функция выхода
0 — функция выхода
LSBF:
Бит выбора очередности выдачи битов данных на линию MOSI. Если бит LSBF сброшен, то данные в процессе передачи выставляются на линию MOSI, начиная со старшего бита. Этот режим считается нормальным режимом обмена для интерфейса SPI. Если же бит LSBF установлен в 1, то при передаче первым на линию MOSI выдается младший бит. Некоторые периферийные ИС требуют такого режима обмена.