mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik uart baudrate


Autor: Florian Z. (zoechi)
Datum:

Bewertung
0 lesenswert
nicht 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/sho...

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

mfg zoechi

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

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

MfG Spess

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Such mal hier im Forum nach dieser Zahl. Die taucht andauernd auf:
http://www.mikrocontroller.net/search?query=921600...

>>> 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

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Florian Z. (zoechi)
Datum:

Bewertung
0 lesenswert
nicht 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?!

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eher andersrum.

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Eher andersrum.
Oder sowohl als auch...  :-/

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

Autor: Florian Z. (zoechi)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Plodderer (Gast)
Datum:

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

Autor: g457 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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
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

Autor: Florian Z. (zoechi)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: Andreas Ferber (aferber)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Florian Z. (zoechi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
das ganze ist ohnehin auch crc-gesichert... falls das beruhigt ;)

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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.