Дослідження і конфігурація послідовного периферійного інтерфейсу - SPI мікроконтролера ATmega128. Дослідження і конфігурація керованого синхронно-асинхронного послідовного приймача-передавача мікроконтролера ATmega128, страница 4

біта

Ім'я

Призначення

7

RXCIE0

Дозвіл на переривання після завершення приймання

6

TXCIE0

Дозвіл на переривання після завершення передачі

5

UDRIE0

Дозвіл на переривання після звільнення регістра даних

4

RXEN0

Дозвіл роботи приймача

3

TXEN0

Дозвіл роботи передавача

2

UCSZ02

Формат даних

1

RXB80

Значення 8-ого розряду прийнятих даних

0

TXB80

8-ий розряд переданих даних

Розряд 6 - ТXCIE0. Дозвіл переривання після завершення передачі.  Записування до біта TXCIE0 логічної 1 дозволяє переривання згідно прапорцю TXC0. Переривання після завершення передачі УСАПП0 генерується, якщо TXCIE0=1, прапорець загального дозволу переривань I=1 (у регістрі SREG), а також установлений біт TXC0 у регістрі UCSR0A.

Розряд 5 - UDRIE0. Дозвіл переривання після звільнення регістра даних. Установлення даного прапорця дозволяє переривання згідно прапорцю UDRE0. Переривання після звільнення регістра даних генерується, якщо біт UDRIE0=1, прапорець загального дозволу переривань I=1 (у регістрі SREG) і встановлений біт UDRE0 у регістрі UCSR0A.

Розряд 4 - RXEN0. Дозвіл роботи приймача. Записування до біт RXEN0 логічної 1 призводить до дозволу роботи приймача УСАПП0. При цьому, приймач формує відключаючий сигнал, що дозволяє альтернативну функцію виводу Rх0. Відключення приймача призводить до скидання приймалього буфера, втрачаючи при цьому значення прапорців FE0, DOR0 й UPE0.

Розряд 3 - TXEN0. Дозвіл роботи передавача. Записування до біт TXEN0 логічної 1 дозволяє роботу передавача УСАПП0. Після цього передавач генерує відключаючий сигнал, що активізує альтернативну функцію виводу Tx0. Відключення передавача набуде чинності тільки після завершення генерації посилки, тобто коли звільняться і зсувний регістр і буфер передавача.

Розряд 2 - UCSZ02. Формат даних. Біт UCSZ02 разом з бітами UCSZ01:0 у регістрі UCSR0C задають кількість бітів даних у посилці, як для приймача, так і для передавача.

Розряд 1 - RXB80. Значення 8-ого розряду прийнятих даних. Містить значення 9-го біта прийнятої посилки з 9-бітним форматом. Даний біт необхідно зчитати перш, ніж будуть зчитані молодші 8 біт з регістра UDR0.

Розряд 0 - TXB80.  Значення 8-ого розряду переданих даних. Містить значення 9-ого біта даних для передачі посилки з 9-бітним форматом. Даний біт необхідно записати перед тим, як будуть записані молодші розряди даних в UDR0.

У таблиці 59 представлене призначення бітів регістра С керування й статусу UCSR0С.

Таблиця 59 - Призначення бітів регістра С керування й статусу UCSR0С

біта

Ім'я

Призначення

7

Зарезервований біт

6

UMSEL0

Вибір режиму синхронізації

5

UPM01

Режим паритету біт 1

4

UPM00

Режим паритету біт 0

3

USBS0

Вибір кількості стоп-бітів

2

UCSZ01

Формат даних біт 1

1

UCSZ00

Формат даних біт 0

0

UCPOL0

Полярність синхронізації

Розряд 7 - Зарезервований для майбутнього використання.

Розряд 6 - Біт UMSEL0. Вибір режиму синхронізації. Дозволяє перемикатися між синхронним й асинхронним режимами послідовного зв'язку (таблиця 60).

Таблиця 60 - Результат дії біта UMSEL0

UMSEL0  

Режим

0

Асинхронний зв'язок

1

Синхронний зв'язок

Розряди 5, 4 - UPM01:0. Режими паритету. Дозволяють і встановлюють тип генеруючого й контрольованого паритету. Після дозволу паритету передавач автоматично генерує й передає біт паритету в кожній посилці. Приймач генерує біт паритету для прийнятих даних і порівнює його зі значенням прийнятого в цій посилці біта паритету, а після результату порівняння встановлює прапорець помилки паритету UPE0 у регістрі UCSR0A (таблиця 61).

Таблиця 61 - Результат дії біт UPM01:0

UPM01 

UPM00

Режим паритету

0

0

Відключений

0

1

Зарезервовано

1

0

Включено, контроль по парності

1

1

Включено, контроль по непарності

Біт паритету обчислюється шляхом виконання логічної операції  виключаючого АБО над всіма бітами даних. Якщо використовується непарність, то результат цієї операції інвертується.

Розряд 3 - USBS0. Вибір числа стоп-біт. Визначає скільки стопових бітів вставляє передавач під час генерації посилки (таблиця 62). Приймач ігнорує це настроювання.

Таблиця 62 - Результат дії біта USBS0

USBS0  

Кількість Стоп-біт

0

1 біт

1

2 біти

Розряди 2, 1 - UCSZ01:0.  Формат даних. Разом з UCSZ02 у регістрі UCSR0B задають кількість біт даних у посилці, як для приймача, так і для передавача (таблиця 63).

Таблиця 63 - Результат дії бітів UCSZ02:0

UCSZ02 

UCSZ01 

UCSZ00 

Формат посилки

0

0

0

5 біт

0

0

1

6 біт

0

1

0

7 біт

0

1

1

8 біт

1

0

0

Резерв

1

0

1

Резерв

1

1

0

Резерв

1

1

1

9 біт

Послідовна посилка складається з бітів даних, бітів синхронізації (старт і стоп-біти), а також опціонального біта паритету для пошуку помилок. УСАПП підтримує всі 30 комбінацій наступних форматів посилань:

·  1 старт-біт

·  5, 6, 7, 8 або 9 бітів даних

·  без паритету, з бітом парності, з бітом непарності

·  1 або 2 стоп-біти.

Посилка починається зі старт-біта, а за ним слідує передача бітів даних, починаючи із самого молодшого розряду. Потім слідує передача інших бітів даних (макс. число біт даних 9), що закінчується передачею старшого розряду даних. Якщо дозволено функцію контролю паритету, то відразу після біт даних передається біт паритету, а потім стоп-біти. Після завершення передачі посилки є можливість або передавати наступну посилку або перевести лінію зв'язку в стан очікування (високий рівень).