1 / 26

Die USART beim ATmega8

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

saima
Download Presentation

Die USART beim ATmega8

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Die USART beim ATmega8 RS232 Register und ihre Bits

  2. Inhalt UDR UCSRA UBRRL/UBRRH UCSRB BEENDEN UCSRC

  3. UDR - USART I/O Data Register Buffer zum Senden und Empfangen

  4. 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

  5. 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

  6. UBRRL / UBRRH - USART Baud Rate Registers Einstellung der Baudrate

  7. 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

  8. 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

  9. UCSRA – USART Control and Status Register A Steuerung der Übertragung

  10. 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)

  11. 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)

  12. 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)

  13. 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

  14. 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

  15. 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

  16. UCSRB – USART Control and Status Register B Interrupts & Steuerungsbits

  17. 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)

  18. 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

  19. 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

  20. UCSRC – USART Control and Status Register C

  21. 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

  22. Inhalt USART Control and Status Register C • UPM1:UPM0 – Parity Mode

  23. Inhalt USART Control and Status Register C • USBS – Stop Bit Select • Amzahl der Stopbits, die der Transmitter einfügt

  24. Inhalt USART Control and Status Register C • USZ1:USZ0 – Character Size • USZ2 befindet sich im UCSRB • Vom Receiver und Transmitter verwendete Datensatzgröße

  25. 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)

  26. Auf die Richtigkeit der Inhalte geben wir keine Gewähr. ...sie sind garantiert falsch!

More Related