Arduino Baudrate 115,2k

Gast #4664364
Lesenswert?

Hallo.

Ich hätte eine Frage bezüglicher der Baudraten des Arduino Megas. Und 
zwar verrät mir das Datenblatt, dass eine eingestellt Baudrate von 
115,2k und verwendeten CPU Frequenz von 16 Mhz mit einem "erheblichen" 
Fehler belegt sind. Ich habe den UART auch selber mit der genannten 
Baudrate angesprochen und es wurden nur fehlerhafte Daten übertragen. 
Mich würde interessieren, wie das ganze so problemlos mit den Arduino 
Bibliotheken und dem Befehl Serial.print funktioniert.

Eine weitere Frage, die sich mir stellt ist, warum ich bei höheren 
Baudraten (250k, 0,5M und 1M) keine Fehler mehr habe.

Viele Grüße.
#4664395
Lesenswert?

Gaat12 schrieb:
> zwar verrät mir das Datenblatt, dass eine eingestellt Baudrate von
> 115,2k und verwendeten CPU Frequenz von 16 Mhz mit einem "erheblichen"
> Fehler belegt sind.

Definiere "erheblich". IIRC kann man trotzdem eine korrekte Übertragung 
erwarten, UART erlaubt so ca. 5% Abweichung.

> Ich habe den UART auch selber mit der genannten
> Baudrate angesprochen und es wurden nur fehlerhafte Daten übertragen.

Welche Gegenstelle, welche Abweichung in % war das?
Fieserweise muss man dabei die Abweichung beider Seiten 
berücksichtigen.
Übliche USB2UART Chips haben <1% Abweichung bei 115200 Baud.


Gaat12 schrieb:
> Eine weitere Frage, die sich mir stellt ist, warum ich bei höheren
> Baudraten (250k, 0,5M und 1M) keine Fehler mehr habe.

Die 16000000 Hz werden halt durch eine ganze Zahl geteilt. Im Datenblatt 
steht auch drin wie der Teiler genau funktioniert, der Rest ist nur 
Mathe. Da hätte man im Unterricht vielleicht mal aufpassen müssen.
#4664433
Lesenswert?

Wie man das am besten macht kann man am Baudraten Calculator 
herausfinden..

Ich hatte letztens einen eigenen Arduino Bootloader kompiliert.. Da muss 
man sich vorher Gedanken über den Quarz und Uart machen.

Zb. hatte ich angepeilt unter 12Mhz für 3,3V zu bleiben und den Upload 
über 115K Serial zu realisieren. Zuerst erschien mir 11,0592 Mhz für 
230,4K Maxbaud unterhalb von 12Mhz Perfekt..

Mit 11,0592 kann man bis 230,4K Standard Baudrate immer ohne Rest 
Teilen.

Dann dreht sich aber gerade beim Arduino ein Problem um, denn 
Microsekunden und Millisekunden benötigen im Core einen Quarz mit 6 
nullen am Ende um ohne einen Rest Ganzzahlig zu zählen..

Hab dann nach dem Baudrate Calculator 12Mhz mit 115,2K Upload genommen..
Gast #4664518
Lesenswert?

Ich habe Arduino Nano Clones aus China mit 16Mhz Keramikoszillator und 
CH340 Chip problemlos mit 115200 Baud verwenden können.

Das Datenblatt des AVR empfiehlt in diesem Fall einen anderen Quarz 
(z.B. 14,7Mhz) um die Abweichung gering zu halten.

5% Abweichung sind noch Ok. Aber wenn das Gerät am anderen Ende des 
Kabel auch 5% (in die andere Richtung) abweicht, dann geht ganz sicher 
nichts mehr.
Gast #4664570
Lesenswert?

Stefan U. schrieb:
> Ich habe Arduino Nano Clones aus China mit 16Mhz Keramikoszillator und
> CH340 Chip problemlos mit 115200 Baud verwenden können.

Man glaubt es fast nicht, aber die funktionieren scheinbar "besser"
als die Arduinos mit ATMega16U2 als seriell USB Interface.
(Einzelerfahrung aus Arduino Mega2560)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren