Mikrokontrolér AVR (Atmel 8) Konfigurace USART sériové komunikace

Vyzkoušejte Náš Nástroj Pro Odstranění Problémů





Mikrokontrolér je řídicí zařízení, které obsahuje řadu periferií, jako jsou RAM, ROM TIMERS, sériová datová komunikace atd., které jsou vyžadovány k provádění některých předdefinovaných úkolů. Dnes, pokročilý typ mikrokontrolérů se používají v široké škále aplikací podle jejich schopností a proveditelnosti provádět některé požadované úkoly a tyto řadiče zahrnují 8051, AVR a PIC mikrokontrolér . V tomto článku se budeme učit o pokročilém mikrokontroléru rodiny AVR a jeho programování .

Mikrokontrolér AVR

AVR je typ řídicího zařízení vyrobeného společností Atmel Corporation v roce 1996. AVR nestojí za ničím, je to jen jméno. AVR mikrokontroléry se skládají z harvardské architektury , a proto zařízení běží velmi rychle se sníženým počtem pokynů na úrovni stroje (RISC). Mikrokontroléry AVR se skládají ze speciálních funkcí ve srovnání s jinými mikrokontroléry, jako jsou režimy 6-spánku, vestavěný ADC, interní oscilátor a sériová datová komunikace atd. Mikrokontroléry AVR jsou k dispozici v různých konfiguracích 8bitových, 16bitových a 32bitových pro provádění různých operací.




Mikrokontrolér AVR

Mikrokontrolér AVR

Sériová datová komunikace USART v mikrokontroléru AVR

USART znamená univerzální synchronní a asynchronní přijímač a vysílač. Jedná se o sériovou komunikaci dvou protokolů. Tento protokol se používá pro přenos a příjem dat bit po bitu s ohledem na taktovací impulsy na jednom drátu. The Mikrokontrolér AVR má dva piny: TXD a RXD, které se speciálně používají pro sériový přenos a příjem dat. Jakýkoli mikrokontrolér AVR se skládá z protokolu USART s vlastními funkcemi.



Komunikace USART v mikrokontroléru AVR

Komunikace USART v mikrokontroléru AVR

Hlavní rysy AVR USART

  • Protokol USART podporuje plně duplexní protokol.
  • Generuje přenosovou rychlost s vysokým rozlišením.
  • Podporuje přenos bitů sériových dat od 5 do 9 a skládá se ze dvou stop bitů.

Konfigurace kolíku USART

USART AVR se skládá ze tří kolíků:


  • RXD: PIN přijímače USART (ATMega8 PIN 2 ATMega16 / 32 Pin 14)
  • TXD: Pin vysílače USART (ATMega8 PIN 3 ATMega16 / 32 Pin 15)
  • XCK: PIN hodin USART (ATMega8 PIN 6 ATMega16 / 32 Pin 1)

Provozní režimy

Mikrokontrolér AVR protokolu USART pracuje ve třech režimech, které jsou:

  • Asynchronní normální režim
  • Asynchronní režim dvojnásobné rychlosti
  • Synchronní režim
Provozní režimy

Provozní režimy

Asynchronní normální režim

V tomto režimu komunikace jsou data přenášena a přijímána bit po bitu bez hodinových impulzů předdefinovanou přenosovou rychlostí nastavenou registrem UBBR.

Asynchronní režim dvojnásobné rychlosti

V tomto režimu komunikace jsou data přenášená s dvojnásobnou přenosovou rychlostí nastavena registrem UBBR a nastavují bity U2X v registru UCSRA. Jedná se o vysokorychlostní režim pro synchronní komunikaci pro rychlý přenos a příjem dat. Tento systém se používá tam, kde je vyžadováno přesné nastavení přenosové rychlosti a systémových hodin.

Synchronní režim

V tomto systému je vysílání a příjem dat týkajících se hodinového impulzu nastaveno na UMSEL = 1 v registru UCSRC.

Konfigurace USART V mikrokontroléru AVR

USART lze konfigurovat pomocí pěti registrů, jako je tři řídicí registry , jeden datový registr a registr volby přenosové rychlosti, jako jsou UDR, UCSRA, UCSRB, UCSRC a UBRR.

7 kroků pro sestavení programu

Krok 1: Vypočítejte a nastavte přenosovou rychlost

