Microcontroler AVR (Atmel 8) Comunicare în serie Configurare USART

Încercați Instrumentul Nostru Pentru Eliminarea Problemelor





Microcontrolerul este un dispozitiv de control care conține un număr de periferice precum RAM, ROM TIMERS, comunicare de date seriale , etc., care sunt necesare pentru îndeplinirea unor sarcini predefinite. In zilele de azi, tip avansat de microcontrolere sunt utilizate într-o mare varietate de aplicații, în funcție de capacitatea și fezabilitatea lor de a efectua unele sarcini dorite și aceste controlere includ 8051, microcontroler AVR și PIC . În acest articol, vom afla despre microcontrolerul avansat al familiei AVR și despre programarea acestuia .

Microcontroler AVR

AVR este un tip de dispozitiv de control fabricat de Atmel Corporation în 1996. AVR nu înseamnă nimic, este doar un nume. AVR microcontrolerele constau din arhitectura Harvard și, prin urmare, dispozitivul funcționează foarte repede cu un număr redus de instrucțiuni la nivel de mașină (RISC). Microcontrolerele AVR constau din caracteristici speciale în comparație cu alte microcontrolere, cum ar fi modurile cu 6 repausuri, ADC încorporat, oscilator intern și comunicații de date seriale etc. Microcontrolere AVR sunt disponibile în diferite configurații de 8 biți, 16 biți și 32 biți pentru a efectua diverse operații.




Microcontroler AVR

Microcontroler AVR

Comunicare de date seriale USART în microcontroler AVR

USART reprezintă receptorul și emițătorul sincron și asincron universal. Este o comunicare serială a două protocoale. Acest protocol este utilizat pentru transmiterea și recepționarea datelor bit cu bit în ceea ce privește impulsurile de ceas pe un singur fir. Microcontroler AVR are doi pini: TXD și RXD, care sunt folosiți special pentru transmiterea și primirea datelor în serie. Orice microcontroler AVR este format din protocolul USART cu propriile sale caracteristici.



Comunicare USART în microcontroler AVR

Comunicare USART în microcontroler AVR

Principalele caracteristici ale AVR USART

  • Protocolul USART acceptă protocolul full-duplex.
  • Generează o rată de baud de înaltă rezoluție.
  • Acesta acceptă transmiterea de biți de date seriale de la 5 la 9 și constă din doi biți de oprire.

Configurare PIN USART

USART al AVR este format din trei pini:


  • RXD: pin receptor USART (ATMega8 PIN 2 ATMega16 / 32 Pin 14)
  • TXD: pin transmițător USART (ATMega8 PIN 3 ATMega16 / 32 Pin 15)
  • XCK: PIN de ceas USART (ATMega8 PIN 6 ATMega16 / 32 Pin 1)

Moduri de funcționare

Microcontrolerul AVR al protocolului USART funcționează în trei moduri care sunt:

  • Mod normal asincron
  • Mod asincron cu viteză dublă
  • Mod sincron
Moduri de funcționare

Moduri de funcționare

Mod normal asincron

În acest mod de comunicare, datele sunt transmise și recepționate bit cu bit fără impulsuri de ceas de rata predefinită de baud stabilită de registrul UBBR.

Mod asincron cu viteză dublă

În acest mod de comunicare, datele transferate la viteza dublă a baudului sunt setate de registrul UBBR și setează biții U2X în registrul UCSRA. Acesta este un mod de viteză mare pentru comunicarea sincronă pentru transmiterea și primirea rapidă a datelor. Acest sistem este utilizat acolo unde sunt necesare setări precise ale ratei de transmisie și ceasul sistemului.

Mod sincron

În acest sistem, transmiterea și primirea datelor cu privire la impulsul de ceas este setată UMSEL = 1 în registrul UCSRC.

Configurare USART În microcontrolerul AVR

USART poate fi configurat folosind cinci registre, cum ar fi trei registre de control , un registru de date și un registru de selectare a ratei de transmisie, cum ar fi UDR, UCSRA, UCSRB, UCSRC și UBRR.

7 pași pentru compunerea programului

Pasul 1: Calculați și setați rata de transmisie

Rata de transmisie a USART / UART este stabilită de registratorul UBRR. Acest registru este utilizat pentru a genera transmisia de date la viteza specifică. UBRR este un registru pe 16 biți. Deoarece AVR este un microcontroler pe 8 biți și orice dimensiune a registrului este de 8 biți. Prin urmare, aici, registrul UBRR pe 16 biți este compus din două registre pe 8 biți, cum ar fi UBRR (H), UBRR (L).

