Використання інтерфейсу usart мікроконтролерів avr - мікроконтролери та технології

Використання інтерфейсу usart мікроконтролерів avr - мікроконтролери та технології
Мікроконтролери AVR мають у своєму складі модуль полнодуплексного універсального асинхронного прийомопередавача UART (в сімействі Mega універсальний синхронний / асинхронний приймач USART). Через нього здійснюється прийом і передача інформації, представленої послідовним кодом, тому модуль UART часто називають також послідовним портом. За допомогою цього модуля мікроконтролер може обмінюватися даними з різними зовнішніми пристроями.

Потік даних, що передаються по каналу UART. являє собою сукупність посилок або кадрів. Кожен кадр містить стартовий біт, вісім або дев'ять бітів даних і стоповий біт. Стартовий біт має рівень логічного 0, стоповий - рівень логічної 1. Швидкість передачі даних може варіюватися в широких межах, причому високі швидкості передачі можуть бути досягнуті навіть при відносно низькій тактовій частоті мікроконтролера.

Обмін даними по послідовному інтерфейсу

Висновки мікроконтролера, використовувані модулем UART. є лініями порту PD. В якості входу приймача (RXD) використовують висновок РD0, а в якості виходу передавача (TXD) - висновок PD1.

Прийняті і передані дані (вісім розрядів) зберігаються в регістрі UDR. Фізично регістр UDR складається з двох окремих регістрів, один з яких використовується для передачі даних, інший - для прийому. При читанні регістра UDR виконується звернення до регістру приймача, під час запису - до регістру передавача.

Регістри управління модулями USART на прикладі мікроконтролера ATmega8

Для управління модулями USART використовуються три регістру: UCSRA. UCSRB і UCSRC.

Опис розрядів регістра UCSRA.

Полярність тактового сигналу. Значення цього розряду визначає момент видачі та зчитування даних на висновках модуля. Розряд використовується тільки при роботі в синхронному режимі. При роботі в асинхронному режимі он повинен бути скинутий в «0»

Швидкість прийому / передачі USART

В асинхронному режимі, а також у синхронному режимі при роботі в якості ведучого, швидкість прийому і передачі даних задається контролером швидкості передачі, що функціонує як дільник системного тактового сигналу з програмованим коефіцієнтом ділення. Коефіцієнт визначається вмістом регістра контролера UBRR. У блок приймача сформований сигнал надходить відразу, а в блок передавача - через додатковий дільник, коефіцієнт ділення якого (2, 8 або 16) залежить від режиму роботи модуля USART / UART. Регістр UBRR є 12 розрядних і фізично розміщується в двох регістрах введення / виведення UBRRH і UBRRL.

При роботі в асинхронному режимі швидкість обміну визначається не тільки вмістом регістра UBRR. але і станом розряду U2X регістра UCSRA. Якщо цей розряд встановлений в «1», коефіцієнт ділення предделителя зменшується в два рази, а швидкість
обміну відповідно подвоюється. При роботі в синхронному режимі цей розряд повинен бути скинутий.

Швидкість обміну визначається наступними формулами, де

BAUD - швидкість передачі в бодах, fCK - тактова частота мікроконтролера, UBRR - вміст регістра контролера швидкості передачі (0 ... 4095):

асинхронний режим (звичайний, U2Xn = «0»)
BAUD = fCK / 16 (UBRR + 1);

асинхронний режим (прискорений, U2Xn = «1»)
BAUD = fCK / 8 (UBRR + 1);

синхронний режим ведучого
BAUD = fCK / 2 (UBRR + 1).

Нижче представлений приклад тестової програми для вивчення протоколу USART, де мікроконтролер Atmega8 обмінюється інформацією з терміналом, для наочності до контролера підключений LCD 16X02 дисплей. При натисканні на кнопки 1-3 в терміналі висвічуються відповідні рядки, також якщо виводити в термінал символи "a" або "b", буде загорятися або гаснути світлодіод, підключений до порту PB0 контролера. Будь-які символи виводяться в термінал будуть також висвітлюватися на LCD дисплеї. Для тестування в "залозі", мікроконтролер підключається до комп'ютера через мікросхему перетворювача рівнів MAX232, для обміну даними використовується стандартна програма Hyper Terminal від Microsoft.

Використання інтерфейсу usart мікроконтролерів avr - мікроконтролери та технології

Архів для статті "Використання інтерфейсу USART мікроконтролерів AVR" HOT

Проект AVRStudio4 і Proteus

Використання інтерфейсу usart мікроконтролерів avr - мікроконтролери та технології

Пропоноване автоматичний зарядний пристрій (ЗУ) призначене для зарядки батареї акумуляторів номінальною напругою 12 В і ємністю 1. 10 А-ч, але при невеликій доробці його можна застосувати для зарядки акумуляторних батарей з іншими напругою і ємністю.

Схожі статті