Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MSP430_НВВ.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.67 Mб
Скачать

3.9.1.6 Регистры usart

    • UxCTL (USART Control) – содержит биты управления USART.

7 6 5 4 3 2 1 0

PENA

PEV

SPB

CHAR

LISTEN

SYNC

MM

SWRS

  • Бит 7 – PENA (Parity Enable) –разрешение паритета. Установка/сброс этого бита включает/выключает контроль четности единиц в кадре.

  • Бит 6 – PEV (Parity Even) – четность паритета. Установка/сброс этого бита выбирает паритет четности/нечетности в том случае, если паритет разрешен.

  • Бит 5 – SPB (Stop Bit) - состояние этого бита задает количество стоп-битов в конце кадра:

0 – 1 стоп бит,

1 – 2 стоп бита.

  • Бит 4 – CHAR (Character) – определяет длину информационного поля кадра:

0 – 7 битов,

1 – 8 битов.

  • Бит 3 – LISTEN прослушивание. Установка этого бита подключает выход UTXD ко входу URXD внутри USART, что дает возможность приемнику прослушивать данные, передаваемые собственным передатчиком.

  • Бит 2 – SYNC (Synchronous) – должен быть сброшен для задания режима UART.

  • Бит 1 – MM (Multiprocessor Mode) – установка/сброс этого бита задает режим многопроцессорного протокола:

0 – режим свободной линии – idle line,

1 – режим адресного бита – address bit.

  • Бит 0 – SWRS (Software Reset) – программный сброс. Установка этого бита в 1 производит программный сброс аппаратуры USART в исходное состояние, 0 – разрешает работу USART.

    • UxTCTL (USART Control) – содержит биты управления передатчика USART.

7 6 5 4 3 2 1 0

-

CKPL

SSEL1,0

URXSE

TXWAKE

-

TEXP

  • Бит 7 – зарезервирован.

  • Бит 6 – CKPL (Clock Polarity) – выбор полярности тактирования при использовании внешнего тактового сигнала UCLK. Установка этого бита инвертирует тактирующий сигнал.

  • Биты 5,4 – SSEL (Source Select) – комбинация этих бит задает источник тактирования USART

SSEL1

SSEL0

Источник

0

0

Внешний UCLK (P3.3/P5.3)

0

1

ACLK

1

0

SMCLK

1

1

SMCLK

  • Бит 3 – URXSE (UART Receive Start Edge) – контроль фронта стартового бита. Установка/сброс этого бита разрешает/запрещает реакцию на фронт стартового бита (см. п. 3.9.1.4).

  • Бит 2 – TXWAKE (Transmitter Wake) – пробуждение передатчика. При установке этого бита следующий кадр посылается как адресный. Сбрасывается автоматически.

  • Бит 1 – зарезервирован.

  • Бит 0 – TXEPT ( Transmitter Empty) – передатчик пуст. Устанавливается в 1 аппаратно в том случае если UTXBUF и сдвиговый регистр не содержит данных, в противном случае сбрасывается.

    • UxRCTL (USART Control) – содержит биты управления приемника USART.

7 6 5 4 3 2 1 0

FE

PE

OE

BRK

URXEIE

URXWIE

RXWAKE

