Atmega644 - USART frame format

Gast #1109401
Hallo Leute!

Ich habe ein Verständnis Problem was das Einstellen des USART (RS232) 
frame formats angeht.
Ich nutze einen Atmega 644 und AVR Studio.

Zitat aus dem Datenblatt:
"The frame format used by the USART is set by the UCSZn2:0, UPMn1:0 and 
USBSn bits in UCSRnB and UCSRnC. The Receiver and Transmitter use the 
same setting. Note that changing the setting of any of these bits will 
corrupt all ongoing communication for both the Receiver and Transmitter.
The USART Character SiZe (UCSZn2:0) bits select the number of data bits 
in the frame. The USART Parity mode (UPMn1:0) bits enable and set the 
type of parity bit. The selection between one or two stop bits is done 
by the USART Stop Bit Select (USBSn) bit. The Receiver ignores the 
second stop bit. An FE (Frame Error) will therefore only be detected in 
the cases where the
first stop bit is zero."

Also, nehmen wir mal an, dass ich einstellen möchte:
8 Datenbits, 1 Start, 1 Stoppbit und ungerades ParitätsBit.

Woher genau soll ich jetzt wissen, wie das geht?

- 8 Datenbits, sollen also im UCSZn2:0 (wofür steht 2:0?) eingestellt 
werden. Das Register gibt es im UCSR0C und UCSR0B Register. Ich denke 
ersteres ist richtig. UCSZ ist im UCSR0C lediglich 2 Bit groß. Wie soll 
ich denn da 0-8 Bits einstellen?

- Partität: Was muss ich jetzt für ungerades in UPM schreiben?

1 Startbit ist default, oder?
Ins USBSn muss vermutlich nur eine 1?

Und noch allgemein:
zB UPM0 bezeichnet Bit 5 und 6 vom Register UCSR0C. Bedeutet das 
einfach, dass UPM0 eine Konstante mit dem Wert 4 ist?

Oder warum macht anscheinend sowas hier Sinn?
UCSR0B = (1<<RXEN0)


Okay, viele Fragen. Ich hoffe ihr könnt mir schnell weiterhelfen!
Gast #1109405
UCSZn2:0 bedeutet es gibt UCSZn2, UCSZn1, UCSZn0, das n wird ersetzt, 
denn es gibt 2 UARTs. Neben dem Text gibt es jeweils auch noch ein 
Schema, wie die bis angeordnet sind. Schau dir das mal an.
Gast #1109444
Hallo und danke für deine schnelle Antwort!

Hmm..ich kann leider nur 2 der UCSZn2, UCSZn1, UCSZn0 entdecken, nämlich 
UCSZ0 und UCSZ02.

Du meinst vermutlich Tabelle 17.4 (soweit du das gleiche Datenblatt) 
benutzt. Da verstehe ich jedoch nicht, inwiefern mir das hier 
weiterhelfen kann. Das Bild zeigt für mich lediglich, wie so ein 
gesendetes "wort" aussieht. Das sagt mir doch nicht, wie ich das format 
einzustellen habe?

hm...

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.