Forum: Mikrocontroller und Digitale Elektronik uart baudrate


von Florian Z. (zoechi)


Lesenswert?

schönen sonntag morgen,

...und zwar möchte ich eine uart übertragung mit 921600 bps zustande 
bekommen. bei meinem c# programm ist es ja kein problem 921600 bps 
einzustellen - aber beim controller (verwende einen atmega128a) finden 
sich ja in der baudratenliste nur 0.5 und 1 Mbps: sprich die 921600 
stehen nicht drin. kann ich nun trotzdem einfach im UBRR-register 0 
einstellen und das ganze funktioniert dann? (hätte in diesem fall vor 
einen 14.7456 MHz Quarz zu verwenden.)

in diesem thread les ich raus dass es funktionieren müsste:
http://www.embeddedrelated.com/usenet/embedded/show/8794-1.php

kann aber auch sein dass ich etwas übersehen oder falsch verstanden 
habe.

mfg zoechi

von spess53 (Gast)


Lesenswert?

Hi

Der Baudratenfehler liegt bei 1%. Also im grünen Bereich. Nur wozu 
braucht man 921600 bps?

MfG Spess

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Such mal hier im Forum nach dieser Zahl. Die taucht andauernd auf:
http://www.mikrocontroller.net/search?query=921600&forums[]=1&forums[]=19&forums[]=9&forums[]=10&forums[]=2&forums[]=4&forums[]=3&forums[]=6&forums[]=17&forums[]=11&forums[]=8&forums[]=14&forums[]=12&forums[]=7&forums[]=5&forums[]=18&forums[]=15&forums[]=13&forums[]=16&max_age=-&sort_by_date=0

>>> Nur wozu braucht man 921600 bps?
Diese Frage stellt sich dann immer wieder wie im 
Beitrag "Re: UART mit Baudrate von 921600"
Und irgendwie gibts bei den Threads dann nur selten ein Happy-End  :-o

von spess53 (Gast)


Lesenswert?

Hi

>Und irgendwie gibts bei den Threads dann nur selten ein Happy-End  :-o

Wahrscheinlich, weil die Leute nicht begreifen, das die Baudrate 
meistens nicht der Flaschenhals ist.

MfG Spess

von Florian Z. (zoechi)


Lesenswert?

spess53 schrieb:
> Wahrscheinlich, weil die Leute nicht begreifen, das die Baudrate
> meistens nicht der Flaschenhals ist.

du meinst damit wahrscheinlich dass mir pc seitig die "abholung" der 
daten zu langsam ist?!

von (prx) A. K. (prx)


Lesenswert?

Eher andersrum.

von spess53 (Gast)


Lesenswert?

Hi

>du meinst damit wahrscheinlich dass mir pc seitig die "abholung" der
>daten zu langsam ist?!

Der braucht erstmal nichts abzuholen, da du im Vergleich zu AVR relativ 
grosse Puffer festlegen kannst. Im AVR steht aber hardwaremässig nur ein 
Byte Puffer zur Verfügung. Und der RAM ist auch recht begrenzt.

MfG Spess

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> Eher andersrum.
Oder sowohl als auch...  :-/

Und immer noch ohne Antwort:
>>> Nur wozu braucht man 921600 bps?

von Florian Z. (zoechi)


Lesenswert?

Lothar Miller schrieb:
> Und immer noch ohne Antwort:
>>>> Nur wozu braucht man 921600 bps?

hab ein usb-seriell kabel mit dem ftdi chip... und wenn ich das 
anschließe und dann im device manager schaue welche baudraten 
einstellbar sind, dann finde ich dort 921600bps... von daher kommt der 
wert.

von (prx) A. K. (prx)


Lesenswert?

Nur weil dein Auto 180km/h kann musst du nicht zwangsläufig mit 
ebendiesem Tempo durch's Dorf holzen. Der FTDI kann auch langsamer.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

