9.1 UART в Петлевом Режиме (Loopback)
Установка бита LPBACK активизирует режим Loopback, в котором вывод UxTX является внутренне связанным со вводом UxRX. Когда микроконтроллер настроен для режима Loopback, вывод UxRX отсоединяется от внутренней логики UART. Однако, вывод UxTX все еще функционирует обычным образом.
Чтобы выбрать этот режим, сделайте следующее:
1. Настроить UART для нужного режима работы.
2. Разрешить передачу как определено в Допустить передаче как определено в5. Передатчик UART.
3. Установите LPBACK = 1 (UxMODE <6>), чтобы разрешить режим Loopback.
Режим Loopback зависит от битов UEN <1:0>, как показано в Таблице 1.
UEN<1:0> |
Функция выводов при LPBACK = 1 |
00 |
UxRX вывод соединён с UxTX; вывод UxTX работает обычным образом; вывод UxRX игнорируется; UxCTS/UxRTS неиспользуется |
01 |
Вывод UxRX соединён с UxTX; вывод UxTX работает обычным образом; UxRX игнорируется; UxRTS использует свои функции; UxCTS неиспользуется |
10 |
Вывод UxRX соединён с UxTX; вывод UxTX работает обычным образом; UxRX игнорируется; UxRTS использует свои функции; вывод UxCTS связывается с выводом UxRTS; а сам вывод UxCTS игнорируется |
11 |
Вывод UxRX соединён с UxTX; вывод UxTX работает обычным образом; UxRX игнорируется; BCLKx использует свои функции; UxCTS/UxRTS неиспользуются |
Примечание 1: бит LPBACK должен быть установлен в‘1’только после активизации и настройки других битов связанных с модулем UARTа.
17.9.2 Поддержка Auto-Baud
Чтобы разрешить микроконтроллеру определять baud rate полученных символов, бит ABAUD должен быть активизирован. UART начнет автоматическое последовательное измерения baud rates всякий раз, когда получен бит Start, в то время как определение baud rate активизировано (ABAUD = 1). Вычисляется среднее значение скорости. Как только бит ABAUD установлен, значение счетчика BRG будет очищено и будет искать бит Start, который в этом случае, определен как задний фронт (высокий-к-низкому), сопровождаемый передним фронтом (низким-к-высокому).
После бита Start, auto-baud ожидает получения символа ASCII “U” ("55h") чтобы правильно рассчитать надлежащую битовую скорость (bit-rate). Измерение проводится и по низкому и по высокому времени, чтобы минимизировать любые эффекты, вызванные асимметрией входящего сигнала. На 5-ом переднем фронте на выводе UxRX сохраняет накопленное значение счётчика BRG с значением периода в регистр UxBRG. Бит ABAUD автоматически очищается. Если пользователь приложение очищает бит ABAUD до завершения последовательности автоопределения скорости, то поведение модуля может привести к неожиданным результатам. На рисунке 14 приведена последовательность обнаружения Auto-Baud.
Рисунок 14. Автоматическое вычисление baud rate
Покудова происходит последовательная auto-baud, модуль UART находится в неактивном состоянии.
Прерывание UxRXIF устанавливается на 5-ом повышающем фронте UxRX, независимо от параметров настройки URXISEL <1:0>. FIFO приёмника не заполняется.
10. Работа UART в режиме DMA
На некоторых микроконтроллера dsPIC33F может быть использоваться режим DMA (прямой доступ к памяти), чтобы передавать данные между CPU и UARTом без помощи CPU. Смотрите даташиты на конкретные микроконтроллеры, чтобы определить есть ли в вашем микроконтроллере режим DMA.
Если канал DMA связан с получателем UARTа, UART формирует запрос DMA каждый раз когда есть символ, готовый быть перемещенным с UARTа в оперативную память. DMA переместит данные из регистра UxRXREG в оперативную память и сформирует прерывание CPU после определённого количества переданных данных. Точно так же, если канал DMA связан с передатчиком UARTа, UART будет формировать запрос DMA после каждой успешной передачи. После каждого запроса DMA, DMA передаёт новые данные в регистр UxTXREG и формирует прерывание CPU после определённого количества перемещённых данных. Так как каналы DMA однонаправлены, два канала DMA требуются если модуль UARTа используется и для приёма и для передачи. Каждый канал DMA должен быть инициализирован как показано в Таблице 2:
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.