Mikrokontroler AVR (Atmel 8) Konfiguracja komunikacji szeregowej USART

Wypróbuj Nasz Instrument Do Eliminowania Problemów





Mikrokontroler to urządzenie sterujące, które zawiera szereg urządzeń peryferyjnych, takich jak RAM, ROM TIMERY, szeregowa komunikacja danych itp., które są wymagane do wykonania niektórych predefiniowanych zadań. Dzisiaj, zaawansowany typ mikrokontrolerów są używane w wielu różnych aplikacjach, zgodnie z ich możliwościami i wykonalnością do wykonywania niektórych pożądanych zadań, a te kontrolery obejmują 8051, mikrokontroler AVR i PIC . W tym artykule poznamy zaawansowany mikrokontroler z rodziny AVR i jego programowanie .

Mikrokontroler AVR

AVR to rodzaj urządzenia sterującego wyprodukowanego przez firmę Atmel Corporation w 1996 roku. AVR nie oznacza niczego, to tylko nazwa. AVR mikrokontrolery składają się z architektury Harvardu dlatego też urządzenie działa bardzo szybko przy zmniejszonej liczbie instrukcji na poziomie maszyny (RISC). Mikrokontrolery AVR składają się ze specjalnych funkcji w porównaniu z innymi mikrokontrolerami, takich jak 6 trybów uśpienia, wbudowany ADC, wewnętrzny oscylator i komunikacja szeregowa itp. Mikrokontrolery AVR są dostępne w różnych konfiguracjach 8-bitowych, 16-bitowych i 32-bitowych do wykonywania różnych operacji.




Mikrokontroler AVR

Mikrokontroler AVR

Szeregowa komunikacja danych USART w mikrokontrolerze AVR

USART oznacza uniwersalny synchroniczny i asynchroniczny odbiornik i nadajnik. Jest to komunikacja szeregowa dwóch protokołów. Protokół ten jest używany do przesyłania i odbierania danych bit po bicie w odniesieniu do impulsów zegara na pojedynczym przewodzie. Plik Mikrokontroler AVR ma dwa piny: TXD i RXD, które są specjalnie używane do szeregowego przesyłania i odbierania danych. Każdy mikrokontroler AVR składa się z protokołu USART z własnymi funkcjami.



Komunikacja USART w mikrokontrolerze AVR

Komunikacja USART w mikrokontrolerze AVR

Główne cechy AVR USART

  • Protokół USART obsługuje protokół pełnego dupleksu.
  • Generuje szybkość transmisji o wysokiej rozdzielczości.
  • Obsługuje transmisję szeregowych bitów danych od 5 do 9 i składa się z dwóch bitów stopu.

Konfiguracja pinów USART

USART z AVR składa się z trzech Pinów:


  • RXD: pin odbiornika USART (ATMega8 PIN 2 ATMega16 / 32 Pin 14)
  • TXD: pin nadajnika USART (ATMega8 PIN 3 ATMega16 / 32 Pin 15)
  • XCK: pin zegara USART (ATMega8 PIN 6 ATMega16 / 32 Pin 1)

Tryby działania

Mikrokontroler AVR protokołu USART pracuje w trzech trybach:

  • Asynchroniczny tryb normalny
  • Asynchroniczny tryb podwójnej prędkości
  • Tryb synchroniczny
Tryby działania

Tryby działania

Asynchroniczny tryb normalny

W tym trybie komunikacji dane są przesyłane i odbierane bit po bicie bez impulsów zegarowych z predefiniowaną szybkością transmisji ustawioną przez rejestr UBBR.

Asynchroniczny tryb podwójnej prędkości

W tym trybie komunikacji dane przesyłane z podwójną szybkością transmisji są ustawiane przez rejestr UBBR i ustawiają bity U2X w rejestrze UCSRA. Jest to tryb wysokiej prędkości do komunikacji synchronicznej w celu szybkiego przesyłania i odbierania danych. Ten system jest używany tam, gdzie wymagane są dokładne ustawienia szybkości transmisji i zegara systemowego.

Tryb synchroniczny

W tym systemie wysyłanie i odbieranie danych w odniesieniu do impulsu zegara jest ustawione na UMSEL = 1 w rejestrze UCSRC.

Konfiguracja USART w mikrokontrolerze AVR

USART można skonfigurować za pomocą pięciu rejestrów, takich jak trzy rejestry kontrolne , jeden rejestr danych i rejestr wyboru szybkości transmisji, taki jak UDR, UCSRA, UCSRB, UCSRC i UBRR.

7 kroków tworzenia programu

Krok 1: Oblicz i ustaw szybkość transmisji

