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
Hi Der Baudratenfehler liegt bei 1%. Also im grünen Bereich. Nur wozu braucht man 921600 bps? MfG Spess
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
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
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?!
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
> Eher andersrum. Oder sowohl als auch... :-/ Und immer noch ohne Antwort: >>> Nur wozu braucht man 921600 bps?
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.
Nur weil dein Auto 180km/h kann musst du nicht zwangsläufig mit ebendiesem Tempo durch's Dorf holzen. Der FTDI kann auch langsamer.
@ 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?
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
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!
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
> 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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.