ATXMega32 und USART Stop Bits

OP #3718282
Lesenswert?

Hallo!

Ach irgendwie stell ich mich grad sehr blöd an. Ich finds einfach in 
keinem Datenblatt und googel möchte mir auch nicht helfen...

Also, wie sag ich denn meinem XMega32, dass er für seine USART 
Verbindung 2 Stop Bits verwenden soll?

Momentan initialisiere ich meinen UART so, wobei BAUD_PRESCALED0 an 
anderer Stelle definiert wird:
1
USARTD0.BAUDCTRLA = BAUD_PRESCALED0;
2
USARTD0.BAUDCTRLB = (BAUD_PRESCALED0 >> 8);
3
USARTD0.CTRLA = USART_RXCINTLVL_HI_gc;
4
USARTD0.CTRLB = USART_RXEN_bm;
5
//Asynchrone Übertragung, Kein Parity Bit, 8 Bit Zeichengröße:
6
USARTD0.CTRLC = USART_CMODE_ASYNCHRONOUS_gc | USART_PMODE_DISABLED_gc | USART_CHSIZE_8BIT_gc;

Das ist allerdings die Initialisierung für die Übertragung mit einem 
Stopbit.
Welches Bit muss ich für die Übertragung mit zwei Stopbits für den 
XMega32A4U setzen, wie sieht der C Code dafür aus?

Sorry, für die (vermeintlich) einfache Frage. Wahrscheinlich bin ich 
grad einfach blind...

Grüße
Matthias
OP #3718360
Lesenswert?

Rufus Τ. Firefly schrieb:
> Steht das denn nicht im Datenblatt?

Ja, sollte man eigentlich meinen. Wie gesagt, ich hab nichts gefunden... 
Tunnelblick, oder so.

m.n. schrieb:
> Matthias K. schrieb:
>> USARTD0.CTRLC = USART_CMODE_ASYNCHRONOUS_gc | USART_PMODE_DISABLED_gc |
>> USART_CHSIZE_8BIT_gc;
>
> SBMODE = 1 fehlt; kann leider nur Essembler :-(

Aha, also in etwa so:
1
USARTD0.CTRLC = 0b00001011

Danke für den Hinweis!
Gast #3718378
Lesenswert?

Ich denke so:

//Asynchrone Übertragung, Kein Parity Bit, 8 Bit Zeichengröße, 2 
Stop-Bit:
USARTD0.CTRLC = USART_CMODE_ASYNCHRONOUS_gc | USART_PMODE_DISABLED_gc | 
USART_CHSIZE_8BIT_gc | USART_SBMODE_bm;

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren