Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С
Шрифт:
Рис. 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 выдается младший бит. Некоторые периферийные ИС требуют такого режима обмена.
Формат второго регистра управления SPxCR2 контроллера SPI также приведен на рис. 4.72. Этот регистр содержит всего три бита управления:
PUPS:
Бит выбора схемотехники входных буферов порта S. Если этот бит равен 1, то все линии порта S, которые находятся в режиме ввода, переходят в состояние входа с внутренним подтягивающим к напряжению питания резистором.
RDS:
Бит выбора схемотехники выходных буферов порта S. Если этот бит равен 1, то все линии порта S, которые находятся в режиме вывода, переходят в состояние выхода с пониженной нагрузочной способностью.
SPCO:
Совместно с битом MSTR этот бит определяет конфигурацию входов/выходов контроллера SPI на выводы корпуса МК в соответствие с таблицей рис. 4.73.
Познакомившись с назначением отдельных битов регистров управления SPxCR1 и SPxCR2, можно сказать, что эти регистры определяют конфигурацию аппаратных средств контроллера SPI. Разъясним дополнительно функции битов MSTR регистра SPxCR1 и SPCO регистра SPxCR2. Возможные комбинации кодов этих двух битов и соответствующие им внутренние соединения линии ввода и линии вывода контроллера SPI показаны на рис. 4.73. Например, если значения рассматриваемых битов равны SPCO:MSTR = 01, то вывод MISO будет выполнять функцию ввода данных, а вывод MOSI — функцию вывода данных контроллера SPI, работающего в режиме ведущего. Линия SCK при этом значении кодовой комбинации битов SPCO:MSTR будет использоваться для выдачи импульсов синхронизации, а линия
На рис. 4.73 показано, что выходы контроллера SPI могут работать как в нормальном двухпроводном режиме (обмен одновременно идет по линиям SI и SO), так и в однопроводном режиме (обмен идет по одной линии).
Рис. 4.73. Выбор режима работы контроллера SPI
Формат регистра состояния SPxSR контроллера SCI представлен на рис. 4.74.
Рис. 4.74. Формат регистра состояния контроллера SPI
Регистр SPxSR содержит всего три бита флагов состояния:
SPIF:
Бит завершения обмена одним байтом данных. Устанавливается в момент, когда все восемь бит данных выставлены на линию последовательного обмена. Этот бит сигнализирует микроконтроллеру о том, что записанный ранее байт данных передан в линию и можно либо загружать новый байт для передачи, либо читать принятый в процессе передачи байт. Этот бит сбрасывается в результате выполнения двух последовательных операций. Сначала читают регистр состояния SPxSR, затем выполняют операцию чтения или записи регистра данных SP0DR.