Fluxul de date transmise pe canalul UART. este o colecție de colete sau cadre. Fiecare cadru conține un bit de pornire, opt sau nouă biți de date și un bit de stop. Bitul de pornire are un nivel logic de 0, bitul de oprire este unul logic. Rata de transfer a datelor poate varia foarte mult, vitezele mari de transmisie putând fi atinse chiar și la o viteză de ceas a microcontrolerului relativ scăzută.
Interfața de date pentru interfața serial
Iesiri microcontroler utilizate de modulul UART. sunt liniile portului PD. Intrarea receptorului (RXD) utilizează pinul PDO, iar ieșirea emițătorului (TXD) este pinul PD1.
Datele primite și transmise (opt biți) sunt stocate în registrul UDR. Din punct de vedere fizic, UDR este alcătuit din două registre separate, dintre care unul este utilizat pentru transmiterea datelor, iar celălalt pentru recepție. Când citiți registrul UDR, este accesat registrul receptorului, în timp ce scrieți în registrul transmițătorului.
Registre pentru controlul modulelor USART utilizând exemplul microcontrolerului ATmega8
Trei registre sunt utilizate pentru a gestiona modulele USART: UCSRA. UCSRB și UCSRC.
Descrierea biților din registrul UCSRA.
Polaritatea semnalului de ceas. Valoarea acestui bit determină timpul în care modulul iese și citește date. Descărcarea este utilizată numai atunci când funcționează în modul sincron. Când lucrați în modul asincron, acesta trebuie resetat la "0"
Viteza de primire / transmitere USART
În modul asincron și modul sincron atunci când funcționează ca un maestru, primind și rata de transmitere a datelor este specificată funcționând ca separator de ceas sistem cu raport de divizare programabil controller. Coeficientul este determinat de conținutul registrului operatorului UBRR. Unitatea receptor recepționează semnalul generat dintr-o dată, dar într-o unitate transmițător - prin intermediul unui divizor opțional al cărui factor (2, 8 sau 16) divizare depinde de modulul de modul USART / UART. bit registru UBRR 12 este situat fizic în două registre de I / O și UBRRH UBRRL.
Când lucrați în modul asincron, rata de schimb este determinată nu numai de conținutul registrului UBRR. dar și starea bitului U2X al registrului UCSRA. Dacă acest bit este setat la "1", factorul de divizare al prescalerului este înjumătățit și viteza
schimb, respectiv, este dublat. Când funcționați în modul sincron, acest bit trebuie resetat.
Cursul de schimb este determinat de următoarele formule, unde
BAUD - viteza baud, fCK - viteza ceasului microcontrolerului, UBRR - conținutul registrului regulatorului de turație (0 ... 4095):
modul asincron (normal, U2Xn = "0")
BAUD = fCK / 16 (UBRR + 1);
modul asincron (accelerat, U2Xn = "1")
BAUD = fCK / 8 (UBRR + 1);
sincron master
BAUD = fCK / 2 (UBRR + 1).
Mai jos este un exemplu de program de testare pentru studierea protocolului USART, unde microcontrolerul Atmega8 comunică cu terminalul, pentru claritate afișajul LCD 16X02 este conectat la controler. Când butoanele 1-3 sunt apăsate, liniile corespunzătoare sunt afișate în terminal, de asemenea, dacă simbolurile "a" sau "b" sunt trimise către terminal, LED-ul conectat la portul PB0 al controlerului se va aprinde sau se va stinge. Orice caractere afișate în terminal vor fi afișate și pe ecranul LCD. Pentru testarea hardware-ului, microcontrolerul este conectat la computer prin cipul de conversie de nivel MAX232, programul standard Hyper Terminal de la Microsoft este utilizat pentru schimbul de date.
Arhiva pentru articolul "Utilizarea interfeței USART a microcontrolerelor AVR" HOT
Proiectul AVRStudio4 și Proteus
Încărcătorul automat propus (încărcător) este proiectat pentru baterii de încărcare a bateriei tensiune de 12 V și o capacitate de 1. 10 Ah evaluat, dar puțin rafinament poate fi aplicată pentru încărcarea bateriilor cu diferite tensiune și capacitate.