Файл: Семейство микроконтроллеров MSP430X1XX, руководство пользователя (2004).pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 16.06.2025

Просмотров: 2817

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Раздел XIV.

Периферийный интерфейс USART, режим SPI

Ведущий

SIMO

SIMO

Ведомый

Буфер приема UxRXBUF

Буфер передачи UxTXBUF

Буфер приема SPI

Px.x

STE

STE

SS

Port.x

Сдвиговый регистр

Сдвиговый регистр SOMI

SOMI Сдвиговый регистр

приема

передачи

данных (DSR)

MSB

LSB

MSB

LSB

MSB

LSB

UCLK

SCLK

MSP430 USART

Обычный SPI

Рис. 14-2. USART – ведущий, внешнее устройство – ведомое

Чтобы принимать данные в USART в режиме ведущего, данные должны быть записаны в UxTXBUF, поскольку операции приема и передачи выполняются одновременно.

4-х выводной режим ведущего SPI

В 4-х выводном режиме ведущего STE используется для предотвращения конфликтов с другим ведущим. Ведущий функционирует нормально, когда STE имеет высокий уровень. Когда у STE низкий уровень:

SIMO и UCLK установлены на ввод и более не управляют шиной

Установлен бит ошибки FE, что указывает на нарушение целостности связи, которое будет обработано пользователем

Сигнал STE низкого уровня не сбрасывает модуль USART. Входной сигнал STE не используется в 3-х выводном режиме ведущего.

14.2.3. Режим ведомого

На рис. 14-3 показан USART в качестве ведомого в обеих 3-х и 4-х выводных конфигурациях. UCLK используется как вход для тактирования SPI и должен управляться внешним ведущим. Скорость передачи данных определяется этим тактовым сигналом и не зависит от внутреннего генератора скорости передачи. Данные записываются в UxTXBUF и перемещаются в сдвиговый регистр TX до старта передачи UCLK на SOMI. Данные на SIMO сдвигаются в сдвиговый регистр приема по противоположному фронту UCLK и перемещаются в UxRXBUF, когда принято заданное количество бит. Когда данные перемещаются из сдвигового регистра RX в UxRXBUF, устанавливается флаг прерывания URXIFGx, указывая, что данные были приняты. Бит ошибки переполнения OE устанавливается, когда предыдущие принятые данные не были прочитаны из UxRXBUF до перемещения новых данных в UxRXBUF.

Библиотека Компэла

253


MSP430x1xxFamily

Ведущий

SIMO

SIMO

Ведомый

Буфер приема SPI

Буфер передачи UxTXBUF

Буфер приема UxRXBUF

Px.x

STE

STE

SS

Port.x

Сдвиговый регистр

SOMI

SOMI

Сдвиговый регистр

Сдвиговый регистр

данных DSR

передачи

приема

MSB

LSB

MSB

LSB

MSB

LSB

SCLK

UCLK

Обычный SPI

MSP430 USART

Рис. 14-3. USART – ведомый, внешнее устройство – ведущее

4-х выводной режим ведомого SPI

В 4-х выводном режиме ведущего STE используется ведомым для разрешения операций передачи и приема и управляется ведущим SPI. Когда STE имеет низкий уровень, ведомый работает нормально. Когда у STE высокий уровень:

Любая выполняющаяся операция приема на SIMO останавливается

SOMI устанавливается на направление ввода

Высокий уровень сигнала STE не сбрасывает модуль USART. Входной сигнал STE не используется в 3-х выводном режиме ведомого.

14.2.4. Включение SPI

Бит включения USPIEx передачи/приема SPI включает или отключает USART в режиме SPI. Когда USPIEx=0, USART останавливает работу после завершения текущей передачи или немедленно, если действий не выполнялось.

USPIEx = 0

Данные не записаны

Не завершено

в буфер переноса

USPIEx = 1

Состояние

USPIEx = 1

Условия обработки

Передача

простоя

Передача

запрещена

(передатчик

данные

выполняется

прерывания

USPIEx = 0

включен)

записаны

в буфер передачи

Символ

SWRST

USPIEx = 1

передан

PUC

USPIEx = 0, последнее

содержимое буфера передано

Рис. 14-4. Разрешение передачи в режиме ведущего

254

Библиотека Компэла


Раздел XIV.

Периферийный интерфейс USART, режим SPI

Сигнал PUC или установка бита SWRST отключают USART немедленно, при этом любая выполняющаяся передача прерывается.

Разрешение передачи

Когда USPIEx=0, любая последующая запись в UxTXBUF не приводит к передаче. Данные, записанные в UxTXBUF начнут передаваться, когда USPIEx=1 и активен источник BRCLK. На рис. 14-4 и рис. 14-5 показаны диаграммы состояний при разрешении передачи.

USPIEx = 0

Нет тактирования UCLK

Не завершено

