AVR Microcontroller (Atmel 8) Serielle Kommunikation USART-Konfiguration

Versuchen Sie Unser Instrument, Um Probleme Zu Beseitigen





Der Mikrocontroller ist ein Steuergerät, das eine Reihe von Peripheriegeräten wie RAM, ROM TIMERS, enthält. serielle Datenkommunikation usw., die erforderlich sind, um einige vordefinierte Aufgaben auszuführen. Heutzutage, fortschrittliche Art von Mikrocontrollern werden in einer Vielzahl von Anwendungen verwendet, je nach ihrer Fähigkeit und Durchführbarkeit, einige gewünschte Aufgaben auszuführen, und diese Steuerungen umfassen 8051, AVR und PIC Mikrocontroller . In diesem Artikel lernen wir den Mikrocontroller der fortschrittlichen AVR-Familie und seine Programmierung kennen .

AVR-Mikrocontroller

Der AVR ist eine Art Steuergerät, das 1996 von der Atmel Corporation hergestellt wurde. Der AVR steht für nichts, es ist nur ein Name. Der AVR Mikrocontroller bestehen aus der Harvard-Architektur Daher läuft das Gerät sehr schnell mit einer reduzierten Anzahl von Anweisungen auf Maschinenebene (RISC). Die AVR-Mikrocontroller weisen im Vergleich zu anderen Mikrocontrollern spezielle Funktionen auf, z. B. 6-Schlaf-Modi, eingebauter ADC, interner Oszillator und serielle Datenkommunikation usw. AVR-Mikrocontroller sind in verschiedenen Konfigurationen von 8-Bit, 16-Bit und 32-Bit verfügbar, um verschiedene Operationen auszuführen.




AVR-Mikrocontroller

AVR-Mikrocontroller

USART Serial Data Communication im AVR-Mikrocontroller

Der USART steht für universellen synchronen und asynchronen Empfänger und Sender. Es ist eine serielle Kommunikation zweier Protokolle. Dieses Protokoll wird zum Senden und Empfangen der Daten Bit für Bit in Bezug auf Taktimpulse auf einer einzelnen Leitung verwendet. Das AVR-Mikrocontroller hat zwei Pins: TXD und RXD, die speziell zum seriellen Senden und Empfangen der Daten verwendet werden. Jeder AVR-Mikrocontroller besteht aus einem USART-Protokoll mit eigenen Funktionen.



USART-Kommunikation im AVR-Mikrocontroller

USART-Kommunikation im AVR-Mikrocontroller

Die Hauptfunktionen von AVR USART

  • Das USART-Protokoll unterstützt das Vollduplex-Protokoll.
  • Es erzeugt eine hochauflösende Baudrate.
  • Es unterstützt die Übertragung serieller Datenbits von 5 bis 9 und besteht aus zwei Stoppbits.

USART Pin Konfiguration

Der USART von AVR besteht aus drei Pins:


  • RXD: USART-Empfängerstift (ATMega8 PIN 2 ATMega16 / 32 Pin 14)
  • TXD: USART-Senderstift (ATMega8 PIN 3 ATMega16 / 32 Pin 15)
  • XCK: USART Clock Pin (ATMega8 PIN 6 ATMega16 / 32 Pin 1)

Betriebsarten

Der AVR-Mikrocontroller des USART-Protokolls arbeitet in drei Modi:

  • Asynchroner Normalmodus
  • Asynchroner Doppelgeschwindigkeitsmodus
  • Synchroner Modus
Betriebsarten

Betriebsarten

Asynchroner Normalmodus

In diesem Kommunikationsmodus werden die Daten Stück für Stück ohne Taktimpulse durch die vom UBBR-Register festgelegte vordefinierte Baudrate gesendet und empfangen.

Asynchroner Doppelgeschwindigkeitsmodus

In diesem Kommunikationsmodus werden die mit der doppelten Baudrate übertragenen Daten vom UBBR-Register gesetzt und U2X-Bits im UCSRA-Register gesetzt. Dies ist ein Hochgeschwindigkeitsmodus für die synchrone Kommunikation zum schnellen Senden und Empfangen der Daten. Dieses System wird verwendet, wenn genaue Einstellungen der Baudrate und der Systemuhr erforderlich sind.

Synchroner Modus

In diesem System wird das Senden und Empfangen der Daten in Bezug auf den Taktimpuls im UCSRC-Register auf UMSEL = 1 gesetzt.

USART-Konfiguration Im AVR-Mikrocontroller

USART kann mit fünf Registern konfiguriert werden, z drei Steuerregister ein Datenregister und ein Baudratenauswahlregister, wie UDR, UCSRA, UCSRB, UCSRC und UBRR.

7 Schritte zum Erstellen des Programms

Schritt 1: Berechnen und stellen Sie die Baudrate ein

Die Baudrate von USART / UART wird vom UBRR-Registrar festgelegt. Dieses Register wird verwendet, um die Datenübertragung mit der spezifischen Geschwindigkeit zu erzeugen. Das UBRR ist ein 16-Bit-Register. Da der AVR ein 8-Bit-Mikrocontroller ist und seine beliebige Registergröße 8-Bit beträgt. Daher besteht hier das 16-Bit-UBRR-Register aus zwei 8-Bit-Registern wie UBRR (H), UBRR (L).

