Микроконтролерът е управляващо устройство, което съдържа редица периферни устройства като RAM, ROM TIMERS, серийно предаване на данни и др., които са необходими за изпълнение на някои предварително определени задачи. В днешно време, усъвършенстван тип микроконтролери се използват в голямо разнообразие от приложения според възможностите и възможността им да изпълняват някои желани задачи и тези контролери включват 8051, AVR и PIC микроконтролер . В тази статия ще научим за усъвършенствания микроконтролер от семейство AVR и неговото програмиране .
AVR микроконтролер
AVR е вид управляващо устройство, произведено от Atmel Corporation през 1996 г. AVR не означава нищо, а само име. AVR микроконтролерите се състоят от архитектурата на Харвард и следователно устройството работи много бързо с намален брой инструкции на ниво машина (RISC). Микроконтролерите AVR се състоят от специални функции в сравнение с други микроконтролери, като например 6-сънен режим, вграден ADC, вътрешен осцилатор и серийна комуникация на данни и др. AVR микроконтролери се предлагат в различни конфигурации от 8-битова, 16-битова и 32-битова за извършване на различни операции.

AVR микроконтролер
USART Последователна комуникация на данни в AVR микроконтролер
USART означава универсален синхронен и асинхронен приемник и предавател. Това е последователна комуникация на два протокола. Този протокол се използва за предаване и получаване на данни бит по бит по отношение на тактовите импулси на един проводник. The AVR микроконтролер има два щифта: TXD и RXD, които са специално използвани за серийно предаване и получаване на данните. Всеки AVR микроконтролер се състои от протокол USART със собствени функции.

USART комуникация в AVR микроконтролер
Основните характеристики на AVR USART
- Протоколът USART поддържа пълен дуплекс протокол.
- Той генерира скорост на предаване с висока разделителна способност.
- Той поддържа предаване на битове за серийни данни от 5 до 9 и се състои от два стоп бита.
USART Конфигурация на ПИН
USART на AVR се състои от три щифта:
- RXD: ПИН на приемника USART (ATMega8 PIN 2 ATMega16 / 32 Pin 14)
- TXD: USART предавателен щифт (ATMega8 PIN 3 ATMega16 / 32 Pin 15)
- XCK: USART тактова честота (ATMega8 PIN 6 ATMega16 / 32 Pin 1)
Режими на работа
Микроконтролерът AVR на протокола USART работи в три режима, които са:
- Асинхронен нормален режим
- Асинхронен режим на двойна скорост
- Синхронен режим

Режими на работа
Асинхронен нормален режим
В този режим на комуникация данните се предават и получават бит по бит без тактови импулси от предварително зададената скорост на предаване, зададена от регистъра UBBR.
Асинхронен режим на двойна скорост
В този режим на комуникация данните, прехвърлени с двойна скорост на предаване, се задават от UBBR регистъра и задават U2X битове в UCSRA регистъра. Това е високоскоростен режим за синхронна комуникация за бързо предаване и получаване на данните. Тази система се използва там, където се изискват точни настройки на скоростта на предаване и системния часовник.
Синхронен режим
В тази система предаването и приемането на данните по отношение на тактовия импулс е зададено UMSEL = 1 в регистъра UCSRC.
USART конфигурация в AVR микроконтролер
USART може да бъде конфигуриран с помощта на пет регистри като три контролни регистри , един регистър за данни и регистър за избор на скорост на предаване, като UDR, UCSRA, UCSRB, UCSRC и UBRR.
7 стъпки за съставяне на програмата
Етап 1: Изчислете и задайте скоростта на предаване
Скоростта на предаване на USART / UART се определя от регистратора на UBRR. Този регистър се използва за генериране на предаване на данни със специфичната скорост. UBRR е 16-битов регистър. Тъй като AVR е 8-битов микроконтролер и всеки негов размер на регистъра е 8-битов. Следователно тук 16-битовият регистър UBRR е съставен от два 8-битови регистъра като UBRR (H), UBRR (L).
Формулата на скоростта на предаване е
BAUD = тъмно / (16 * (UBBR + 1))
Формулата на регистъра UBRR е
UBRR = тъмно / (16 * (BAUD-1))
Честотата на AVR микроконтролера е 16MHz = 16000000 Нека приемем скоростта на предаване като 19200Bps, след това
UBRR = 16000000 / (16 * (19200-1))
UBRR = 16000000 / (16 * (19200-1))
UBRR = 51.099
В крайна сметка намерете скоростта на предаване
BAUD = 16000000 / (16 * (51 + 1))
UBRR = 19230bps
Стъпка 2: Избор на режим данни
Режимът на предаване на данни, начален бит и стоп бит и размерът на символите се задават от контрола и регистъра на състоянието UCSRC.

