Информация & документация |
10.0 АДРЕСУЕМЫЙ СИНХРОННЫЙ/АСИНХРОННЫЙ ПРИЕМОПЕРЕДАТЧИК (USART)
Модуль универсального синхронного/асинхронного приемопередатчика (USART) - это один из двух последовательных модулей ввода/вывода. (USART еще известен как Serial Communication Interface или SCI). USART может быть настроен как полнодуплексная асинхронная система, которую можно соединять с периферийными устройствами, такими как CRT-терминалы и персональные компьютеры. Также он может быть настроен как полудуплексная синхронная система, которую можно соединять с микросхемами АЦП или ЦАП, последовательной памятью EEPROM, и т.д.
USART может быть настроен на следующие режимы:
- Асинхронный (полнодуплесный)
- Синхронный - Ведущий (полудуплексный)
- Синхронный - Ведомый (полудуплексный)
Бит SPEN (RCSTA<7>), и биты TRISC<7:6>, должны быть правильно настроены, для включения выводов RC6/TX/CK и RC7/RX/DT как Универсальный Синхронный/Асинхронный Приемопередатчик.
Модуль USART поддерживает мультипроцессорную связь, используя механизм детектирования 9-битного адреса.
TXSTA: РЕГИСТР СОСТОЯНИЯ И КОНТРОЛЯ ПЕРЕДАЧИ (АДРЕС 98h) |
R/W-0 |
R/W-0 |
R/W-0 |
R/W-0 |
U-0 |
R/W-0 |
R-1 |
R/W-0 |
CSRC |
TX9 |
TXEN |
SYNC |
- |
BRGH |
TRMT |
TX9D |
бит 7: CSRC: бит выбора источника тактирования
    Асинхронный режим
        Неопределен
    Синхронный режим
        1 = Режим ведущего (тактирование от BRG)
        0 = Режим ведомого (тактирование от внешнего источника)
бит 6: TX9: бит разрешения 9-битной передачи
        1 = Выбрать 9-битную передачу
        0 = Выбрать 8-битную передачу
бит 5: TXEN: бит разрешения передачи
        1 = Передача разрешена
        0 = Передача запрещена
бит 4: SYNC: бит выбора режима работы USART
        1 = Синхронный режим
        0 = Асинхронный режим
бит 3: Незадействован: Читается как '0'
бит 2: BRGH: Выбор диапазона скоростей
    Асинхронный режим
        1 = Диапазон высоких скоростей
        0 = Диапазон низких скоростей
    Синхронный режим
        В этом режиме не используется
бит 1: TRMT: бит состояния регистра сдвига передатчика.
        1 = TSR пуст
        0 = TSR заполнен
бит 0: TX9D: Девятый бит передаваемых данных. Можно использовать как паритет.
RCSTA: РЕГИСТР СОСТОЯНИЯ И КОНТРОЛЯ ПРИЕМА (АДРЕС 18h) |
R/W-0 |
R/W-0 |
R/W-0 |
R/W-0 |
R/W-0 |
R-0 |
R-0 |
R-x |
SPEN |
RX9 |
SREN |
CREN |
ADDEN |
FERR |
OERR |
RX9D |
бит 7: SPEN: бит разрешения последовательного порта
        1 = Последовательный порт разрешен
        0 = Последовательный порт запрещен
бит 6: RX9: бит разрешения 9-битного приема
        1 = Выбор 9-битного приема
        0 = Выбор 8-битного приема
бит 5: SPEN: бит разрешения одного приема
    Асинхронный режим
        Не используется
    Синхронный режим - ведущий
        1 = Разрешить один прием
        0 = Запретить один прием
        Этот бит очищается после завершения приема
    Синхронный режим - ведомый
        В этом режиме не используется
бит 4: CREN: бит разрешения продолжающегося приема
    Асинхронный режим
        1 = Разрешить продолжающийся прием
        0 = Запретить продолжающийся прием
    Синхронный режим
        1 = Разрешить продолжающийся прием, пока CREN сброшен
        0 = Запретить продолжающийся прием
бит 3: ADDEN: бит разрешения детектирования адреса
    Асинхронный режим 9 бит (RX9=1)
        1 = Разрешить детектирование адреса
        0 = Запретить детектирование адреса, все байты принимаются, девятый бит можно использовать как паритет
бит 2: FERR: бит ошибки фреймования
        1 = Ошибка фреймования (обновляется чтением RCREG и приемом нормального байта
        0 = Не было ошибки
бит 1: OERR: Overrun Error bit
        1 = Overrun error (Can be cleared by clearing bit CREN)
        0 = No overrun error
бит 0: RX9D: 9-й бит принятых данных (может использоваться как бит паритета)
10.1 Генератор, задающий скорость обмена данными (BRG (Baud Rate Generator))
BRG поддерживает оба режима USART: синхронный и асинхронный. Он представляет из себя 8-битный генератор скорости передачи данных. Регистр SPBRG управляет периодом свободного запуска 8-битного таймера. В асинхронном режиме скорость передачи данных зависит дополнительно от бита BRGH (TXSTA<2>). В синхронном режиме бит BRGH игнорируется. Таблица 10-1 показывает формулу для вычисления скорости обмена данными для разных режимов USART.
Подставив в формулу из таблицы 10-1 значения необходимой скорости обмена и Fosc, вы можете вычислить ближайшее значение для регистра SPBRG. Из этого значения может быть вычислена погрешность скорости обмена.
ТАБЛИЦА 10-1 ФОРМУЛА ВЫЧИСЛЕНИЯ СКОРОСТИ ОБМЕНА