Otevře se na nové kartě

Propojení ATMega8 s PC přes USB pomocí UART

Tak moje programování pokročilo dále a dalším cílem bylo zdolání UARTu. Ukážu zde několik kódů. Ať od těch nejjednodušších až po složitější.

Celé jsem to zkoušel na vývojové desce

programoval upraveným programátorem BiProg a jako převodník jsem použil FT232RL, který naleznete na zde na stránkách.
Program pro komunikaci mezipočítačem a mikrokontrolérem jsem použil tento.

POZOR! Pokud používáte pod linuxem programátor BiProg a zároveň tento převodník, komunikace se může mlátit.

Proto první připojte programátor (ten se zapíše jako ttyUSB0[jak je nastavený v makefile]) a druhý připojte převodník. Program spusťtě jako root to tak:


Program tak dostane rootovská práva a při odpojení programátoru a znova připojení to nebude dělat „bordel“.

Nejprve troška teorie. Takže nastavení UARTu je v programech okomentováno, co je povoleno a jak je to povoleno.

Registr UDR slouží k přijmu a zároveň i k vyslání znaku!

Registr UCSRA:

Tabulka bitů registru UCSRA pro nastavení UARTu v mikrokontroléru ATmega8

Bit RXC – indikátor, zda už byl přijat znak.

Bit TXC – nastavení, zda už byl odeslán znak.

Bit UDRE – indikátor, zda je připraven k přijmu nových dat.

Bit U2X – zdvojnásobení přenosové rychlosti.

Tabulky pro nastavení UARTu:

Tabulka nastavení UBRR pro různé baudové rychlosti, frekvence oscilátoru a režimy U2X

Tabulka hodnot UBRR a chyb přenosové rychlosti pro různé frekvence oscilátoru

Tabulka hodnot UBRR a chybovosti přenosu UART při různých frekvencích oscilátoru

Tabulka nastavení registru UBRR podle přenosové rychlosti a frekvence oscilátoru

Registr UCSRB:

Tabulka registru UCSRB se značením řídicích bitů a jejich počátečních hodnot

Bit RXCIE – povolení přerušení při přimu dat.

Bit TXCIE – povolení přerušení při odeslání dat.

Bit RXEN – povolení samotného příjmu.

Bit TXEN – povolení samotného odeslání.

Registr UCSRV:

Tabulka bitů registru UCSRC mikrokontroléru ATmega8

Bit URSEL – nastavení přístupu k registru UCSRC nebo UBRRH.

Bit UMSEL – nastavení synchronního (1) a asynchronního režimu (0).

Bit UPM1:0 – nastavení parity.

Bit USBS – nastavení stop bitu.

Bit UCSZ2:1:0 – nastavení délky dat.

A nyní příklady:

Účel prvního programu je opravdu jednoduchý. Znak, který přijme od počítače, zase vrátí.

Druhý program přijme data z počítače a ať přijme jakýkoliv znak, pošle zpět znak „a“.

Třetí program je obdobný, ale místo vracení jednoho znaku, vrací pole znaků, v tomto případě „ahoj“.

Proto zde musela být vložena funkce, která rozděluje pole na jednotlivé znaky a posílá je zpět do počítače.

Čtvrtý program přijme z počítače znak a zobrazího na LCD displeji. To vidíte na videu

Displej je zapojen:

Zapojení vývodů. Data jsou posílany po 4-bitové sběrnici po portu B. Vývody E-Enable – PB7, RS-Reset – PB6, RW-Read/Write – PB5

Sdílejte článek:
Tričko Chiptron s potiskem Trust me, I'm a maker
Ukaž světu,
že jsi Maker!
Koupit tričko
Kafe pro Chiptrona
Dodej energii dalšímu článku
Buy Me a Coffee

Související články

Schéma zapojení upraveného programátoru BiProg USB 2.1

Tento programátor je velmi známý a spousta bastlířů si jej i postavilo.

Textový editor s komentovaným Makefilem pro kompilaci a nahrávání programu AVR

Zkusím Vám stručně a přehledně napsat návod, jak programovat mikrokontroléry (slengově mikroprocesory) AVR.

Dvě varianty USB programátoru na modrých deskách plošných spojů

Stefan Wagner zveřejnil na svém githubu několik projektů programátorů.

USB-UART převodník s čipem FT230XS, zobrazený z obou stran

Můžete si koupit nepřeberné množství typů USB-UART převodníků například s FT232, CH340 or CP2102.

Úvodní okno vývojového prostředí CodeVision s prázdnou pracovní plochou

Ze všeho nejdříve bych chtěl zmínit, že takto to dělám já, a neznamená to že je to správně.

Trendy