260 likes | 373 Views
Die USART beim ATmega8. RS232 Register und ihre Bits. Inhalt. UDR. UCSRA. UBRRL/UBRRH. UCSRB. BEENDEN. UCSRC. UDR - USART I/O Data Register. Buffer zum Senden und Empfangen. Inhalt. USART I/O Data Register. RXB und TXB teilen sich eine Adresse RXB – Receive Data Buffer Register
E N D
Die USART beim ATmega8 RS232 Register und ihre Bits
Inhalt UDR UCSRA UBRRL/UBRRH UCSRB BEENDEN UCSRC
UDR - USART I/O Data Register Buffer zum Senden und Empfangen
Inhalt USART I/O Data Register • RXB und TXB teilen sich eine Adresse • RXB – 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
UBRRL / UBRRH - USART Baud Rate Registers Einstellung der Baudrate
Inhalt 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
UCSRA – USART Control and Status Register A Steuerung der Übertragung
Inhalt 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
UCSRB – USART Control and Status Register B Interrupts & Steuerungsbits
Inhalt 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 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)
Auf die Richtigkeit der Inhalte geben wir keine Gewähr. ...sie sind garantiert falsch!