USPIEx = 1

Состояние

USPIEx = 1

Условия обработки

Передача

простоя

Передача

прерывания

запрещена

(передатчик

используется

выполняется

USPIEx = 0

включен)

внешнее

Символ

тактирование

SWRST

USPIEx = 1

передан

PUC

USPIEx = 0

Рис. 14-5. Диаграмма состояний разрешения передачи ведомого

Разрешение приема

Диаграммы состояний разрешения приема SPI показаны на рис. 14-6 и рис. 14-7. Когда USPIEx=0, UCLK не сдвигает данные в сдвиговый регистр RX.

USPIEx = 0

Данные не записаны

Не завершено

в UxTXBUF

USPIEx = 1

Состояние

USPIEx = 1

Прием

Условия обработки

Прием

ожидания

запрещен

(приемник

данные

полного

прерывания

символа

USPIEx = 0

включен)

записаны

в UxTXBUF

Символ

SWRST

USPIEx = 1

принят

PUC

USPIEx = 0

Рис. 14-6. Диаграмма состояний разрешения приема в режиме ведущего SPI

14.2.5. Управление последовательным тактированием

Сигнал UCLK на шине SPI обеспечивается ведущим. Когда MM=1, BITCLK обеспечивается генератором скорости передачи USART на выводе UCLK, как

Библиотека Компэла

255


MSP430x1xxFamily

USPIEx = 0

Нет тактирования UCLK

Не завершено

USPIEx = 1

Состояние

USPIEx = 1

Прием

Условия обработки

Прием

ожидания

полного

прерывания

запрещен

(приемник

USPIEx = 0

включен)

символа

Символ

SWRST

USPIEx = 1

принят

PUC

USPIEx = 0

Рис. 14-7. Диаграмма состояний разрешения приема ведомым SPI

показано на рис. 14-8. Когда MM=0, тактирование USART на выводе UCLK обеспечивается ведущим, генератор скорости передачи не используется, а значения битов SSELx не учитываются. Приемник и передатчик SPI работают параллельно и используют одинаковый источник тактирования для передачи данных.

SSEL1 SSEL0 N = 215 ...

28

27

...

20

UCLKI

UxBR1

UxBR0

00

BRCLK

8

8

ACLK

01

16•разрядный счетчик R

SMCLK

10

Q15 ............

Q0

SMCLK

11

Перекл.

Сравнение (0 или 1)

FF

BITCLK

Сдвиговый регистр

R

R

модуляции данных

(первый млад. разряд)

mX

m7

8 m0

UxMCTL

Начальный разряд

Рис. 14-8. Генератор скорости передачи SPI

16-разрядное значение UxBR0+UxBR1 представляет собой коэффициент деления источника тактирования USART – BRCLK. Максимальная скорость передачи, генерируемая в режиме ведущего равна BRCLK/2. Модулятор в генераторе скорости передачи USART не используется в режиме SPI, рекомендуется устанавливать его значение равным 000h. Частота UCLK определяется так:

Скорость передачи = BRCLK/UxBR, где UxBR = [UxBR1, UxBR0]

256

Библиотека Компэла


Раздел XIV.

Периферийный интерфейс USART, режим SPI

Полярность и фаза последовательного тактирования

Полярность и фаза UCLK раздельно конфигурируются через управляющие биты CKPL и CKPH модуля USART. Синхронизация для каждого случая показана на рис. 14-9.

Номер

CKPH CKPL

цикла

1

2

3

4

5

6

7

8

0

0

UCLK

0 1 UCLK

1 0 UCLK

11 UCLK

0

Х

SIMO/

MSB

LSB

SOMI

1

Х

SIMO/

MSB

LSB

SOMI

Перемещение в UxTXBUF

Элементы выборок RX

Рис. 14-9. Синхронизация USART SPI

14.2.6. Прерывания SPI

SPI имеет один вектор прерывания для передачи и один вектор прерывания для приема.

Работа прерывания SPI при передаче

Флаг прерывания UTXIFGx устанавливается передатчиком для указания, что UxTXBUF готов к приему другого символа. Запрос прерывания генерируется, если также установлены флаги UTXIEx и GIE. UTXIFGx автоматически сбрасывается, если запрос прерывания обработан или если символ записан в UxTXBUF.

UTXIFGx устанавливается после PUC или когда SWRST=1. UTXIEx сбрасывается после PUC или когда SWRST=1. Это показано на рис. 14-10.

Примечание: запись в UxTXBUF в режиме SPI

Запись данных в UxTXBUF, когда UTXIFGx=0 и USPIEx=1 может привести к ошибочной передаче данных.

Работа прерывания SPI при приеме

Флаг прерывания URXIFGx устанавливается каждый раз, когда символ принят и загружен в UxRXBUF, как показано на рис. 14-11 и 14-12. Запрос пре-

Библиотека Компэла

257