Die Formel der Baudrate lautet

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

Die Formel des UBRR-Registers lautet

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

Die Frequenz des AVR-Mikrocontrollers beträgt 16 MHz = 16000000. Nehmen wir also die Baudrate als 19200 Bps an

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

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

UBRR = 51,099

Finden Sie schließlich die Baudrate

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

Schritt 2: Auswahl des Datenmodus

Der Datenübertragungsmodus, das Startbit und das Stoppbit sowie die Zeichengröße werden vom Steuer- und Statusregister UCSRC eingestellt.

Auswahl des Datenmodus

Auswahl des Datenmodus

Schritt 3: Auswahl des Datenübertragungsmodus

Der synchrone und asynchrone Modus wird durch das UMSEL-Bit des Steuerstatusregisters ausgewählt. Wenn wir UMSEL = 0 geben, arbeitet der USART im asynchronen Modus, andernfalls im synchronen Modus.

Auswahl des Datenübertragungsmodus

Auswahl des Datenübertragungsmodus

Schritt 4: Startbit und Stoppbit

Das Startbit und das Stoppbit sind eine Möglichkeit zum seriellen Senden und Empfangen der Daten. Im Allgemeinen besteht jeder Datenruhm aus einem Statistikbit und einem Stoppbit, aber der AVR-Mikrocontroller verfügt über ein Startbit und zwei Stoppbits zum Verarbeiten der Daten. Das zusätzliche Stoppbit kann nützlich sein, um ein wenig zusätzliche Empfangsverarbeitungszeit hinzuzufügen. Dies ist besonders nützlich für hohe Datenübertragungsraten, während die Datenübertragungsgeschwindigkeit sehr hoch ist, sodass wir keine richtigen Daten erhalten. Somit können wir die Verarbeitungszeit erhöhen, indem wir zwei Stoppbits verwenden, um die richtigen Daten zu erhalten.

Startbit und Stoppbit

Startbit und Stoppbit

Die Anzahl der Stoppbits wird durch das USBS-Bit von UCSRC - das Steuerstatusregister - ausgewählt. USBS = 0 für ein Stoppbit und USBS = 1 für zwei Stoppbits.

Schritt 5: Stellen Sie die Zeichengröße ein

Wie im Fall mit dem grundlegende Mikrocontroller Senden und Empfangen des Datenbytes (8 Bit) gleichzeitig, unabhängig davon, ob in einem AVR-Mikrocontroller ein Datenrahmenformat in jedem Rahmen durch das UCSZ-Bit des UCSRC-Registers ausgewählt werden kann.

Datenrahmenformat

Datenrahmenformat

Schritt 6: Speichern Sie die empfangenen Daten

Der AVR-Mikrocontroller besteht aus einem UDR-Pufferregister zum Senden und Empfangen von Daten. Der UDR ist ein 16-Bit-Pufferregister, in dem 8-Bit zum Empfangen (RXB) der Daten und andere Bits zum Senden der Daten (TXB) verwendet werden. Das sendende Datenpufferregister ist das Ziel des UDR-Registers für die geschriebenen Daten an seinem Ort. Das Empfangen des Datenpufferregisters gibt den Inhalt des UDR-Registers zurück.

Schritt 7: Sender- und Empfängeraktivierung

Die gesendeten und empfangenen Daten werden von den RXC- und TXC-Pins des Mikrocontrollers zugelassen, die vom UCSRA-Register des Mikrocontrollers eingestellt werden. Dieses vom Mikrocontroller für die Daten gesetzte Flag-Bit wird durch Empfangen und Senden vervollständigt (TXC = RXC = 1).

Verdoppeln Sie die Baudrate

Wir können die Übertragungsrate der USART-Kommunikation des AVR verdoppeln Mikrocontroller von 16 Bit bis 8 Bit effektiv durch das U2X-Bit im UCSRA-Register. Dieses Bit wirkt sich nur auf den asynchronen Betrieb aus. Wenn wir dieses Bit setzen können (U2X = 1), wird die Baudrate von 16 Bit auf 8 Bit reduziert und die Übertragungsrate für die synchrone Kommunikation effektiv verdoppelt.

Dies ist eine erweiterte Funktion des AVR-Mikrocontrollers für die schnelle Verarbeitung der Daten.

USART-Programm

Jeder Mikrocontroller ist mit einer bestimmten IDE vordefiniert und basiert auf dieser IDE. Mikrocontroller sind mit eingebettetem C programmiert oder Assemblersprache. Die AVR-Mikrocontroller-Programmierung wird vom AVR-Studio entwickelt. Darüber hinaus, wenn Sie zusätzliche Informationen über die möchten Schritte zum Erstellen von Mikrocontroller-basierten Projekten oder detaillierte Informationen zu diesem Thema können Sie uns kontaktieren, indem Sie unten einen Kommentar abgeben.