Propojení ATMega8 s PC přes USB pomocí UART
- July 12 2013
- Atmel mikrokontroléry (AVR, ATMega, ATXMega, ATTiny...)
- 4534x Přečteno
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:
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:
Registr UCSRB:
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:
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