@  Florian Z. (zoechi)
> ... welche baudraten einstellbar sind, dann finde ich dort 921600bps...
> von daher kommt der wert.
Schon eine interessante Einstellung: nur weil ich etwas könnte,
will (bzw. brauche) ich es auch :-o

Zur Erinnerung, die Frage war nicht, ob du es kannst, sondern wofür du 
es /brauchst/:
>>>>>> Nur wozu braucht man 921600 bps?

von Plodderer (Gast)


Lesenswert?

Dasselbe wie mit den LED. Jeder muss bei denen 20mA durchpressen, 
weils so im Datenblatt steht.

von g457 (Gast)


Lesenswert?

Florian Z. schrieb:
> [..] [Baudrate] 921600 bps [..] 14.7456 MHz Quarz [..]

Das ist erstens ein "Baudratenquarz" und zweitens ergibts sich nach Adam 
Riese und Eva Zwerg ein
1
UBRR = fOSC /16 /BAUD -1 = 14.7456e6 /16 /921600 -1 = 0
(mathematisch exakt, nicht gerundet, Formel aus dem Datenblatt). Also 
ist auch der Fehler genau 0. Also alles in Butter.

Aber bedenke: Bei der angestrebten Baudrate bleiben Dir (bei 8N1) genau 
160 Takte um ein ankommendes Datenbyte zu verarbeiten - inklusive ggf. 
Interrupt Ein- und Aussprung und was sonst noch alles dazugehört - und 
der AVR hat ja wahrscheinlich auch noch was anderes zu tun als nur von 
der UART zu lesen.. das ★kann★ eng werden, das ★kann★ aber auch 
nötig/gewünscht sein.. nur bedenken sollte mans gründlich.

HTH und HF

von Florian Z. (zoechi)


Lesenswert?

g457 schrieb:
> das ★kann★ eng werden, das ★kann★ aber auch
> nötig/gewünscht sein.. nur bedenken sollte mans gründlich.

mhm... verständlich. muss aber dazusagen dass ich bei meinem prozessor, 
sobald er am Eingang des UART's etwas erhält, eigentlich sämtliche 
anderen Arbeitsschritte unterbreche (und mit "eigentlich sämtliche" 
meine ich "eigentlich alle" ;) ). Außerdem werden die Datensätze die vom 
PC kommen in der Länge auch sehr gering gehalten (werde hier vielleicht 
sogar nur eine Länge von 3 byte anstreben) - zur not werde ich die Daten 
die vom PC rausgehen mit einem Timer senden und den auf 100ms oder so 
stellen. Diese "hohe" Baudrate benötige ich eigentlich nur dafür um die 
gespeichterten Daten des Controllers möglichst schnell an den Computer 
zu bringen - Wenns mit 921600 nicht klappt geh ich einfach auf die 
nächstmögliche Baudrate runter.

und dass ichs nicht vergesse: danke soweit an alle!

von Andreas F. (aferber)


Lesenswert?

Vergiss aber den (Hardware-)Handshake nicht. Ohne wirst du bei den 
Datenraten keinen Blumentopf mehr gewinnen können, auch nicht in 
Richtung zum PC hin. Der Buffer des FT232R (256B) ist bei 921,6kBaud 
nach gerademal 2,8ms schon voll, da reicht ein kleiner Schluckauf auf 
dem USB-Bus oder im Host, und es gehen Daten verloren.

Andreas

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> Diese "hohe" Baudrate benötige ich eigentlich nur dafür um die
> gespeichterten Daten des Controllers möglichst schnell an den Computer
> zu bringen ...
... auf dem dann Windows läuft, das bis zum Taskwechsel eine halbe 
Sekunde pennt, weil du gerade auf die Maustaste geklickt hast   :-o

von Florian Z. (zoechi)


Lesenswert?

das ganze ist ohnehin auch crc-gesichert... falls das beruhigt ;)

und ja wie gesagt sonst geh ich runter mit der baudrate....

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.