RXERR

  • Бит 7 – FE (Frame Error) – ошибка кадра. Устанавливается аппаратно, если принятый стоп-бит равен 0. Сбрасывается программно или чтением URXBUF.

  • Бит 6 – PE (Parity Error) – ошибка паритета. Устанавливается аппаратно, если было обнаружено несоответствие единиц в полученном кадре и состоянием бита паритета. Сбрасывается программно или чтением URXBUF.

  • Бит 5 – OE (Overrun Error) – ошибка переполнения. Устанавливается аппаратно если при копировании данных из сдвигового регистра в URXBUF, старые данные не были вычитаны из буфера. Сбрасывается программно или чтением URXBUF.

  • Бит 4 – BRK (Break) – разрыв линии. Устанавливается аппаратно, если приемник обнаружил 10 или более нулевых битов на входе URXD. Сбрасывается программно или чтением URXBUF.

  • Бит 3 – URXEIE (Receive Erroneous-character Interrupt Enable) – разрешение прерывания при приеме ошибочного символа. Устанавливается/сбрасывается для разрешения/запрещения приема ошибочных символов – т.е. символов, прием которых вызвал установку битов 7,6,5 этого регистра. Если этот бит сброшен, прием символа с ошибками не устанавливает флаг URXIFG.

  • Бит 2 – URXWIE (Receive Wake-up Interrupt Enable) – разрешение прерывания при получении адресного байта. При установке этого бита принимаются (устанавливается флаг URXIFG) только адресные байты. При сбросе бита принимаются все байты.

  • Бит 1 – RXWAKE (Receive Wake-up) – прием адресного байта. Устанавливается аппаратно при приеме адресного байта. Сбрасывается аппаратно при приеме байта данных.

  • Бит 0 – RXERR (Receive Error) – ошибка приема. Устанавливается аппаратно, если установлен любой из флагов ошибок (FE,PE,OE,BRK). Сбрасывается чтением URXBUF.

    • UxMCTL (USART Control) – содержит биты управления модулятора USART (см. 3.9.1.5).

    • UxBR0 (Baud Rate) – младший байт делителя частоты тактирования UART.

    • UxBR1 (Baud Rate) – старший байт делителя частоты тактирования UART.

    • UxTXBUF (Transmit Buffer) – буферный регистр передатчика.

    • UxRXBUF (Transmit Buffer) – буферный регистр приемника

    • ME1 (Module Enable 1) – содержит биты разрешения приемника и передатчика USART0.

7 6 5 0

UTXE0

URXE0

-

  • Бит 7 – UTXE0 (USART0 Transmit Enable). Установка/сброс этого бита разрешает/запрещает передатчик USART0.

  • Бит 6 – URXE0 (USART0 Receive Enable). Установка/сброс этого бита разрешает/запрещает приемник USART0.

  • Биты 5…0 – зарезервированы.

    • ME2 (Module Enable 2) – содержит биты разрешения приемника и передатчика USART1.

7 6 5 4 3 0

-

UTXE1

URXE1

-

  • Биты 7,6 – зарезервированы.

  • Бит 5 – UTXE1 (USART1 Transmit Enable). Установка/сброс этого бита разрешает/запрещает передатчик USART1.

  • Бит 4 – URXE1 (USART1 Receive Enable). Установка/сброс этого бита разрешает/запрещает приемник USART1.

  • Биты 3…0 – зарезервированы.

    • IE1 (Interrupt Enable 1) – содержит биты разрешения прерываний для USART0 (см. п.3.2).

    • IE2 (Interrupt Enable 2) – содержит биты разрешения прерываний для USART1 (см. п.3.2).

    • IFG1 (Interrupt Flag 1) – содержит флаги прерываний для USART0 (см. п.3.2).

    • IFG2 (Interrupt Flag 2) – содержит флаги прерываний для USART1 (см. п.3.2).

ПРИМЕР

Принять 100 байт данных с помощью UART0 и записать их в ОЗУ, начиная с адреса 200h. Скорость передачи данных - 115.2 kb/s, формат – 8 бит, один стоп бит, частота SMCLK – 8 MHz.

Рассчитаем коэффициент деления частоты SMCLK для обеспечения требуемой скорости.

N=8000/115.2=69.4≈69

Погрешность скорости δ=100% * (69.4-69)/69.4≈0.6 %, следовательно модулятор можно не использовать.

mov.b #SWRST+CHAR, &U0CTL ; устанавливаем программный

; сброс, режим 8 бит

mov.b #SSEL1, &U0TCTL ; тактирование от SMCLK

mov.b #69, &U0BR0 ; установка скорости приема

mov.b #0, &U0BR1

mov.b #0, &U0MCTL

bis.b #URXE0, &ME1 ; разрешение приема

bic.b #URXIE0, &IE1 ; запрет прерываний

bis.b #40h, &P3SEL ; вывод P3.5/U0RXD для

; поддержки UART0

bic.b #SWRST, &U0CTL ; очистка программного сброса

mov #200h, R12 ; настраиваем указатель

wait: bit.b #URXIFG0, &IFG1 ; ожидание поступления кадра

jz wait

mov.b &U0RXBUF, 0(R12) ; сохранение данных в ОЗУ

inc R12 ; наращивание указателя

cmp #200h+100, R12 ; все данные приняты?

jne wait ; если нет, то цикл

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]