Formula ratei în baud este

BAUD = Dark / (16 * (UBBR + 1))

Formula registrului UBRR este

UBRR = Dark / (16 * (BAUD-1))

Frecvența microcontrolerului AVR este de 16 MHz = 16000000 Să presupunem rata de transmisie ca 19200Bps, apoi

UBRR = 16000000 / (16 * (19200-1))

UBRR = 16000000 / (16 * (19200-1))

UBRR = 51.099

În cele din urmă, găsiți rata baud

BAUD = 16000000 / (16 * (51 + 1))
UBRR = 19230bps

Pasul 2: Selectarea modului de date

Modul de transmitere a datelor, bitul de start și bitul de oprire și dimensiunea caracterelor sunt stabilite de registrul de control și stare UCSRC.

Selectarea modului de date

Selectarea modului de date

Pasul 3: Selectarea modului de transmitere a datelor

Modul sincron și asincron este selectat de bitul UMSEL al registrului de stare de control. Dacă dăm UMSEL = 0, atunci USART funcționează în mod asincron, altfel funcționează în mod sincron.

Selectarea modului de transmitere a datelor

Selectarea modului de transmitere a datelor

Pasul 4: Start Bit și Stop Bit

Bitul de start și bitul de oprire sunt o modalitate de trimitere și primire a datelor în serie. În general, orice faimă a datelor constă dintr-un bit stat și un bit de oprire, dar microcontrolerul AVR are un bit de pornire și doi biți de oprire pentru procesarea datelor. Bitul de oprire suplimentar poate fi util pentru adăugarea unui timp suplimentar de procesare a primirii. Este util în special pentru rate de transfer de date ridicate, în timp ce viteza de transfer de date este foarte mare, deci nu obținem date adecvate. Astfel, putem crește timpul de procesare folosind doi biți de oprire pentru a obține datele corecte.

Start Bit și Stop Bit

Start Bit și Stop Bit

Numărul de biți de oprire este selectat de bitul USBS al UCSRC - registrul stării de control. USBS = 0, pentru un bit de oprire și USBS = 1, pentru doi biți de oprire.

Pasul 5: Setați dimensiunea caracterului

Ca și în cazul microcontrolere de bază trimiterea și primirea octetului de date (8 biți) la un moment dat, fie într-un microcontroler AVR, putem alege un format de cadru de date în fiecare cadru de bitul UCSZ al registrului UCSRC.

Format cadru de date

Format cadru de date

Pasul 6: Stocați datele primite

Microcontrolerul AVR constă dintr-un registru tampon UDR pentru transmiterea și primirea datelor. UDR este un registru tampon de 16 biți în care sunt utilizați 8 biți pentru primirea (RXB) a datelor și alți biți sunt utilizați pentru transmiterea datelor (TXB). Transmiterea registrului tampon de date va fi destinația către registrul UDR pentru datele scrise despre locația sa. Primirea registrului tampon de date va restitui conținutul registrului UDR.

Pasul 7: Activarea emițătorului și a receptorului

Datele transmise și primite vor fi permise de pinii RXC și TXC ai microcontrolerului care sunt setați de registrul UCSRA al microcontrolerului. Acest bit de semnalizare setat de microcontroler pentru date este completat prin primirea și transmiterea (TXC = RXC = 1).

Dublați rata Baud

Putem dubla rata de transfer a comunicării USART a AVR microcontroler de la 16 biți la 8 biți efectiv de către U2X –bit în registrul UCSRA. Acest bit are efect numai asupra funcționării asincrone. Dacă putem seta acest bit (U2X = 1), acesta va reduce rata de transmisie de la 16 biți la 8 biți dublând efectiv rata de transfer pentru comunicația sincronă.

Aceasta este o caracteristică avansată a microcontrolerului AVR pentru procesarea rapidă a datelor.

Programul USART

Fiecare microcontroler este predefinit cu un IDE specific și pe baza acestui IDE, microcontrolerele sunt programate cu C încorporat sau limbaj de asamblare. Programarea microcontrolerului AVR este dezvoltată de studioul AVR. În plus, dacă doriți informații suplimentare despre pași pentru a construi proiecte bazate pe microcontroler , sau informații detaliate despre acest subiect, ne puteți contacta comentând mai jos.