26
Die USART beim ATmega8 RS232 Register und ihre Bits

Die USART beim ATmega8 RS232 Register und ihre Bits

Embed Size (px)

Citation preview

Page 1: Die USART beim ATmega8 RS232 Register und ihre Bits

Die USART beim ATmega8

RS232

Register und ihre Bits

Page 2: Die USART beim ATmega8 RS232 Register und ihre Bits

Inhalt

UCSRA

UCSRB

UCSRC

UDR

UBRRL/UBRRH

BEENDEN

Page 3: Die USART beim ATmega8 RS232 Register und ihre Bits

UDR - USART I/O Data Register

Buffer zum Senden und Empfangen

Page 4: Die USART beim ATmega8 RS232 Register und ihre Bits

USART I/O Data Register

RXB und TXB teilen sich eine AdresseRXB – Receive Data Buffer Register Enthält empfangene Daten Receive Buffer enthält einen FIFO (first in - first out) mit 2

Pegeln Receive Buffer ändert sich bei jedem Zugriff

Also keine Read-Modify-Write Befehle (wie SBI und CBI) und Bittest-Befehle (wie SBIC und SBIS) verwenden – sonst ändert sich der FIFO

Inhalt

Page 5: Die USART beim ATmega8 RS232 Register und ihre Bits

USART I/O Data Register

TXB – Transmit Data Buffer Register Hier werden Daten zum Senden reingeschrieben UDRE Flag im UCSRA muss gesetzt sein, sonst werden die

Daten vom Transmitter ignoriert Werden die Daten in den Transmit Buffer geschrieben, wenn

der Transmitter freigeschaltet ist, werden die Daten in das Transmit Shift Register geladen, sobald dieses frei ist, dann werden die Daten seriell am PIN TxD ausgegeben

Inhalt

Page 6: Die USART beim ATmega8 RS232 Register und ihre Bits

UBRRL / UBRRH - USART Baud Rate Registers

Einstellung der Baudrate

Page 7: Die USART beim ATmega8 RS232 Register und ihre Bits

USART Baud Rate Registers

Bit 15 – URSEL: USART Register Select Bestimmt, ob auf UCSRC oder UBRRH zugegriffen wird Muss 0 sein, wenn in das UBRRH geschrieben wird

BIT 14:12 – Reserved Bits Sind für die Zukunft reserviert, um die Kompatibilität mit

zukünftigen Versionen zu gewährleisten Müssen 0 gesetzt werden

Inhalt

Page 8: Die USART beim ATmega8 RS232 Register und ihre Bits

USART Baud Rate Registers

BIT 11:0 – UBRR: USART Baud Rate Register 12-Bit-Register: beinhaltet USART Baud Rate UBRRH enthält die höherwertigeren Bits, UBRRL die minderwertigeren

Bits Wenn sich die Baud Rate ändert, wird die Datenübertragung sofort gestoppt Wird UBRRL geändert, hat dies sofortige Auswirkungen auf die Baud Rate

Inhalt

Page 9: Die USART beim ATmega8 RS232 Register und ihre Bits

UCSRA – USART Control and Status Register A

Steuerung der Übertragung

Page 10: Die USART beim ATmega8 RS232 Register und ihre Bits

USART Control and Status Register A

RXC – USART Receive Complete Gesetzt, wenn sich ungelesene Daten im Receive

Buffer befinden Wenn der Receiver nicht aktiviert ist, ist der Receive

Buffer leer und das RXC-Flag immer 0 Kann auch verwendet werden, um ein Receive

Complete Interrupt zu erzeugen (siehe RXCIE im UCSRB)

Inhalt

Page 11: Die USART beim ATmega8 RS232 Register und ihre Bits

USART Control and Status Register A

TXC – USART Transmit Complete Gesetzt, wenn der komplette Rahmen im Transmit Shift Register

rausgeschoben wurde und sich momentan keine neuen Daten im Transmit Buffer (UDR) befinden

Das Flag wird automatisch gelöscht, wenn ein Transmit Complete Interrupt ausgeführt wurde, allerdings kann dieses Ereignis auch vorgetäuscht werden, indem man an die dementsprechende Stelle eine 1 setzt

Kann auch verwendet werden, um ein Transmit Complete Interrupt zu erzeugen (siehe TXCIE im UCSRB)

Inhalt

Page 12: Die USART beim ATmega8 RS232 Register und ihre Bits

USART Control and Status Register A

UDRE – USART Data Register Empty Zeigt an, ob der Transmit Buffer (UDR) bereit ist, neue

Daten empfangen 1 = Buffer leer, Transmit Buffer bereit Nach einem Reset gesetzt, um anzuzeigen, das Transmitter

bereit UDRE-Flag kann Data Register Empty Interrupt

erzeugen (siehe UDRIE im UCSRB)

Inhalt

Page 13: Die USART beim ATmega8 RS232 Register und ihre Bits

USART Control and Status Register A

FE – Frame Error 1 = Frame Error beim Empfangen aufgetreten