Избор на режим данни
Стъпка 3: Избор на режим на предаване на данни
Синхронният и асинхронен режим се избира от бита UMSEL на контролния регистър на състоянието. Ако дадем UMSEL = 0, тогава USART работи в асинхронен режим, в противен случай работи в синхронен режим.

Избор на режим на предаване на данни
Стъпка 4: Старт бит и стоп бит
Битовете за начален бит и стоп са начин за серийно изпращане и получаване на данните. Обикновено всяка известност на данните се състои от един бит на статията и един бит за спиране, но микроконтролерът AVR има един стартов бит и два стоп бита за обработка на данните. Допълнителният стоп бит може да бъде полезен за добавяне на малко допълнително време за обработка на получаване. Това е особено полезно за високи скорости на трансфер на данни, докато скоростта на трансфер на данни е много висока, така че не получаваме правилни данни. По този начин можем да увеличим времето за обработка, като използваме два стоп бита, за да получим правилните данни.

Старт бит и стоп бит
Броят на стоп битовете се избира от USBS бита на UCSRC - регистъра на контролния статус. USBS = 0 за един стоп бит и USBS = 1 за два стоп бита.
Стъпка 5: Задайте размера на символа
Както в случая с основни микроконтролери изпращане и получаване на байт данни (8-битови) в даден момент, независимо дали в AVR микроконтролер, ние можем да изберем формат на рамка за данни във всеки кадър от UCSZ бита на UCSRC регистъра.

Формат на рамката за данни
Стъпка 6: Съхранявайте получените данни
Микроконтролерът AVR се състои от буферен регистър на UDR за предаване и получаване на данни. UDR е 16-битов буферен регистър, в който 8 бита се използват за получаване (RXB) на данните, а други битове се използват за предаване на данните (TXB). Предаването на буферния регистър на данни ще бъде дестинацията до UDR регистъра за писмените данни за неговото местоположение. Регистърът за получаване на буфер за данни ще връща съдържанието на UDR регистъра.
Стъпка 7: Активиране на предавател и приемник
Предаваните и получените данни ще бъдат разрешени от щифтовете RXC и TXC на микроконтролера, които са зададени от UCSRA регистъра на микроконтролера. Този бит на флага, зададен от микроконтролера за данните, се завършва чрез получаване и предаване (TXC = RXC = 1).
Удвоете скоростта на предаване
Можем да удвоим скоростта на трансфер на USART комуникацията на AVR микроконтролер от 16 бита до 8 бита ефективно от U2X - бит в регистъра UCSRA. Този бит влияе само върху асинхронната работа. Ако можем да зададем този бит (U2X = 1), той ще намали скоростта на предаване от 16-бита на 8-бита ефективно удвоявайки скоростта на трансфер за синхронна комуникация.
Това е усъвършенствана функция на микроконтролера AVR за бърза обработка на данните.
Програма USART
Всеки микроконтролер е предварително дефиниран със специфична IDE и въз основа на тази IDE, микроконтролерите са програмирани с вграден C или асемблерен език. Програмирането на микроконтролера AVR е разработено от студиото AVR. Освен това, ако искате допълнителна информация за стъпки за изграждане на проекти, базирани на микроконтролер , или подробна информация по тази тема, можете да се свържете с нас, като коментирате по-долу.