die usart beim atmega8 rs232 register und ihre bits
TRANSCRIPT
Die USART beim ATmega8
RS232
Register und ihre Bits
Inhalt
UCSRA
UCSRB
UCSRC
UDR
UBRRL/UBRRH
BEENDEN
UDR - USART I/O Data Register
Buffer zum Senden und Empfangen
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
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
UBRRL / UBRRH - USART Baud Rate Registers
Einstellung der Baudrate
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
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
UCSRA – USART Control and Status Register A
Steuerung der Übertragung
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
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
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
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
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
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
UCSRB – USART Control and Status Register B
Interrupts & Steuerungsbits
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
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
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
UCSRC – USART Control and Status Register C
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
USART Control and Status Register C
UPM1:UPM0 – Parity Mode
Inhalt
USART Control and Status Register C
USBS – Stop Bit Select Amzahl der Stopbits, die der Transmitter einfügt
Inhalt
USART Control and Status Register C
USZ1:USZ0 – Character Size USZ2 befindet sich im UCSRB Vom Receiver und Transmitter verwendete Datensatzgröße
Inhalt
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
Auf die Richtigkeit der Inhalte geben wir keine Gewähr.
...sie sind garantiert falsch!