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

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

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

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

Добавлен: 16.06.2025

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

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

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

MSP430x1xxFamily

Если передатчик включен (UTXEx=1), данные не будет записываться в UxTXBUF, пока его готовность принимать новые данные не будет объявлена установкой UTXIFGx=1. Нарушение этого может привести к ошибочной передаче, т.к. измененные данные будет перемещены в сдвиговый регистр TX.

Рекомендуется отключать передатчик (UTXEx=0) только после завершения любой выполнявшейся передачи. На это указывает установка бита опустошения передатчика (TXEPT=1). Любые данные, записанные в UxTXBUF в тот момент, когда передатчик отключен, будут находится в буфере, но не будут помещены в сдвиговый регистр передачи или переданы. Однократная установка UTXEx вызовет немедленную загрузку в сдвиговый регистр передачи данных из буфера передачи и возобновит передачу символа.

13.2.6. Контроллер скорости передачи UART

Контроллер (генератор) скорости передачи USART может создавать стандартные скорости передачи от источников нестандартных частот. Контроллер скорости передачи использует один прескалер/делитель и модулятор, показанные на рис. 13-7. Эта комбинация позволяет получить дробные коэффициенты деления при генерации скорости передачи в бодах. Максимальная скорость передачи USART составляет одну треть источника таковой частоты USART BRCLK.

SSEL1

SSEL0 N = 215 ...

28

27

...

20

UCLKI

00

UxBR1

UxBR0

BRCLK

8

8

ACLK

01

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

SMCLK

10

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

Q0

SMCLK

11

FF

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

BITCLK

Триггер

R

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

R

модуляции

(первый • младший бит)

mX

m7

8

m0

UxMCTL

Стартовый бит

Рис. 13-7. Контроллер генератора передачи MSP430

Синхронизация каждого бита показана на рис. 13-8. Для каждого полученного бита используется мажоритарный принцип определения значения бита. Мажоритарные выборки происходят в N/2-1, N/2 и N/2+1 периоды BRCLK, где N – число импульсов BRCLKs на один импульс BITCLK.

230

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


Раздел XIII.

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

Мажоритарный выбор: (m=0)

Стартовый

(m= 1)

бит

BRCLK

N/2

N/2•1 N/2•2

N/2

N/2•1

Счетчик

N/2 N/2•1 N/2•2

1

1

1

0

N/2 N/2•1

1

0

N/2

BITCLK

INT(N/2) + m(= 0)

Nчетн.: INT(N/2)

INT(N/2) + m(= 1)

Nнечетн.: INT(N/2) + R(= 1)

Период бита

m: соответствующий бит модуляции R: остаток от деления N/2

Рис. 13-8. Синхронизация скорости передачи BITCLK

Синхронизация скорости передачи бит

Первая ступень контролера скорости передачи – 16-разрядный счетчик и компаратор. В начале передачи или приема каждого бита счетчик загружается величиной INT(N/2), где N – значение, сохраненное в комбина4ции UxBR0 и UxBR1. Счетчик перезагружает INT(N/2) каждый полупериод периода бита, обеспечивая полный период бита N BRCLK. Для данного источника тактирования BRCLK, скорость передачи определяется требуемым коэффициентом деления N:

N = BRCLK / скорость передачи в бодах;

Коэффициент деления N зачастую является нецелым числом, целочисленная часть которого может быть принята прескалером/делителем. Вторая ступень генератора скорости передачи – модулятор, используемый для максимально точного учета дробной части. Коэффициент деления N в этом случае определяется так:

1

n 1

N UxBR

m ,

n

i

i 0

где:

N – получаемый коэффициент деления;

UxBR – 16-разрядное представление регистров UxBR0 и UxBR1; i – позиция бита в фрейме;

n – общее количество битов в фрейме;

mi – данные каждого соответствующего модуляционного бита (1 или 0). BITCLK может подстраиваться от бита к биту с помощью модулятора для

удовлетворения потребностей в синхронизации в случае, когда необходим де-

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

231


MSP430x1xxFamily

Скорость_ передачи

BRCKL

BRCLK

1

n 1

N

UxBR

m

n

i

i 0

