Forum: Mikrocontroller und Digitale Elektronik Atmega-USART: U2X


von mr.chip (Gast)


Lesenswert?

Hallo

Der Atmega32 (vermutlich auch die anderen Megas) haben in der
USART-Konfiguration ein Bit, das die Baudrate verdoppelt, indem ein
Taktteiler halbiert wird. Doch was hat das für einen Sinn? Warum setzt
man ggf. nicht einfach die Baudrate doppelt so hoch bzw. warum wird
dieser Taktteiler nicht von Haus aus halbiert, wenn doch so eine
schnellere Übertragung möglich ist?

Auszug aus dem Datenblatt des Mega32:

Bit 1 – U2X: Double the USART Transmission Speed

This bit only has effect for the asynchronous operation. Write this bit
to zero when using
synchronous operation.
Writing this bit to one will reduce the divisor of the baud rate
divider from 16 to 8 effectively
doubling the transfer rate for asynchronous communication.


Gruss

Michael

von Ingo H. (putzlowitsch)


Lesenswert?

Wenn man direkt bei der Beschreibung zum U2X nachliest, steht da noch
folgendes:
"Note however that the Receiver will in this case only use half the
number of samples (reduced from 16 to 8) for data sampling and clock
recovery, and therefore a more accurate baud rate setting and system
clock are required when this mode is used. For the Transmitter, there
are no downsides."

Man erkauft sich die höhere mögliche Baudrate also mit einer größeren
Fehleranfälligkeit beim Empfang.

Gruß
Ingo

von mr.chip (Gast)


Lesenswert?

Hallo

Achsoo läuft das ;-) Hätte ja auch selbst darauf kommen können, mal
noch etwas weiter im Datenblatt zu lesen.

Ich habs nun mal ausprobiert: Atmega32, 4 MHz Quarzoszillator, ich
schreibe ins Windows Hyperterminal, der Controller schickt es zurück.
Noch ohne aktiviertes U2X.
9600 Baud, funktioniert.
19200 Baud, funktioniert.
38400 Baud, funktioniert nicht mehr.
38400 Baud, mit aktiviertem U2X, funktioniert! Habe beim "chatten"
mit dem Controller bisher keinen Übertragungsfehler feststellen können.
Da ich relativ unkritische Daten (Bilder einer Kamera) übertragen will,
könnte ich ab und an einen Ausrutscher auch verzeihen.

Gruss

Michael

von Ingo H. (putzlowitsch)


Angehängte Dateien:

Lesenswert?

Was nicht weiter verwunderlich ist, ergibt sich doch ohne U2X bei 4MHz
und 38400 Baud ein Fehler von etwa -7%, mit U2X aber nur tolerable
0,16% (siehe Tabelle).

Gruß
Ingo

von Rahul (Gast)


Lesenswert?

@Ingo: Da hast du aber eine schöne Tabelle gemacht. Die könnte man aber
auch im Datenblatt auf Seite 164 finden... ;-)

von mr.chip (Gast)


Lesenswert?

So gesehen ist also U2X eine Art Entscheidung Qualität vs.
Geschwindigkeit. Da ich bisland keine Probleme hatte mit gesetztem U2X,
werde ich wohl mal dabei bleiben.

Was mich aber sehr interessieren würde: Wann muss denn mit
Übertragungsfehlern, begünstigt durch U2X=1, gerechnet werden? Wenn die
Baudrate voll ausgeschöpft wird? Bei schlechteren Signalen durch
Störungen/lange Leitung? Wenn die Gegenseite selbst nicht ganz sauber
(z.B. Baudrate oder Signalform) sendet?

Gruss

Michael

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.