Mikrokontrolér AVR (Atmel 8) Sériová komunikácia Konfigurácia USART

Vyskúšajte Náš Nástroj Na Odstránenie Problémov





Mikrokontrolér je riadiace zariadenie, ktoré obsahuje množstvo periférií ako RAM, ROM TIMERS, sériová dátová komunikácia , atď., ktoré sú potrebné na vykonávanie niektorých vopred určených úloh. V dnešnej dobe pokročilý typ mikrokontrolérov sa používajú v širokej škále aplikácií podľa ich schopností a uskutočniteľnosti na vykonávanie niektorých požadovaných úloh a medzi tieto radiče patrí 8051, mikrokontrolér AVR a PIC . V tomto článku sa dozvieme o pokrokovom mikrokontroléri rodiny AVR a jeho programovaní .

Mikrokontrolér AVR

AVR je typ ovládacieho zariadenia vyrobeného spoločnosťou Atmel Corporation v roku 1996. AVR nestojí za nič, je to len meno. AVR mikrokontroléry pozostávajú z architektúry Harvard , a preto zariadenie beží veľmi rýchlo so zníženým počtom pokynov na úrovni stroja (RISC). Mikrokontroléry AVR pozostávajú zo špeciálnych funkcií v porovnaní s inými mikrokontrolérmi, ako sú napríklad režimy 6 spánku, zabudovaný ADC, interný oscilátor a sériová dátová komunikácia atď. Mikrokontroléry AVR sú k dispozícii v rôznych konfiguráciách 8-bitových, 16-bitových a 32-bitových na vykonávanie rôznych operácií.




Mikrokontrolér AVR

Mikrokontrolér AVR

USART sériová dátová komunikácia v mikrokontroléri AVR

USART znamená univerzálny synchrónny a asynchrónny prijímač a vysielač. Jedná sa o sériovú komunikáciu dvoch protokolov. Tento protokol sa používa na vysielanie a príjem dát po bitoch, pokiaľ ide o hodinové impulzy, na jednom vodiči. The Mikrokontrolér AVR má dva piny: TXD a RXD, ktoré sa špeciálne používajú na sériový prenos a príjem dát. Akýkoľvek mikrokontrolér AVR pozostáva z protokolu USART s vlastnými vlastnosťami.



Komunikácia USART v mikrokontroléri AVR

Komunikácia USART v mikrokontroléri AVR

Hlavné vlastnosti programu AVR USART

  • Protokol USART podporuje protokol s úplným duplexom.
  • Generuje prenosovú rýchlosť s vysokým rozlíšením.
  • Podporuje prenos sériových dátových bitov od 5 do 9 a skladá sa z dvoch stop bitov.

Konfigurácia kolíka USART

USART AVR sa skladá z troch pinov:


  • RXD: Pin prijímača USART (ATMega8 PIN 2 ATMega16 / 32 Pin 14)
  • TXD: Pin vysielača USART (ATMega8 PIN 3 ATMega16 / 32 Pin 15)
  • XCK: USART hodinový pin (ATMega8 PIN 6 ATMega16 / 32 Pin 1)

Prevádzkové režimy

Mikrokontrolér AVR protokolu USART pracuje v troch režimoch, ktoré sú:

  • Asynchrónny normálny režim
  • Asynchrónny režim dvojnásobnej rýchlosti
  • Synchrónny režim
Prevádzkové režimy

Prevádzkové režimy

Asynchrónny normálny režim

V tomto režime komunikácie sa dáta prenášajú a prijímajú po bitoch bez hodinových impulzov preddefinovanou prenosovou rýchlosťou nastavenou registrom UBBR.

Asynchrónny režim dvojnásobnej rýchlosti

V tomto režime komunikácie sa dáta prenášané s dvojnásobnou prenosovou rýchlosťou nastavujú v registri UBBR a nastavujú sa bity U2X v registri UCSRA. Toto je vysokorýchlostný režim pre synchrónnu komunikáciu pre rýchly prenos a príjem dát. Tento systém sa používa tam, kde je potrebné presné nastavenie prenosovej rýchlosti a času systému.

Synchrónny režim

V tomto systéme je vysielanie a príjem údajov týkajúcich sa hodinového impulzu nastavený na UMSEL = 1 v registri UCSRC.

Konfigurácia USART V mikrokontroléri AVR

USART je možné nakonfigurovať pomocou piatich registrov ako napr tri kontrolné registre , jeden dátový register a register pre prenosovú rýchlosť, napríklad UDR, UCSRA, UCSRB, UCSRC a UBRR.

7 krokov pre zostavenie programu

Krok 1: Vypočítajte a nastavte prenosovú rýchlosť

