Mi is az az USART/UART?
Az AVR mikroverzérlők döntő többsége rendelkezik USART perifériával. Az USART jelentése: Universal Synchronous Asynchronous Receiver Transmitter (amit kb. Univerzális Szinkron és Aszinkron Küldő és Fogadó-nak lehetne lefordítani). Ennek a hardvernek köszönhető a soros kommunikációs kapcsolat, ami lehetővé teszi a mikrovezérlő számára, hogy más eszközöknek (pl. PC, másik AVR, stb..) sorosan adatokat küldjön és tőlük adatokat fogadjon (karakterek, szöveg, szám stb.). Az USART nagyon hasznos lehet, segíthet a mikrovezérlő programjának hibakeresésében, adatgyűjtésben és az érzékelők tesztelése során is jó hasznát vehetjük.
Az AVR mikrokontrollerekben a soros kommunikációt külön erre a célra létrehozott áramkör látja el. Az ATmega8 esetén az USART kivezetés a 2-es lábra (Adat Fogadás: Receive - RxD) és a 3-as lábra (Adat Küldés: Transmit - TxD) került. Ezek a lábak működhetnek általános I/O lábként is (ha nem használjuk az USART funkciót), ekkor a PortD0 és a PortD1 néven hivatkozhatunk rájuk.
A cikkben az AVR és a PC közötti aszinkron soros kommunikáció (UART) használatát 3 egyszerű példán keresztül mutatom be; először az ún. "polling" módszerrel, majd megszakítások használatával.
A mikrovezérlők ún. TTL jeleket használnak. Ez a TTL jel különbözik attól a jeltől, amit a PC soros (RS-232) vagy USB portja használ. A TTL, az RS-232 és az USB az adatátviteleknél használt különböző szabványok és kommunikációs protokollok. Általában ezek egymással nem kompatibilisek, de azért, hogy rajtuk keresztül tudjunk a mikrovezérlővel kommunikálni, alap szinten meg kell értenünk, hogyan működnek.
A PC-ken a soros kommunikációt legtöbbször RS-232-nek is hívják (ez a szabvány nevére utal, ami megadja a kommunikációhoz használt jelszinteket és vezérlő jeleket). Az RS-232 egy manapság már eltűnőfélben levő kommunikációs szabvány, és szinte már csak régebbi számítógépeken találkozhatunk vele. Ma már nem is nagyon van a PC-ken soros port, szinte kizárólag az USB portot használják különböző eszközök PC-hez történő csatlakoztatásához.
A cikkemben nem célom az összes soros szinkron és aszinkron kommunikációs protokoll teljeskörű bemutatása. Csak az aszinkron soros kommunikációval foglalkozom (UART), és csak azokat a legszükségesebb részeket tárgyalom, ami ennek a megvalósításához kell.