Читайте также:
|
|
SPEN | RX9 | SREN | CREN | ADDEN | FERR | OERR | RX9D |
Бит 7 | Бит 0 |
SPEN: 1/0 - включение/выключение USART
RX9: 1/0 - выбор формата принимаемых данных 9/8 бит
SREN: 1 - разрешение одиночного приема только в синхронном режиме, аппаратный сброс по окончанию приема.
CREN: 1/0 - прием разрешен
ADDEN: 1/0 - разрешить/запретить детектирование адреса (при RX9=1)
FERR: 1/0 - флаг ошибки кадра
OERR: 1/0 - флаг ошибки переполнения внутреннего буфера
RX9D: 9-й бит принятых данных
Для конфигурации асинхронного порта в режим передатчика необходимо выполнить следующие операции:
• Установить необходимую скорость обмена путем записи соответствующего значения в регистр SPBRG и бита BRGH;
• Включить асинхронный порт сбросом бита SYNC (TXSTA<4>) и установкой бита SPEN (RCSTA<7>);
• Если планируется использовать прерывание для управления передачей, то установить бит TXIE (PIE1<4>);
• Установить формат посылки (8 или 9 бит), путем установки или сброса бита ТХ9 (TXSTA<6>);
• Разрешить передачу установкой бита TXEN (TXSTA<6>);
• В случае 9-битной посылки записать 9-й бит в бит TX9D (TXSTA<0>);
• Записать передаваемые данные в регистр TXREG (запуск передачи).
Конфигурация асинхронного порта для приема информации выполняется аналогично.
Генератор скорости обмена обеспечивает обмен по асинхронному порту с различной скоростью, которая определяется значением регистра SPBRG и битом BRGH. Приближенно скорость обмена можно оценить по формулам:
• BAUD=Fosc/64/(X+1), для BRGH = 0
• BAUD=Fosc/16/(X+1), для BRGH = 1,
где X – содержимое регистра SPBRG, FOSC – тактовая частота микроконтроллера.
Для кварцевого резонатора с резонансной частотой 4МГц, возможные типовые скорости передачи в зависимости от значения регистра SPBRG, при BRGH = 1 приведены в таблице.
Ошибка рассчитывалась по формуле: Error=(BAUDP- BAUDD)/ BAUDD, где BAUDP – рассчитанная скорость обмена, BAUDD – желаемая скорость обмена.
Допустим при скорости обмена 9600бод, (SPBRG = 25) возможная ошибка составит 0.16%.
Скорость обмена, кбод | Ошибка, % | Значение регистра SPBRG (десятичное) |
1.202 | +0,17 | |
2.403 | +0,13 | |
9.615 | +0,16 | |
19.231 | +0,16 |
Настройка 9-разрядного режима с детектированием адреса:
• Установить скорость передачи с помощью регистра SPBRG и бита BRGH.
• Выбрать асинхронный режим SYNC->0 и SPEN->1
• Разрешить прерывание RCIE ->1
• Включить 9-битный режим RX9->1
• Разрешить детектирование адреса ADDEN->1
• Разрешить прием CREN->1
• Ожидать установку флага RCIF, если RCIE=1
• Считать байт из регистра RCREG для проверки адреса
• При переполнении CREN->0
• Если принятый адрес соответствует нужному адресу, то ADDEN->0 и RCIF->0 для начала приема данных.
Синхронный режим USART.
• Полудуплекс: прием и передача осуществляются раздельно.
• Включается установкой бита SYNC.
• На выводе RC6/TX/SC – синхроимпульсы, на выводе RC7/RX/DT - данные.
• Ведущий/ведомый режим: USART – источник/приемник импульсов SC.
• Обмен - младшими битами вперед.
• Переключение ведущий/ведомый битом CSRC в регистре TXREG.
• Скорость обмена=Fosc/4/(X+1), где X – значение регистра SPBRG.
• Передача в ведущем режиме начинается с записи в регистр TXREG.
ВЕДОМЫЙ ПАРАЛЛЕЛЬНЫЙ ПОРТ (PSP)
Дата добавления: 2015-11-14; просмотров: 39 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Режим I2C последовательного порта MSSP. | | | Регистр TRISE |