Регистр RCSTA

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)


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: