AVR mikrovaldiklis („Atmel 8“) nuosekliojo ryšio USART konfigūracija

Išbandykite Mūsų Instrumentą, Kaip Pašalinti Problemas





Mikrovaldiklis yra valdymo įrenginys, kuriame yra daugybė išorinių įrenginių, tokių kaip RAM, ROM TIMER, nuoseklus duomenų perdavimas ir kt., kurių reikia norint atlikti kai kurias iš anksto nustatytas užduotis. Šiais laikais pažangaus tipo mikrovaldikliai yra naudojami įvairiose programose, atsižvelgiant į jų galimybes ir galimybes atlikti kai kurias norimas užduotis, įskaitant šiuos valdiklius 8051, AVR ir PIC mikrovaldiklis . Šiame straipsnyje mes sužinosime apie pažangų AVR šeimos mikrovaldiklį ir jo programavimą .

AVR mikrovaldiklis

AVR yra tam tikro tipo valdymo įtaisas, kurį 1996 m. Gamino „Atmel Corporation“. AVR nieko nereiškia, tai tik pavadinimas. AVR mikrovaldikliai susideda iš Harvardo architektūros , todėl įrenginys veikia labai greitai, naudodamas sumažintą mašinų lygio instrukcijų (RISC) skaičių. AVR mikrovaldikliai susideda iš specialių funkcijų, palyginti su kitais mikrovaldikliais, tokiais kaip 6 miego režimai, integruotas ADC, vidinis osciliatorius ir nuoseklus duomenų perdavimas ir kt. AVR mikrovaldikliai yra įvairių konfigūracijų 8 bitų, 16 bitų ir 32 bitų, kad būtų galima atlikti įvairias operacijas.




AVR mikrovaldiklis

AVR mikrovaldiklis

USART nuoseklus duomenų perdavimas AVR mikrovaldiklyje

USART reiškia universalų sinchroninį ir asinchroninį imtuvą ir siųstuvą. Tai nuoseklus dviejų protokolų ryšys. Šis protokolas naudojamas duomenims perduoti ir priimti po truputį, atsižvelgiant į laikrodžio impulsus viename laide. The AVR mikrovaldiklis turi du kaiščius: TXD ir RXD, kurie specialiai naudojami duomenims perduoti ir priimti nuosekliai. Bet kurį AVR mikrovaldiklį sudaro USART protokolas su savo ypatybėmis.



USART ryšys AVR mikrovaldiklyje

USART ryšys AVR mikrovaldiklyje

Pagrindinės AVR USART savybės

  • USART protokolas palaiko viso dvipusio protokolo protokolą.
  • Tai sukuria didelės skiriamosios gebos perdavimo greitį.
  • Jis palaiko serijinių duomenų bitų perdavimą nuo 5 iki 9 ir susideda iš dviejų sustabdymo bitų.

USART kaiščių konfigūracija

AVR USART sudaro trys kaiščiai:


  • RXD: „USART“ imtuvo kaištis (ATMega8 PIN 2 ATMega16 / 32 kaištis 14)
  • TXD: USART siųstuvo kaištis (ATMega8 PIN 3 ATMega16 / 32 kaištis 15)
  • XCK: USART laikrodžio kaištis (ATMega8 PIN 6 ATMega16 / 32 kaištis 1)

Veikimo režimai

USART protokolo AVR mikrovaldiklis veikia trimis režimais:

  • Asinchroninis įprastas režimas
  • Asinchroninis dvigubo greičio režimas
  • Sinchroninis režimas
Veikimo režimai

Veikimo režimai

Asinchroninis įprastas režimas

Šiuo ryšio režimu duomenys perduodami ir priimami po truputį be laikrodžio impulsų pagal iš anksto nustatytą perdavimo greitį, nustatytą UBBR registre.

Asinchroninis dvigubo greičio režimas

Šiuo ryšio režimu duomenis, perduodamus dvigubu duomenų perdavimo greičiu, nustato UBBR registras ir nustato U2X bitus UCSRA registre. Tai greito sinchroninio ryšio režimas, skirtas greitai perduoti ir priimti duomenis. Ši sistema naudojama ten, kur reikalingi tikslūs duomenų perdavimo spartos nustatymai ir sistemos laikrodis.

Sinchroninis režimas

Šioje sistemoje duomenų perdavimas ir priėmimas atsižvelgiant į laikrodžio impulsą yra nustatytas UMSEL = 1 UCSRC registre.

USART konfigūracija AVR mikrovaldiklyje

USART galima sukonfigūruoti naudojant penkis registrus, tokius kaip trys kontroliniai registrai , vienas duomenų registras ir duomenų perdavimo greičio parinkimo registras, pvz., UDR, UCSRA, UCSRB, UCSRC ir UBRR.

7 programos sudarymo žingsniai

1 žingsnis: Apskaičiuokite ir nustatykite perdavimo spartą