Přenosová rychlost USART / UART je nastavena registrátorem UBRR. Tento registr se používá ke generování datového přenosu specifickou rychlostí. UBRR je 16bitový registr. Vzhledem k tomu, že AVR je 8bitový mikrokontrolér a jeho libovolná velikost registru je 8bitová. Proto je zde 16bitový registr UBRR složen ze dvou 8bitových registrů, jako jsou UBRR (H), UBRR (L).

Vzorec přenosové rychlosti je

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

Vzorec registru UBRR je

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

Frekvence mikrokontroléru AVR je 16MHz = 16000000 Předpokládejme přenosovou rychlost jako 19200Bps, pak

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

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

UBRR = 51,099

Nakonec najděte přenosovou rychlost

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

Krok 2: Výběr datového režimu

Režim přenosu dat, počáteční bit a stop bit a velikost znaků jsou nastaveny řídicím a stavovým registrem UCSRC.

Výběr datového režimu

Výběr datového režimu

Krok 3: Výběr režimu přenosu dat

Synchronní a asynchronní režim je vybrán bitem UMSEL řídicího stavového registru. Pokud dáme UMSEL = 0, pak USART pracuje v asynchronním režimu, jinak pracuje v synchronním režimu.

Výběr režimu přenosu dat

Výběr režimu přenosu dat

Krok 4: Start Bit a Stop Bit

Počáteční bit a stop bit jsou způsob sériového odesílání a přijímání dat. Obecně se každá datová sláva skládá z jednoho statového bitu a jednoho stop bitu, ale mikrokontrolér AVR má jeden startovací bit a dva stop bity pro zpracování dat. Extra stop bit může být užitečný pro přidání trochu času navíc pro zpracování příjmu. Je to užitečné zejména pro vysoké rychlosti přenosu dat, zatímco rychlost přenosu dat je velmi vysoká, takže nedostáváme správná data. Můžeme tedy zvýšit dobu zpracování pomocí dvou stop bitů k získání správných dat.

Start Bit a Stop Bit

Start Bit a Stop Bit

Počet stop bitů je vybrán bitem USBS UCSRC - řídícím stavovým registrem. USBS = 0, pro jeden stop bit, a USBS = 1, pro dva stop bity.

Krok 5: Nastavte velikost znaků

Stejně jako v případě základní mikrokontroléry odesílání a přijímání bajtu dat (8 bitů) najednou, ať už v mikrokontroléru AVR, můžeme zvolit formát datového rámce v každém rámci bitem UCSZ registru UCSRC.

Formát datového rámce

Formát datového rámce

Krok 6: Uložte přijatá data

Mikrokontrolér AVR se skládá z registru vyrovnávací paměti UDR pro přenos a příjem dat. UDR je 16bitový vyrovnávací registr, kde 8 bitů se používá pro příjem (RXB) dat a další bity se používají pro přenos dat (TXB). Registr vysílající datové vyrovnávací paměti bude cílem do registru UDR pro zapsaná data na jeho místě. Přijímající registr vyrovnávací paměti dat bude vracet obsah registru UDR.

Krok 7: Povolení vysílače a přijímače

Přenášená a přijímaná data budou povolena piny RXC a TXC mikrokontroléru, které jsou nastaveny v registru UCSRA mikrokontroléru. Tento příznakový bit nastavený mikrokontrolérem pro data je dokončen příjmem a vysíláním (TXC = RXC = 1).

Zdvojnásobte přenosovou rychlost

Můžeme zdvojnásobit přenosovou rychlost komunikace USART AVR mikrokontrolér od 16 bitů do 8 bitů efektivně pomocí U2X –bit v registru UCSRA. Tento bit ovlivňuje pouze asynchronní provoz. Pokud můžeme tento bit nastavit (U2X = 1), sníží přenosovou rychlost ze 16bitové na 8bitovou, čímž se efektivně zdvojnásobí přenosová rychlost pro synchronní komunikaci.

Toto je pokročilá funkce mikrokontroléru AVR pro rychlé zpracování dat.

Program USART

Každý mikrokontrolér je předdefinován konkrétním IDE a na základě tohoto IDE mikrokontroléry jsou programovány s integrovaným C. nebo montážní jazyk. Programování mikrokontroléru AVR vyvíjí studio AVR. Dále, pokud chcete další informace o kroky k vytvoření projektů založených na mikrokontrolérech nebo podrobné informace o tomto tématu nás můžete kontaktovat níže uvedeným komentářem.