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
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
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
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
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
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
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
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.