Forum: Mikrocontroller und Digitale Elektronik UART stabile Übertragung (Timouts)


von Tim (Gast)


Lesenswert?

Hi,

ich frage einen ADC mit einem Atmega (16MHz) ab und schiebe die Daten 
über UART zu einem FT232 und so über USB an den Computer. Nun wollte ich 
meine Abtastfrequenz erhöhen und habe dazu die Baudrate von 9600 auf 
115200 erhöht. Allerdings kommt es nun zwischendurch und zufällig zu 
Timeouts (ungefähr alle 10 Werte). Liegt es daran, dass ich meine 
berechnete Baudrate auf einen ganzzahligen Wert gerundet habe bzw. würde 
ein Grundtonquarz von bspw 14,7456 MHz helfen?

Vielen Dank

von Peter Z. (hangloose)


Lesenswert?

Bei einem 16 MHz Quarz hast du einen Baudraten Fehler von 3,7% bei 
115200
im Gegensatz zu 0,2% bei 9600

Ein 14,7456 MHz Quarz hilft natürlich bezüglich der Baudrate.

Aber vielleicht liegt ja dein Problem auch wo anders?

von Dietrich L. (dietrichl)


Lesenswert?

Tim schrieb:
> Liegt es daran, dass ich meine
> berechnete Baudrate auf einen ganzzahligen Wert gerundet habe bzw. würde
> ein Grundtonquarz von bspw 14,7456 MHz helfen?

Bei 16MHz und 115200 ist der Baudratenfehler schon -3,5% (U2X=0) bzw. 
+2,1% (U2X=1). Das ist vermutlich zu viel. Bei 14,7456 MHz ist der 
Fehler =0 :-))

Gruß Dietrich

von spess53 (Gast)


Lesenswert?

Hi

>Liegt es daran, dass ich meine
>berechnete Baudrate auf einen ganzzahligen Wert gerundet habe

115200 Bd bei 16MHz gibt einen Baudratenfehler von -3,5%. Ist zwar nicht 
ganz im grünen Bereich aber noch innerhalb der zulässigen Grenzen. Teste 
mal, ob es mit 2 Stoppbits besser wird.

>bzw. würde ein Grundtonquarz von bspw 14,7456 MHz helfen?

Ja.

MfG Spess

von Stefan (Gast)


Lesenswert?

Mag sein dass 3,5% noch im erlaubten Bereich sind. Aber der FT232 hat ja 
auch noch eine Abweichung (wenn er ohne Quarz betrieben wird).

von Malte S. (maltest)


Lesenswert?

Bei 16 MHz laufen 1 (U2X=0) bzw 2 (U2X=1)  Mbaud (UBRR=0) mit dem FT232 
sehr zuverlässig. Mag ja Overkill sein, steht aber in gutem Verhältnis 
zu den 16MHz.

von Ingo (Gast)


Lesenswert?

Jepp, 1MBd sind kein Problem

von spess53 (Gast)


Lesenswert?

Hi

>Jepp, 1MBd sind kein Problem

Ist ja auch kein Wunder da die UART intern mit dem 16 bzw. 8 fachen Takt 
der Baudrate läuft. Das gibt bei 16MHz schöne glatte Teiler.

MfG Spess

von Tim (Gast)


Lesenswert?

Ich bin auf den DoubleSpeed-Modus gegangen und habe den Baudratenwert 
angepasst, der passt besser. Nun gibt es auch bei 1000-Werten kein 
Timeout.

Vielen Dank für eure Hilfe

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.