Периферийный интерфейс USART, режим UART
Универсальный синхронно/асинхронный приемопередающий (USART) периферийный интерфейс поддерживает два последовательных режима в одном аппаратном модуле. Этот раздел описывает работу асинхронного режима UART. USART0 реализован в устройствах MSP430x12xx, MSP430x13xx и MSP430x15x. В дополнение к USART0 в устройствах MSP430x14x и MSP430x16x реализован второй идентичный USART модуль – USART1.
13.1 Введение в USART: режим UART
В асинхронном режиме USART подключает MSP430 к внешней системе через два внешних вывода: URXD и UTXD. Режим UART выбирается при очистке бита SYNC.
Режим UART имеет следующие возможности:
- 7- или 8-разрядные данные с проверкой четности/нечетности и без контроля четности
- Независимые сдвиговые регистры передачи и приема
- Раздельные буферные регистры передачи и приема
- Передача и прием начинаются с младшего бита данных
- Встроенные коммуникационные протоколы свободной линии и адресного бита для многопроцессорных систем
- Определение в приемнике стартового фронта сигнала для автоматического пробуждения из режимов LPMx
- Программируемая скорость передачи с модуляцией для поддержки дробных величин скоростей
- Флаги статуса для обнаружения ошибок, блокировки и определения адреса
- Возможны независимые прерывания для приема и передачи
На рис.13-1 показан USART, сконфигурированный в режиме UART.
Рис.13-1 Блок-схема USART в режиме UART
13.2 Работа USART: режим UART
В режиме UART модуль USART передает и принимает символы на скорости, асинхронной другому устройству. Синхронизация каждого символа основана на выбранной скорости передачи USART. Для выполнения функций передачи и приема используется одинаковая скорость в бодах.
13.2.1 Инициализация и сброс USART
Модуль USART сбрасывается сигналом PUC или при установке бита SWRST. После PUC бит SWRST автоматически устанавливается, оставляя USART в состоянии сброса. Когда бит SWRST установлен, сброшены биты URXIEx, UTXIEx, URXIFGx, RXWAKE, TXWAKE, RXERR, BRK, PE, OE, FE и установлены биты UTXIFGx и TXEPT. Флаги разрешения приема и передачи URXEx и UTXEx не изменяются битом SWRST. Очистка SWRST позволяет модулю USART функционировать. См. также раздел «Модуль USART, режим I2C» при реконфигурировании USART0 из режима I2C в режим UART.
Примечание: Инициализация и реконфигурирование модуля USART
Процесс инициализации/реконфигурирования USART необходимо выполнять так:
- Установить SWRST (BIS.B #SWRST,&UxCTL)
- Инициализировать все регистры USART установкой SWRST=1 (включая UxCTL)
- Включить модуль USART через MEx SFRs (URXEx и/или UTXEx)
- Программно очистить SWRST (BIC.B #SWRST,&UxCTL)
- Разрешить прерывания (если необходимо) через IEx SFRs (URXIEx и/или UTXIEx)
Невыполнение этой последовательности может привести к непредсказуемому поведению USART.
|
13.2.2 Формат символа
Формат символа USART, показанный на рис.13-2, содержит стартовый бит, семь или восемь битов данных, бит контроля четности, адресный бит (в адресном режиме) и один или два стоповых бит. Период битов определяется выбранным источником тактовых импульсов и настройкой регистров скорости передачи.
Рис.13-2 Формат символа
13.2.3 Асинхронные коммуникационные форматы
Когда два устройства обмениваются информацией асинхронно, в качестве протокола используется формат «свободная линия». Когда связываются три или более устройств, USART поддерживает многопроцессорные коммуникационные форматы со свободной линией и формат с адресным битом.
Многопроцессорный формат со свободной линией
Когда MM=0, выбирается многопроцессорный формат со свободной линией. Блоки данных на линиях передачи или приема разделены временем простоя, как показано на рис.13-3. Простой линии приема обнаруживается, когда приняты 10 или более непрерывных логических единиц (меток) после первого стопового бита символа. Когда для свободной линии используются два стоповых бита, второй стоповый бит принимается за первый маркерный бит периода простоя.
Первый символ, принятый после периода простоя является символом, содержащим адрес. Бит RXWAKE используется как адресный тэг для каждого фрэйма. В многопроцессорном формате свободной линии этот бит установлен, когда принятый символ – адрес, помещенный в UxRXBUF.
Рис.13-3 Формат свободной линии
Бит URXWIE используется для приема управляющих данных в многопроцессорном формате со свободной линией. Когда бит URXWIE установлен, все неадресные символы обрабатываются, но не перемещаются в UxRXBUF и прерывания не генерируются. Когда принят адресный символ, приемник временно активизируется для переноса символа в UxRXBUF и установки флага прерывания URXIFGx. Любой соответствующий флаг ошибки также устанавливается. Теперь пользователь может проверить корректность принятого адреса.
Если адрес принят, программное обеспечение пользователя может проверить правильность адреса и должно сбросить URXWIE для продолжения приема данных. Если URXWIE остается установленным, будут приниматься только адресные символы. Бит URXWIE не изменяется автоматически аппаратным обеспечением USART.
При передаче адреса в многопроцессорном формате со свободной линией точный период простоя для генерации идентификаторов адресного символа на UTXDx может быть сгенерирован модулем USART. Флаг временного пробуждения (WUT) – внутренний флаг с двойной буферизацией битом TXWAKE, доступным пользователю. Когда передатчик загружен из UxTXBUF, WUT также загружается из TXWAKE, сбрасывая бит TXWAKE.
Следующая процедура посылает фрэйм простоя для указания, что далее следует символ адреса:
- Устанавливается TXWAKE, что приводит к записи любого символа в UxTXBUF. UxTXBUF должен быть готов для новых данных (UTXIFGx=1).
Значение TXWAKE сдвигается в WUT и содержимое UxTXBUF сдвигается в сдвиговый регистр передачи, когда он готов для передачи новых данных. Это приводит к установке бита WUT, который препятствует нормальной передаче битов старта, данных и контроля четности, поэтому происходит передача периода простоя длительностью точно 11 бит. Когда для свободной линии используются два стоповых бита, второй стоповый бит считается первым маркерным битом периода простоя. Бит TXWAKE сбрасывается автоматически.
- Записывается желаемый адресный символ в UxTXBUF. UxTXBUF должен быть готов для новых данных (UTXIFGx=1).
Новый символ, представляющий заданный адрес, сдвигается наружу после периода простоя, идентифицировавшего адрес на UTXDx. Необходима запись первого незначащего символа в UxTXBUF для сдвига бита TXWAKE в WUT и генерации состояния свободной линии. Эти данные отбрасываются и не появляются на UTXDx.
Многопроцессорный формат с адресным битом
Когда MM=1, выбирается многопроцессорный формат с адресным битом. Каждый обрабатываемый символ содержит дополнительный бит, используемый как указатель адреса (см. рис.13-4). Первый символ в блоке фрэймов несет установленный бит адреса, который указывает, что этот символ является адресом. Бит USART RXWAKE устанавливается, когда принятый символ является правильным адресом фрэйма, помещенным UxRXBUF.
Бит URXWIE используется для приема управляющих данных в многопроцессорном формате с адресным битом. Когда бит URXWIE установлен, символы данных (бит адреса равен 0) обрабатываются приемником, но не перемещаются в UxRXBUF и прерывания не генерируются. Когда принятый символ содержит установленный адресный бит, приемник временно активизируется для переноса символа в UxRXBUF и установки флага прерывания URXIFGx. Любой соответствующий флаг ошибки также устанавливается.
Если адрес принят, программное обеспечение пользователя может должно сбросить URXWIE для продолжения приема данных. Если URXWIE остается установленным, будут приниматься только адресные символы (адресный бит равен 0). Бит URXWIE не изменяется автоматически аппаратным обеспечением USART.
Рис.13-4 Многопроцессорный формат с адресным битом
При передаче адреса в многопроцессорном режиме с адресным битом, адресный бит символа может изменяться путем записи бита TXWAKE. Значение бита TXWAKE загружается в адресный бит символа, перемещенного из UxTXBUF в сдвиговый регистр передачи, при этом бит TXWAKE автоматически очищается. TXWAKE не должен очищаться программно. Он очищается аппаратными средствами USART после его переноса в WUT или при установке SWRST.
Автоматическое обнаружение ошибок
Подавление импульсных помех предотвращает случайный запуск USART. Любой сигнал низкого уровня на URXDx короче времени t? (около 300 нС) будет проигнорирован. См. руководство по применению конкретного устройства для выяснения точных параметров.
Когда длительность сигнала низкого уровня на URXDx превышает t?, этот сигнал мажоритарно принимается за стартовый бит. Если стартовый бит не будет мажоритарно обнаружен, модуль USART приостанавливает прием символа и ожидает следующего периода низкого уровня на URXDx. Мажоритарный принцип также используется для предотвращения поразрядных ошибок для каждого бита символа.
Модуль USART при приеме символов автоматически обнаруживает ошибки фрэйма, четности, переполнения и прерывания (разрыва). Обнаружение ошибки приводит к установке соответствующих битов FE, PE, OE и BRK. При установке любого из этих флагов также устанавливается RXERR. Ситуации сбоев описаны в таблице 13-1.
Таблица 13-1. Ошибки приема
Ошибочное состояние |
Описание |
Ошибка фрэйма |
Ошибка фрэйма (кадровой синхронизации) происходит при обнаружении стопового бита с низким уровнем. Когда используется два стоповых бита, на ошибку фрэйма проверяется только первый стоповый бит. При обнаружении ошибки фрэйма устанавливается бит FE. |
Ошибка четности |
Ошибка четности – несоответствие между числом единиц в фрейме и значением бита четности. Когда бит адреса включен в фрейм, он учитывается при определении четности. При обнаружении ошибки четности устанавливается бит PE. |
Ошибка переполнения приема |
Ошибка переполнения появляется в случае, когда символ загружается в UxRXBUF до прочтения предыдущего символа. Когда происходит перполнение, устанавливается бит OE. |
Ошибка прерывания (разрыва) |
Состояние разрыва – это период 10 или более нулевых битов, принятых на URXDx после пропущенного стопового бита. Когда обнаруживается состояние разрыва, устанавливается бит BRK. Состояние разрыва также устанавливает флаг прерывания URXIFGx. |
Если обнаружена ошибка фрэйма, четности или состояние разрыва и URXEIE=0, никакой символ не принимается в UxRXBUF. Когда URXEIE=1, символы принимаются в UxRXBUF и устанавливается любой соответствующий бит ошибки.
Когда любой из битов FE, PE, OE, BRK или RXERR установлен, он остается установленным до сброса программным обеспечением или до чтения UxRXBUF.
13.2.4 Разрешение приема USART
Бит разрешения приема URXEx разрешает или запрещает получение данных на URXDx, как показано на рис.13-5. Отключение приемника USART приводит к останову операции приема, начиная с символа, следующего за получаемым в настоящий момент символом или немедленно, если прием не выполняется. Буфер принимаемых данных UxRXBUF содержит символ, перемещенный из сдвигового регистра RX после его приема.
Рис.13-5 Диаграмма состояний при разрешении приема
Примечание: Повторное разрешение работы приемника (установкой URXEx): режим UART
Если приемник отключен (URXEx=0), его включение (URXEx=1) выполняется асинхронно любому потоку данных, который может присутствовать в этот момент на URXDx. В этом случае синхронизация может быть выполнена путем проверки свободного состояния линии перед приемом правильного символа (см. URXWIE).
|
13.2.5 Разрешение передачи USART
Передатчик USART включен, когда установлен бит UTXEx. Передача инициируется путем записи данных в UxTXBUF. При этом данные перемещаются в сдвиговый регистр передачи на следующем после опустошения сдвигового регистра TX импульсе BITCLK и передача начинается. Этот процесс показан на рис.13-6.
Если бит UTXEx сбрасывается, передача прекращается. Выполнение операций перемещения любых данных в UxTXBUF и передачи любых данных в сдвиговый регистр передачи, начатых до очистки бита UTXEx будет продолжено, пока передача не закончится.
Рис.13-6 Диаграмма состояний при разрешении передачи
Если передатчик включен (UTXEx=1), данные не будет записываться в UxTXBUF, пока его готовность принимать новые данные не будет объявлена установкой UTXIFGx=1. Нарушение этого может привести к ошибочной передаче, т.к. измененные данные будет перемещены в сдвиговый регистр TX.
Рекомендуется отключать передатчик (UTXEx=0) только после завершения любой выполнявшейся передачи. На это указывает установка бита опустошения передатчика (TXEPT=1). Любые данные, записанные в UxTXBUF в тот момент, когда передатчик отключен, будут находится в буфере, но не будут помещены в сдвиговый регистр передачи или переданы. Однократная установка UTXEx вызовет немедленную загрузку в сдвиговый регистр передачи данных из буфера передачи и возобновит передачу символа.
13.2.6 Контроллер скорости передачи UART
Контроллер (генератор) скорости передачи USART может создавать стандартные скорости передачи от источников нестандартных частот. Контроллер скорости передачи использует один прескалер/делитель и модулятор, показанные на рис.13-7. Эта комбинация позволяет получить дробные коэффициенты деления при генерации скорости передачи в бодах. Максимальная скорость передачи USART составляет одну треть источника таковой частоты USART BRCLK.
Рис.13-7 Контроллер генератора передачи MSP430
Синхронизация каждого бита показана на рис.13-8. Для каждого полученного бита используется мажоритарный принцип определения значения бита. Мажоритарные выборки происходят в N/2-1, N/2 и N/2+1 периоды BRCLK, где N – число импульсов BRCLKs на один импульс BITCLK.
Рис.13-8 Синхронизация скорости передачи BITCLK
Синхронизация скорости передачи бит
Первая ступень контролера скорости передачи – 16-разрядный счетчик и компаратор. В начале передачи или приема каждого бита счетчик загружается величиной INT(N/2), где N – значение, сохраненное в комбина4ции UxBR0 и UxBR1. Счетчик перезагружает INT(N/2) каждый полупериод периода бита, обеспечивая полный период бита N BRCLK. Для данного источника тактирования BRCLK, скорость передачи определяется требуемым коэффициентом деления N:
Коэффициент деления N зачастую является нецелым числом, целочисленная часть которого может быть принята прескалером/делителем. Вторая ступень генератора скорости передачи – модулятор, используемый для максимально точного учета дробной части. Коэффициент деления N в этом случае определяется так:
где:
N - получаемый коэффициент деления;
UxBR - 16-разрядное представление регистров UxBR0 и UxBR1;
i - позиция бита в фрэйме;
n - общее количество битов в фрэйме;
mi - данные каждого соответствующего модуляционного бита (1 или 0).
BITCLK может подстраиваться от бита к биту с помощью модулятора для удовлетворения потребностей в синхронизации в случае, когда необходим делитель нецелого числа. Синхронизация каждого бита расширяется одним тактовым циклом BRCLK, если бит модулятора mi установлен. Каждый раз при получении или передаче бита, следующий бит в регистре управления модуляцией определяет синхронизацию этого бита. Установленный модуляционный бит увеличивает коэффициент деления на единицу, в то же время очищенный бит модуляции сохраняет коэффициент деления, заданный UxBR.
Синхронизация стартового бита определяется UxBR плюс m0, следующего бита UxBR плюс m1 и так далее. Модуляционная последовательность начинается с младшего бита. Когда символ содержит более 8 бит, модуляционная последовательность вновь начинается с m0 и продолжается до окончания обработки всех битов.
Определение модуляционного значения
Определение модуляционного значения – интерактивный процесс. Использование формулы ошибки синхронизации, начиная со стартового бита, позволяет рассчитать ошибку для каждого бита с последующей установкой или сбросом соответствующего бита модуляции. Модуляционный бит устанавливается с наименьшей выбранной ошибкой и рассчитанной ошибкой следующего бита. Этот процесс продолжается до минимизации ошибок всех битов. Если фрэйм содержит более 8 бит, модуляционные биты повторяются. К примеру, 9-ый бит фрэйма использует бит модуляции 0.
Синхронизация битов при передаче
Синхронизация каждого символа в совокупности представляет собой сумму синхронизаций отдельных разрядов. При модуляции каждого бита сокращается накапливающая поразрядная погрешность. Индивидуальную разрядную погрешность можно рассчитать так:
где:
baudrate - желаемая скорость передачи в бодах;
BRCLK - входная частота: UCLKI, ACLK или SMCLK;
j - позиция бита – 0 для стартового бита, 1 для бита данных D0 и т.д.;
UxBR - коэффициент деления в регистрах UxBR1 и UxBR0.
Например, ошибки передачи при приведенных ниже условиях рассчитываются так:
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.
Результаты показывают, что максимальная поразрядная ошибка была 5,08% за период BITCLK.
Синхронизация битов при приеме
Синхронизация приема состоит из двух источников ошибок. Первый – побитовая ошибка синхронизации. Второй – ошибка между появлением стартового фронта и стартовым фронтом, принятым USART. На рис.13-9 показаны асинхронные ошибки синхронизации между данными на выводе URXDx и внутренним тактированием скорости передачи.
Рис.13-9. Ошибка приема
Идеальное тактирование стартового бита tideal(0) есть половина тактирования скорости передачи tbaud rate, поскольку бит проверяется в середине этого периода. Идеальное тактирование скорости передачи tideal(i) для оставшихся битов символа есть тактирование скорости передачи tbaud rate. Ошибки каждого конкретного бита рассчитываются следующим образом:?±
где:
baudrate - желаемая скорость передачи в бодах;
BRCLK - входная частота, которую можно выбрать из UCLK, ACLK или SMCLK;
j - позиция бита – 0 для стартового бита, 1 для бита данных D0 и т.д.;
UxBR - коэффициент деления в регистрах UxBR1 и UxBR0.
Например, ошибки приема при приведенных ниже условиях рассчитываются так:
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.
Результаты показывают, что максимальная поразрядная ошибка была 5,08% за период BITCLK.
Типовые скорости передачи и ошибки
Стандартные скорости передачи данных в бодах для UxBR и UxMCTL приведены в таблице 13-2 для часового кристалла (ACLK) на 32768 Гц и для типичного значения SMCLK 1048576 Гц.
Ошибка приема – это накопленное время в сравнении с идеальным временем загрузки сдвигового регистра в середине каждого бита. Ошибка передачи – накопленное время ошибки в сравнении с идеальным временем периода бита.
Таблица 13-2. Наиболее часто используемые величины скорости передачи, скорость передачи данных в бодах и ошибки.
Скорость передачи бод |
Деление на |
A: BRCLK = 32768 Гц |
B: BRCLK = 1048576 Гц |
A: |
B: |
UxBR1 |
UxBR0 |
UxMCTL |
Макс. ошибка TX, % |
Макс. ошибка RX, % |
Ошибка синхр. RX, % |
UxBR1 |
UxBR0 |
UxMCTL |
Макс. ошибка TX, % |
Макс. ошибка RX, % |
1200 |
27.31 |
873.81 |
0 |
1B |
03 |
-4/3 |
-4/3 |
±2 |
03 |
69 |
FF |
0/0.3 |
±2 |
2400 |
13.65 |
436.91 |
0 |
0D |
6B |
-6/3 |
-6/3 |
±4 |
01 |
B4 |
FF |
0/0.3 |
±2 |
4800 |
6.83 |
218.45 |
0 |
06 |
6F |
-9/11 |
-9/11 |
±7 |
0 |
DA |
55 |
0/0.4 |
±2 |
9600 |
3.41 |
109.23 |
0 |
03 |
4A |
-21/12 |
-21/12 |
±15 |
0 |
6D |
03 |
-0.4/1 |
±2 |
19200 |
|
54.61 |
|
|
|
|
|
|
0 |
36 |
6B |
-0.2/2 |
±2 |
38400 |
|
27.31 |
|
|
|
|
|
|
0 |
1B |
03 |
-4/3 |
±2 |
76800 |
|
13.65 |
|
|
|
|
|
|
0 |
0D |
6B |
-6/3 |
±4 |
115200 |
|
9.1 |
|
|
|
|
|
|
0 |
09 |
08 |
-5/7 |
±7 |
13.2.7 Прерывания USART
USART имеет один вектор прерывания для передачи и один вектор прерывания для приема.
Функционирование прерывания USART при передаче
Флаг прерывания UTXIFGx устанавливается передатчиком для индикации готовности UxTXBUF к приему другого символа. Запрос прерывания генерируется, если установлены флаги UTXIEx и GIE. UTXIFGx автоматически сбрасывается, если запрос прерывания обслужен или если символ записан в UxTXBUF.
UTXIFGx устанавливается после PUC или когда SWRST=1. UTXIEx сбрасывается после PUC или когда SWRST=1. Это показано на рис.13-10.
Рис.13-10. Прерывание при передаче
Функционирование прерывания USART при приеме
Флаг прерывания URXIFGx устанавливается каждый раз при приеме символа и его загрузки в UxRXBUF. Запрос прерывания генерируется, если также установлены флаги URXIEx и GIE. URXIFGx и URXIEx сбрасываются сигналом системного сброса PUC или когда SWRST=1. URXIFGx сбрасывается автоматически, если запрос прерывания обработан (когда URXSE=0) или когда прочитан UxRXBUF. Это показано на рис.13-11.
Рис.13-11. Прерывание при приеме
URXEIE используется для разрешения или запрещения установки URXIFGx от ошибочных символов. В многопроцессорном адресном режиме URXWIE используется для автоматического обнаружения правильных символов адреса и отклонения нежелательных символов данных.
Два типа символов не устанавливают URXIFGx:
- Ошибочные символы при URXEIE=0
- Символы, не являющиеся адресом при URXWIE=1
Когда URXEIE=1, состояние разрыва установит бит BRK и флаг URXIFGx.
Функционирование механизма обнаружения стартового фронта при приеме
Бит URXSE включает возможность обнаружения стартового фронта при приеме. Рекомендуется использовать возможность обнаружения стартового фронта при приеме, когда источником для BRCLK является DCO, который выключен из-за действующего режима пониженного энергопотребления. Ультрабыстрое включение DCO позволяет выполнить прием символа после обнаружения стартового фронта.
Когда URXSE, URXIEx и GIE установлены и на URXDx появился стартовый фронт, будет установлен внутренний сигнал URXS. После установки URXS будет сгенерирован запрос на прерывание при приеме, но URXIFGx не установится. Программное обеспечение пользователя в процедуре обработки прерывания приема может проверить URXIFGx для определения источника прерывания. Если URXIFGx=0, обнаружен стартовый фронт, а когда URXIFGx=1, был принят правильный символ (или разрыв).
Если процедура обработки прерывания (ISR) обнаружила, что запрос прерывания поступил от стартового фронта, пользовательское программное обеспечение переключает URXSE и должно включить источник BRCLK, вернувшись из ISR в активный режим или в режим пониженного энергопотребления, в котором источник активен. Если возврат из ISR произошел в режим пониженного энергопотребления, в котором источник BRCLK неактивен, символ не будет принят. Переключение URXSE очищает сигнал URXS и вновь активирует возможность обнаружения стартового фронта для последующих символов. См. раздел «Системный сброс, прерывания и режимы работы» для получения информации о входе и выходе из режимов пониженного энергопотребления.
Теперь активный BRCLK позволяет USART принять остаток символа. После приема полного символа и перемещения его в UxRXBUF устанавливается URXIFGx и снова запрашивается обработка прерывания. На входе ISR установка URXIFGx=1 показывает, что символ был получен. Флаг URXIFGx очищается, когда программное обеспечение пользователя читает UxRXBUF.
; Обработчик прерывания для условия старта фрэйма
; и приема символа. BRCLK=DCO.
U0RX_Int BIT.B #URXIFG0,&IFG2 ; Проверка URXIFGx для определения
JNE ST_COND ; старт или символ ?
MOV.B &UxRXBUF,dst ; Чтение буфера
;
RETI ;
ST_COND BIC.B #URXSE,&U0TCTL ; Очистка сигнала URXS
BIS.B #URXSE,&U0TCTL ; Повторное разрешение определения фронта
BIC #SCG0+SCG1,0(SP) ; Включение BRCLK = DCO
RETI ;
Примечание: Определение разрыва при остановленном тактировании UART
Когда используется возможность определения стартового фронта при приеме символа, состояние разрыва не может быть выявлено, если источник BRCLK выключен. |
Условия определения стартового фронта при приеме
Когда URXSE=1, система подавления импульсных помех предотвращает случайный запуск USART. Любой сигнал низкого уровня на URXDx короче времени t? (около 300 нС) будет проигнорирован USART и запрос прерывания не будет сгенерирован, как показано на рис.13-12. См. руководство по применению конкретного устройства для выяснения точных параметров.
Рис.13-12. Подавление импульсной помехи – прием в USART не начинается
Когда импульсная помеха дольше t? или на URXDx появился правильный стартовый бит, USART начинает операцию приема по мажоритарному принципу, как показано на рис.13-13. Если стартовый бит мажоритарно не обнаружен, USART останавливает прием символа.
Если прием символа остановлен, активность BRCLK не требуется. Период простоя дольше продолжительности приема символа может использоваться программным обеспечением для индикации, что символ не был принят в ожидаемое время и программа может отключить BRCLK.
Рис.13-13. Подавление импульсной помехи, USART активен
|