USART / UART duomenų perdavimo greitį nustato UBRR registratorius. Šis registras naudojamas generuoti duomenų perdavimą tam tikru greičiu. UBRR yra 16 bitų registras. Kadangi AVR yra 8 bitų mikrovaldiklis ir bet koks registro dydis yra 8 bitų. Taigi, 16 bitų UBRR registrą sudaro du 8 bitų registrai, tokie kaip UBRR (H), UBRR (L).

Baudos dažnio formulė yra

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

UBRR registro formulė yra

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

AVR mikrovaldiklio dažnis yra 16MHz = 16000000 Tarkime, kad perdavimo greitis yra 19200Bps, tada

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

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

UBRR = 51.099

Galų gale raskite duomenų perdavimo greitį

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

2 žingsnis: Duomenų režimo pasirinkimas

Duomenų perdavimo režimą, pradžios ir pabaigos bitus bei simbolių dydį nustato valdymo ir būsenos registras UCSRC.

Duomenų režimo pasirinkimas

Duomenų režimo pasirinkimas

3 žingsnis: Duomenų perdavimo režimo pasirinkimas

Sinchroninį ir asinchroninį režimą parenka valdymo būsenos registro UMSEL bitai. Jei suteiksime UMSEL = 0, tada USART veiks asinchroniniu režimu, kitu atveju - sinchroniniu režimu.

Duomenų perdavimo režimo pasirinkimas

Duomenų perdavimo režimo pasirinkimas

4 žingsnis: „Start Bit“ ir „Stop Bit“

Pradžios ir pabaigos bitai yra būdas siųsti ir gauti duomenis nuosekliai. Paprastai bet kokią duomenų šlovę sudaro vienas statistinis ir vienas stabdymo bitas, tačiau AVR mikrovaldiklis turi vieną pradinį ir du sustabdymo bitus duomenims apdoroti. Papildomas stabdymo bitas gali būti naudingas pridedant šiek tiek papildomo gavimo apdorojimo laiko. Tai ypač naudinga esant dideliems duomenų perdavimo greičiams, tuo tarpu duomenų perdavimo greitis yra labai didelis, todėl mes negauname tinkamų duomenų. Taigi, mes galime pailginti apdorojimo laiką, naudodami du stabdymo bitus, kad gautume tinkamus duomenis.

„Start Bit“ ir „Stop Bit“

„Start Bit“ ir „Stop Bit“

Stabdymo bitų skaičių parenka UCSRC USBS bitas - valdymo būsenos registras. USBS = 0 vienam sustojimo bitui ir USBS = 1 - dviem sustojimo bitams.

5 žingsnis: Nustatykite simbolio dydį

Kaip ir su pagrindiniai mikrovaldikliai siunčiant ir priimant duomenų baitą (8 bitus) vienu metu, nesvarbu, ar naudojant AVR mikrovaldiklį, kiekviename kadre galime pasirinkti duomenų kadrų formatą pagal UCSRC registro UCSZ bitą.

Duomenų rėmo formatas

Duomenų rėmo formatas

6 žingsnis: Saugokite gautus duomenis

AVR mikrovaldiklį sudaro UDR buferio registras duomenims perduoti ir priimti. UDR yra 16 bitų buferinis registras, kuriame 8 bitai naudojami duomenims priimti (RXB), o kiti bitai naudojami duomenims perduoti (TXB). Duomenų buferio registro perdavimas bus rašytinių duomenų apie jo vietą UDR registrui adresas. Gaunant duomenų buferio registrą bus grąžintas UDR registro turinys.

7 žingsnis: Siųstuvo ir imtuvo įgalinimas

Perduodamus ir gautus duomenis leis mikrokontrolerio RXC ir TXC kaiščiai, kuriuos nustato mikrokontrolerio UCSRA registras. Šis mikrovaldiklio nustatytas vėliavos bitas duomenims užbaigiamas priimant ir perduodant (TXC = RXC = 1).

Padvigubinkite perdavimo spartą

Mes galime padvigubinti AVR ryšio USART perdavimo greitį mikrovaldiklis nuo 16 iki 8 bitų efektyviai naudojant U2X bitą UCSRA registre. Šis bitas veikia tik asinchroninį veikimą. Jei mes galime nustatyti šį bitą (U2X = 1), tai sumažins perdavimo greitį nuo 16 bitų iki 8 bitų, efektyviai padvigubindami sinchroninio ryšio perdavimo greitį.

Tai yra pažangi AVR mikrovaldiklio funkcija, skirta greitai apdoroti duomenis.

USART programa

Kiekvienas mikrovaldiklis yra iš anksto nustatytas su konkrečia IDE ir, remiantis šiuo IDE, mikrovaldikliai užprogramuoti su įterptuoju C ar surinkimo kalba. AVR mikrovaldiklio programavimą kuria AVR studija. Be to, jei norite gauti papildomos informacijos apie žingsniai kuriant mikrovaldikliais pagrįstus projektus arba išsamią informaciją šia tema galite susisiekti su mumis komentuodami toliau.