Szybkość transmisji USART / UART jest ustalana przez rejestratora UBRR. Rejestr ten służy do generowania transmisji danych z określoną prędkością. UBRR jest rejestrem 16-bitowym. Ponieważ AVR jest 8-bitowym mikrokontrolerem, a jego dowolny rozmiar rejestru jest 8-bitowy. Dlatego tutaj 16-bitowy rejestr UBRR składa się z dwóch 8-bitowych rejestrów, takich jak UBRR (H), UBRR (L).

Wzór na szybkość transmisji to

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

Formuła rejestru UBRR to

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

Częstotliwość mikrokontrolera AVR to 16MHz = 16000000 Załóżmy, że prędkość transmisji wynosi 19200Bps, a następnie

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

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

UBRR = 51,099

W końcu znajdź szybkość transmisji

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

Krok 2: Wybór trybu danych

Tryb transmisji danych, bit startu i bitu stopu oraz wielkość znaku są ustawiane przez rejestr sterujący i statusowy UCSRC.

Wybór trybu danych

Wybór trybu danych

Krok 3: Wybór trybu transmisji danych

Tryb synchroniczny i asynchroniczny jest wybierany przez bit UMSEL rejestru stanu sterowania. Jeśli podamy UMSEL = 0, to USART działa w trybie asynchronicznym, w przeciwnym razie działa w trybie synchronicznym.

Wybór trybu transmisji danych

Wybór trybu transmisji danych

Krok 4: Start Bit i Stop Bit

Bity startu i stopu służą do seryjnego wysyłania i odbierania danych. Generalnie każda sława danych składa się z jednego bitu statystycznego i jednego bitu stopu, ale mikrokontroler AVR ma jeden bit startu i dwa bity stopu do przetwarzania danych. Dodatkowy bit stopu może być przydatny w celu wydłużenia czasu przetwarzania odbioru. Jest to szczególnie przydatne w przypadku dużych szybkości przesyłania danych, podczas gdy szybkość przesyłania danych jest bardzo duża, więc nie otrzymujemy odpowiednich danych. W ten sposób możemy wydłużyć czas przetwarzania, używając dwóch bitów stopu, aby uzyskać odpowiednie dane.

Start Bit i Stop Bit

Start Bit i Stop Bit

Liczba bitów stopu jest wybierana przez bit USBS UCSRC - rejestru stanu sterowania. USBS = 0 dla jednego bitu stopu i USBS = 1 dla dwóch bitów stopu.

Krok 5: Ustaw rozmiar znaku

Podobnie jak w przypadku podstawowe mikrokontrolery wysyłanie i odbieranie bajtu danych (8 bitów) na raz, czy to w mikrokontrolerze AVR, możemy wybrać format ramki danych w każdej ramce za pomocą bitu UCSZ rejestru UCSRC.

Format ramki danych

Format ramki danych

Krok 6: Zapisz otrzymane dane

Mikrokontroler AVR składa się z rejestru buforowego UDR do przesyłania i odbierania danych. UDR jest 16-bitowym rejestrem buforowym, w którym 8-bitów jest używanych do odbierania (RXB) danych, a inne bity są używane do przesyłania danych (TXB). Rejestr bufora transmisji danych będzie miejscem docelowym dla rejestru UDR dla zapisanych danych o jego lokalizacji. Odbierający rejestr buforowy danych zwróci zawartość rejestru UDR.

Krok 7: Włączanie nadajnika i odbiornika

Przesyłane i odbierane dane będą dozwolone przez piny RXC i TXC mikrokontrolera, które są ustawiane przez rejestr UCSRA mikrokontrolera. Ten bit flagi ustawiony przez mikrokontroler dla danych jest uzupełniany przez odbiór i transmisję (TXC = RXC = 1).

Podwój szybkość transmisji

Możemy podwoić szybkość transmisji komunikacji USART AVR mikrokontroler od 16 bitów do 8 bitów efektywnie przez bit U2X w rejestrze UCSRA. Ten bit ma wpływ tylko na działanie asynchroniczne. Jeśli możemy ustawić ten bit (U2X = 1), zmniejszy to szybkość transmisji z 16 do 8 bitów, skutecznie podwajając szybkość transmisji dla komunikacji synchronicznej.

Jest to zaawansowana funkcja mikrokontrolera AVR do szybkiego przetwarzania danych.

Program USART

Każdy mikrokontroler ma predefiniowane określone IDE i bazuje na tym IDE, mikrokontrolery są programowane za pomocą wbudowanego C lub język asemblera. Programowanie mikrokontrolerów AVR zostało opracowane przez studio AVR. Ponadto, jeśli chcesz uzyskać dodatkowe informacje na temat kroki tworzenia projektów opartych na mikrokontrolerach , lub szczegółowe informacje na ten temat, możesz skontaktować się z nami, komentując poniżej.