8(495)909-90-01
8(964)644-46-00
pro@sio.su
Главная
Системы видеонаблюдения
Охранная сигнализация
Пожарная сигнализация
Система пожаротушения
Система контроля удаленного доступа
Оповещение и эвакуация
Контроль периметра
Система домофонии
Парковочные системы
Проектирование слаботочных сетей
Аварийный
контроль
Раздел: Документация

0 ... 162 163 164 165 166 167 168 ... 195

(продолжение)

Бит

Название

Описание

4

RXENai

Разрешение приема. При установке этого бита в 1 разрешается работа приемника USART и переопределяется функционирование вывода RXDai. При сбросе бита RXENw работа приемника запрещается, а его буфер сбрасывается. Включение одного приемника в режиме М S PI не имеет смысла, поскольку тактовый сигнал формируется передатчиком

3

TXENai

Разрешение передачи. При установке этого бита в 1 разрешается работа передатчика USART и переопределяется функционирование вывода TXDai. Если бит сбрасывается в 0 во время передачи, выключение передатчика произойдет только после завершения передачи данных, находящихся в сдвиговом регистре и буфере передатчика

2...0

-

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

Примечание, п = 0,1,2 или 3.

76543210

UMSELnl

UMSELnO

-

-

-

UDORDn

иСРНАл

UCPOLn

Чтение(П)/Запись(\Л/) R/W R/WRRR R/W R/W R/W

Начальное значение 0 00 00110

Рис. 13.11. Регистры UCSR/jC в режиме MSPI

Таблица 13.16. Биты регистров UCSR/iC в режиме MSPI Бит НазваниеОписание

UMSEL/jI

Режим работы USART. Эти биты определяют режим работы модуля USART:

UMSELaiO

UMSELnl

UMSELnO

Режим работы

0

0

Асинхронный USART

0

1

Синхронный USART

1

0

Зарезервировано

1

1

MSPI

5...3

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

UDORDai

Формат передачи данных. Если этот бит установлен в 1, данные передаются от младшего бита к старшему. Если бит сброшен в 0, порядок передачи битов меняется на противоположный — от старшего бита к младшему

UCPHA/i

Фаза тактового сигнала. Если этот бит сброшен в 0, данные с входа RxDai считываются по переднему фронту импульсов тактового сигнала (нарастающий фронт при UCPOLai = 0 и спадающий при UCPObi = 1). Если же этот бит установлен в 1, данные с входа RxDai считываются по заднему фронту импульсов тактового сигнала (спадающий фронт при UCPOLw = 0 и нарастающий при UCPOLai = 1)

UCPOLai

Полярность тактового сигнала. Значение этого бита определяет состояние линии SCK в режиме ожидания. Если бит сброшен в 0, генерируются импульсы положительной полярности, а в режиме ожидания на выводе ХСКл формируется НИЗКИЙ уровень. Если бит установлен в 1, генерируются импульсы отрицательной полярности, а в режиме ожидания на выводе ХСКл формируется ВЫСОКИЙ уровень


Как видно из Табл. 13.16, переключение модуля USART в режим MSPI осуществляется установкой в 1 обоих битов UMSEL/d и UMSELO регистра UCSRflC. Формирование тактового сигнала в режиме MSPI осуществляется аналогично синхронному режиму USART. Таким образом, скорость передачи в режиме MSPI определяется выражением

BAUD =

/(

ск

2-(UBRR + 1)

где BAUD — скорость передачи, бит/с;

/ск — тактовая частота микроконтроллера; UBRR — содержимое регистра контроллера скорости передачи (0...4095).

Как было сказано выше, модуль USART поддерживает все четыре режима SPI, различающихся фазой и полярностью тактового сигнала ХСКл (SCK) относительно последовательных данных. В данном случае фаза тактового сигнала определяется битом иСРНАя, а полярность — битом UCPOL/? регистра UCSR/jC. Соответствие между состоянием этих битов и реализуемым режимом SPI указано в Табл. 13.17. Временные диаграммы передачи данных для всех четырех режимов приведены на Рис. 13.12.

Таблица 13.17. Режимы SPI и биты UCPHAn

UCPOLw

UCPHAn

Режим SPI

Передний фронт

Задний фронт

0

0

0

Считывание данных (нарастающий фронт)

Установка данных (спадающий фронт)

0

1

1

Установка данных (нарастающий фронт)

Считывание данных (спадающий фронт)

1

0

2

Считывание данных (спадающий фронт)

Установка данных (нарастающий фронт)

1

1

3

Установка данных (спадающий фронт)

Считывание данных (нарастающий фронт)

хек

UCPOL=0

<п п п п

£ Установка (TXD) —I I—I 1—1 L l I

Считывание (RXD)

т т т т

ХСК

Установка (TXD) Считывание (RXD)

UCPOL=1

~и~1 ги~и □czrzrn: т т т т

ХСК

Установка (TXD) Считывание (RXD)

гтл гш т т т т

ХСК

Установка (TXD) Считывание (RXD)

~ш гии

ZZTZTZXZ3

т т т т

Рис. 13.12. Передача данных в режиме MSPI


Формат передачи 8-битных данных, а именно порядок передачи битов, определяется состоянием бита UDORD/? регистра UCSR/jC. Если этот бит сброшен в 0, первым передается старший бит содержимого сдвигового регистра передатчика, а если установлен в 1 — младший бит. Благодаря двойной буферизации данных в модуле USART, можно легко осуществить передачу и 16-битных данных, записывая оба байта подряд в регистр данных UDR/i. Окончание передачи 16-битного значения можно будет определить по установке флага прерывания «передача завершена».

13.4.2. Инициализация режима MSPI

Наверное, излишним будет говорить, что инициализация режима MSPI модуля USART должна быть выполнена до начала обмена по шине. Собственно инициализация заключается в задании требуемой скорости передачи, перевода вывода ХСКл в режим выхода, установки формата передачи данных, а также включения передатчика и приемника USART (если не требуется прием данных от ведомых устройств, то приемник можно и не включать). Если при обработке USART используются прерывания, то во время инициализации все прерывания должны быть запрещены (флаг I регистра SREG должен быть сброшен в 0).

Обратите внимание, что включение передатчика USART необходимо выполнять при сброшенном регистре контроллера скорости передачи UBRR/2. Соответственно запись в регистр UBBR/7 требуемого значения следует производить после разрешения передатчика, но до начала обмена по шине.

При реинициализации модуля (изменении скорости передачи, режима работы или формата данных), прежде чем изменять содержимое регистров, необходимо убедиться, что все данные переданы, проконтролировав состояние флагов ТХСп и КХСп.

Ниже приведен простой пример подпрограммы инициализации (используется опрос флагов прерываний). Параметром подпрограммы является значение скорости передачи, передаваемое (в примере на ассемблере) в регистровой паре г17:г16.

Пример на ассемблере

USART MSPIM Init: clr rl8 out UBRRnH, rl8 out UBRRnL, rl8 ; Переключаем ХСКл на выход sbi XCKn DDR, ХСКл

; Переключаемся в режим MSPI (0-й режим SPI)

ldi rl8, (l«UMSELnl) I (l«UMSELnO) I (0«UCPHAn) I (0«UCPOLn)

out UCSRnC,rl8



0 ... 162 163 164 165 166 167 168 ... 195