литель нецелого числа. Синхронизация каждого бита расширяется одним тактовым циклом BRCLK, если бит модулятора mi установлен. Каждый раз при получении или передаче бита, следующий бит в регистре управления модуляцией определяет синхронизацию этого бита. Установленный модуляционный бит увеличивает коэффициент деления на единицу, в то же время очищенный бит модуляции сохраняет коэффициент деления, заданный UxBR.

Синхронизация стартового бита определяется UxBR плюс m0, следующего бита UxBR плюс m1 и так далее. Модуляционная последовательность начинается с младшего бита. Когда символ содержит более 8 бит, модуляционная последовательность вновь начинается с m0 и продолжается до окончания обработки всех битов.

Определение модуляционного значения

Определение модуляционного значения – интерактивный процесс. Использование формулы ошибки синхронизации, начиная со стартового бита, позволяет рассчитать ошибку для каждого бита с последующей установкой или сбросом соответствующего бита модуляции. Модуляционный бит устанавливается с наименьшей выбранной ошибкой и рассчитанной ошибкой следующего бита. Этот процесс продолжается до минимизации ошибок всех битов. Если фрейм содержит более 8 бит, модуляционные биты повторяются. К примеру, 9-й бит фрейма использует бит модуляции 0.

Синхронизация битов при передаче

Синхронизация каждого символа в совокупности представляет собой сумму синхронизаций отдельных разрядов. При модуляции каждого бита сокращается накапливающая поразрядная погрешность. Индивидуальную разрядную погрешность можно рассчитать так:

где:

n 1

baudrate

UxBR m

Ошибка [%]

( j 1)

( j 1) 100%,

BRCLK

i

i 0

baudrate – желаемая скорость передачи в бодах; BRCLK – входная частота: UCLKI, ACLK или SMCLK;

j – позиция бита – 0 для стартового бита, 1 для бита данных D0 и т.д.; UxBR – коэффициент деления в регистрах UxBR1 и UxBR0.

Например, ошибки передачи при приведенных ниже условиях рассчитываются так:

232

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


Раздел XIII.

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

baudrate = 2400

BRCLK = 32768 Гц (ACLK)

UxBR = 13, так как идеальный коэффициент деления равен 13.65 UxMCTL = 6Bh: m7=0, m6=1, m5=1, m4=0, m3=1, m2=0, m1=1 и m0=1. Сначала используется младший бит UxMCTL.

baudrate

Ошибка _ стартового _ бита [%]

[(0 1)

UxBR 1] 1 100%

2.54%

BRCLK

baudrate

Ошибка _ бита _ данных _ D0 [%]

[(1 1)

UxBR 2] 2

100% 5.08%

BRCLK

baudrate

Ошибка _ бита _ данных _ D1 [%]

[(2 1)

UxBR 2] 3

100% 0.29%

BRCLK

baudrate

Ошибка _ бита _ данных _ D2 [%]

[(3 1)

UxBR 3] 4

100% 2.83%

BRCLK

baudrate

Ошибка _ бита _ данных _ D3 [%]

[(4 1)

UxBR 3] 5

100% 1.95%

BRCLK

Ошибка _ бита _ данных _ D4 [%]

baudrate

[(5 1)

UxBR 4]

100% 0.59%

6

BRCLK

Ошибка _ бита _ данных _ D5 [%]

baudrate

[(6 1)

UxBR 5]

100% 3.13%

7

BRCLK

baudrate

Ошибка _ бита _ данных _ D6 [%]

[(7 1)

UxBR 5] 8

100% 1.66%

BRCLK

Ошибка _ бита _ данных _ D7 [%]

baudrate

[(8 1)

UxBR 6]

100% 0.88%

9

BRCLK

baudrate

Ошибка _ бита _четности [%]

[(9 1) UxBR 7] 10

100% 3.42%

BRCLK

baudrate

Ошибка _ стопового _ бита _1[%]

[(10 1)

UxBR 7] 11

100% 1.37%

BRCLK

Результаты показывают, что максимальная поразрядная ошибка была 5,08% за период BITCLK.

Синхронизация битов при приеме

Синхронизация приема состоит из двух источников ошибок. Первый – побитовая ошибка синхронизации. Второй – ошибка между появлением стартового фронта и стартовым фронтом, принятым USART. На рис. 13-9 показаны асинхронные ошибки синхронизации между данными на выводе URXDx и внутренним тактированием скорости передачи.

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

233