Erstes Stop Bit vom nächstem Datensatz im Receive Buffer ist 0 Bit bleibt gesetzt bis der Receive Buffer (UDR) ausgelesen wird 0 = Stop Bit ist 1 -> alles in Ordnung Auf 0 setzten, wenn UCSRA beschrieben werden soll

PE – Parity Error 1= Parity Error aufgetreten (geht nur wenn UPM1=1 (siehe UCSRC)) Rest ähnlich Frame Error

Inhalt

Page 14: Die USART beim ATmega8 RS232 Register und ihre Bits

USART Control and Status Register A

DOR – Data OverRun 1 = Datenüberlauf entdeckt

Tritt auf, wenn der Receive Buffer voll (2 Datensätze) ist, sich ein neuer Datensatz im Receive Shift Register befindet und ein neues Startbit entdeckt wurde

Bit bleibt gesetzt bis der Receive Buffer (UDR) ausgelesen wird

Beim ins UCSRA schreiben immer auf 0 setzten

Inhalt

Page 15: Die USART beim ATmega8 RS232 Register und ihre Bits

USART Control and Status Register A

U2X – Double the USART transmission speed Hat nur beim asynchronen Modus eine Auswirkung, sollte beim synchronen

Modus auf 0 gesetzt werden Wenn gesetzt wird der Teiler der Baud Rate von 16 auf 8 gesetzt, was die

Geschwindigkeit verdoppelt

MPCM – Multi-processor Communication Mode Aktiviert Multi-processor Communication Mode 1 = es werden alle eintreffenden Frames ignoriert, die keine Adressinformationen

enthalten, der Transmitter wird nicht beeinflusst Multi-processor Communication Mode wird im Datenblatt auf S151 genauer

beschrieben

Inhalt

Page 16: Die USART beim ATmega8 RS232 Register und ihre Bits

UCSRB – USART Control and Status Register B

Interrupts & Steuerungsbits

Page 17: Die USART beim ATmega8 RS232 Register und ihre Bits

USART Control and Status Register B

RXCIE – RX Complete Interrupt Enable Aktiviert Interrupt vom RXC Flag (UCSRA)

TXCIE – TX Complete Interrupt Enable Aktiviert Interrupt vom TXC Flag (UCSRA)

UDRIE – USART Data Register Empty Interrupt Enable Aktiviert Interrupt vom UDRE Flag (UCSRA)

Inhalt

Page 18: Die USART beim ATmega8 RS232 Register und ihre Bits

USART Control and Status Register B

RXEN – Receiver Enable Aktiviert Receiver (überschreibt RxD Pin)

TXEN – Transmitter Enable Aktiviert Transmitter (überschreibt TxD Pin)

UCSZ2 – Character Size Legt zusammen mit UCSZ1:0 (UCSRC) die Größe

eines einzelnen Datensatzes fest

Inhalt

Page 19: Die USART beim ATmega8 RS232 Register und ihre Bits

USART Control and Status Register B

RXB8 – Receive Data Bit 8 Für serielle Frames Neuntes Bit der empfangenen Daten, wenn Frame so groß Muss eingelesen werden, bevor die Low Bits im UDR eingelesen werden

TXB8 - Transmit Data Bit 8 Für serielle Frames Neuntes Bit der zu sendenen Daten, wenn Frame so groß Muss geschrieben werden, bevor die Low Bits im UDR geschrieben

werden

Inhalt

Page 20: Die USART beim ATmega8 RS232 Register und ihre Bits

UCSRC – USART Control and Status Register C

Page 21: Die USART beim ATmega8 RS232 Register und ihre Bits

USART Control and Status Register C

URSEL – Register Select Bestimmt, ob auf UCSRC oder UBRRH zugegriffen wird Muss 1 sein, wenn in das UCSRC geschrieben wird

UMSEL – USART Mode Select Bestimmt ob Synchron oder asynchron übertragen wird

Inhalt

Page 22: Die USART beim ATmega8 RS232 Register und ihre Bits

USART Control and Status Register C

UPM1:UPM0 – Parity Mode

Inhalt

Page 23: Die USART beim ATmega8 RS232 Register und ihre Bits

USART Control and Status Register C

USBS – Stop Bit Select Amzahl der Stopbits, die der Transmitter einfügt

Inhalt

Page 24: Die USART beim ATmega8 RS232 Register und ihre Bits

USART Control and Status Register C

USZ1:USZ0 – Character Size USZ2 befindet sich im UCSRB Vom Receiver und Transmitter verwendete Datensatzgröße

Inhalt

Page 25: Die USART beim ATmega8 RS232 Register und ihre Bits

USART Control and Status Register C

UCPOL – Clock Polarity Nur für den synchronen Modus, beim asynchronen auf 0 setzen Bestimmt das Verhalten von folgenden Komponenten zueinander:

der Data Output Änderung der Input Abtastrate Des synchronen Takts (XCK)

Inhalt

Page 26: Die USART beim ATmega8 RS232 Register und ihre Bits

Auf die Richtigkeit der Inhalte geben wir keine Gewähr.

...sie sind garantiert falsch!