Prenosovú rýchlosť USART / UART určuje registrátor UBRR. Tento register sa používa na generovanie dátového prenosu špecifickou rýchlosťou. UBRR je 16-bitový register. Pretože AVR je 8-bitový mikrokontrolér a jeho ľubovoľná veľkosť registra je 8-bitová. Preto tu 16-bitový UBRR register pozostáva z dvoch 8-bitových registrov, ako sú UBRR (H), UBRR (L).

Vzorec prenosovej rýchlosti je

BAUD = tmavý / (16 * (UBBR + 1))

Vzorec registra UBRR je

UBRR = tmavý / (16 * (BAUD-1))

Frekvencia mikrokontroléra AVR je 16MHz = 16000000. Predpokladajme prenosovú rýchlosť ako 19200 Bps, potom

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

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

UBRR = 51,099

Nakoniec nájdite prenosovú rýchlosť

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

Krok 2: Výber dátového režimu

Režim prenosu dát, štartovací a stop bit a veľkosť znaku je nastavená riadiacim a stavovým registrom UCSRC.

Výber dátového režimu

Výber dátového režimu

Krok 3: Výber režimu prenosu údajov

Synchrónny a asynchrónny režim je vybraný bitom UMSEL riadiaceho stavového registra. Ak dáme UMSEL = 0, potom USART pracuje v asynchrónnom režime, inak pracuje v synchrónnom režime.

Výber režimu prenosu údajov

Výber režimu prenosu údajov

Krok 4: Start Bit a Stop Bit

Počiatočný bit a stop bit sú spôsob sériového odosielania a prijímania údajov. Všeobecne sa akákoľvek dátová sláva skladá z jedného statického bitu a jedného stop bitu, ale mikrokontrolér AVR má jeden štartovací bit a dva stop bity na spracovanie údajov. Extra stop bit môže byť užitočný na pridanie trochu času navyše na spracovanie príjmu. Je to užitočné najmä pri vysokých rýchlostiach prenosu dát, zatiaľ čo rýchlosť prenosu dát je veľmi vysoká, takže nedostávame správne údaje. Môžeme teda predĺžiť čas spracovania pomocou dvoch stop bitov na získanie správnych údajov.

Start Bit a Stop Bit

Start Bit a Stop Bit

Počet stop bitov je zvolený bitom USBS UCSRC - riadiacim stavovým registrom. USBS = 0 pre jeden stop bit a USBS = 1 pre dva stop bity.

Krok 5: Nastavte veľkosť znakov

Rovnako ako v prípade základné mikrokontroléry odosielanie a prijímanie bajtu dát (8-bitov) naraz, či už v mikrokontroléri AVR, môžeme zvoliť formát dátového rámca v každom rámci bitom UCSZ registra UCSRC.

Formát dátového rámca

Formát dátového rámca

Krok 6: Uložte prijaté údaje

Mikrokontrolér AVR pozostáva z registra vyrovnávacej pamäte UDR na vysielanie a príjem dát. UDR je 16-bitový medzipamäťový register, kde sa na príjem (RXB) dát používa 8 bitov a na prenos dát (TXB) sa používajú ďalšie bity. Vysielací register medzipamäte údajov bude cieľom do registra UDR pre zapísané údaje o jeho umiestnení. Prijímajúci register vyrovnávacej pamäte údajov vráti obsah registra UDR.

Krok 7: Povolenie vysielača a prijímača

Vysielané a prijímané údaje budú umožnené pinmi RXC a TXC mikrokontroléra, ktoré sú nastavené v registri UCSRA mikrokontroléra. Tento príznakový bit nastavený mikrokontrolérom pre dáta sa dokončí prijatím a vysielaním (TXC = RXC = 1).

Zdvojnásobte prenosovú rýchlosť

Môžeme zdvojnásobiť rýchlosť prenosu USART komunikácie AVR mikrokontrolér od 16 bitov do 8 bitov efektívne pomocou U2X –bit v registri UCSRA. Tento bit ovplyvňuje iba asynchrónnu prevádzku. Ak môžeme nastaviť tento bit (U2X = 1), zníži sa prenosová rýchlosť zo 16-bitovej na 8-bitovú, čím sa efektívne zdvojnásobí prenosová rýchlosť pre synchrónnu komunikáciu.

Toto je pokročilá vlastnosť mikrokontroléra AVR na rýchle spracovanie údajov.

Program USART

Každý mikrokontrolér je preddefinovaný konkrétnym IDE a na základe tohto IDE mikrokontroléry sú programované so zabudovaným C. alebo montážny jazyk. Programovanie mikrokontrolérov AVR vyvíja štúdio AVR. Ďalej, ak chcete ďalšie informácie o kroky na vybudovanie projektov založených na mikrokontroléroch alebo podrobné informácie o tejto téme nás môžete kontaktovať prostredníctvom komentárov uvedených nižšie.