Arduino Uno mit Entwicklungsumgebung 1.8.13: 250000 Baud geht nicht im Monitor

Gast #6421037
Lesenswert?

Ich nutze den Arduino Uno mit aktueller Entwicklungsumgebung Version 
1.8.13.

Beim Versuch, im seriellen Monitor aus der Liste der Übertragungsraten 
250000 Baud auszuwählen, erscheint die Fehlermeldung "Fehler beim 
Festlegen der Parameter für den seriellen Port: 250.000 N 8 1".

Alle anderen Werte von 300 bis 2000000 Baud liefern diesen Fehler nicht. 
Ist das ein Bug? Wer verursacht den Fehler? Was kann ich tun?
Gast #6421050
Lesenswert?

Ardur schrieb:
> Ich nutze den Arduino Uno mit aktueller Entwicklungsumgebung Version
> 1.8.13.
Ich auch

Ardur schrieb:
> Beim Versuch, im seriellen Monitor aus der Liste der Übertragungsraten
> 250000 Baud auszuwählen, erscheint die Fehlermeldung "Fehler beim
> Festlegen der Parameter für den seriellen Port: 250.000 N 8 1".
Kann ich nicht bestätigen.
Das tuts bei mir.

Ardur schrieb:
> Ist das ein Bug? Wer verursacht den Fehler? Was kann ich tun?
Ein UNO Klon mit exotischem Schnittstellenbaustein, welcher keine 250000 
Baud kann?
Gast #6421077
Lesenswert?

Ardur schrieb:
> Das geht tatsächlich in neueren Arduino-IDEs

Das mag schon sein, entscheidend ist doch aber ob dein
Controller das auch kann.

Aus eigener Erfahrung lässt sich berichten dass Baudraten
jenseite der 115200 bei den AVR-Controllern auf den Arduinos
nicht mehr funktionieren, manchmal auch schon die 115200
selbst.

Grund scheint für mich zu sein dass der auf den Controllern
verwendete Keramik-Resonator oft nicht genau genug ist. Mit
einem Quarz wär's vielleicht gerade noch gegangen.
Gast #6421097
Lesenswert?

jo mei schrieb:
>> Das geht tatsächlich in neueren Arduino-IDEs
>
> Das mag schon sein, entscheidend ist doch aber ob dein
> Controller das auch kann.
>
> Aus eigener Erfahrung lässt sich berichten dass Baudraten
> jenseite der 115200 bei den AVR-Controllern auf den Arduinos
> nicht mehr funktionieren, manchmal auch schon die 115200
> selbst.
>
> Grund scheint für mich zu sein dass der auf den Controllern
> verwendete Keramik-Resonator oft nicht genau genug ist. Mit
> einem Quarz wär's vielleicht gerade noch gegangen.

Ich hab 2MBit schon erfolgreich genutzt, aber wir driften vom Thema ab.

Es geht hier um die Schnittstelle, die vom "seriellen Monitor" auf 
jede langsamere und schnellere Geschwindigkeit außer 250000 Baud gesetzt 
werden kann.

Liegt's daran, dass ich ein Linux-System verwende?
Gast #6421104
Lesenswert?

Klaus R. schrieb:
> Genügen Dir denn nicht auch 100.000 Baud?

Wozu so schnell? 9600 Baud sind doch auch gut. Außerdem geht bei 300 
Baud bestimmt nichts schief, also ... warum sind eigentlich moderne CPUs 
in PCs und Smartphones im GHz-Bereich getaktet. Früher beim C-64 haben 
doch auch 985kHz gereicht ...
Gast #6421112
Lesenswert?

jo mei schrieb:
> Grund scheint für mich zu sein dass der auf den Controllern
> verwendete Keramik-Resonator oft nicht genau genug ist. Mit
> einem Quarz wär's vielleicht gerade noch gegangen.

Die IDE weiß aber nicht, wie genau der Keramik-Resonator auf dem Board 
ist und kann deshalb auch nicht meckern.
Gast #6421362
Lesenswert?

250000 Baud, das sind 25000 Zeichen pro Sekunde.
Willst du da auf der seriellen Konsole mitlesen? Selbst bei einem 
Zehntel komme ich nicht mit.
Oder soll etwas abgespeichert werden? Aber 25000 Zeichen die Sekunde? 
Kann ein Arduino überhaupt 25K sinnvolle Daten pro Sekunde erzeugen. Die 
Betonung liegt auf sinnvoll.

Wenn 250000 nicht geht, dann nimmt man eben 115200. Reicht auch noch 
aus. Manchmal ist die Hardware eben etwas zickig.
#6421372
Lesenswert?

das dürfte ein Problem des verwendeten USB-Serial Chips sein.
Stelle ich 74880 ein und habe ein NodeMCU Board (esp8266) dran, ist 
alles ok.
Wechsle ich dann zu einem LGT8Fx Board (schneller Atmega328 clone), 
bekomme ich exakt diese Fehlermeldung.
Es unterstützt scheinbar nicht jeder USB-Serial Chip diese exotischen 
Baudraten.
Gast #6421383
Lesenswert?

Wolfgang schrieb:
> jo mei schrieb:
>> Grund scheint für mich zu sein dass der auf den Controllern
>> verwendete Keramik-Resonator oft nicht genau genug ist. Mit
>> einem Quarz wär's vielleicht gerade noch gegangen.
>
> Die IDE weiß aber nicht, wie genau der Keramik-Resonator auf dem Board
> ist und kann deshalb auch nicht meckern.


Ich weiß jetzt nicht, wer.da was ironisch meint.

Die Genauigkeit des quarzes beeinflusst NICHT die erzielbare baudrate.

Bei perfekten Signalflanken brauchst Du die gleiche Genauigkeit für 
300Baud oder 3MBaud.
Gast #6421406
Lesenswert?

Ja, ich brauche das Ganze, um über die serielle Schnittstelle live mit 
einem Device zu "reden", das auf 250kBaud eingestellt ist.

Ich schrieb schon oben, dass ich "Arduino Uno R3 SMD Edition" verwende 
und einen perfekten Clone, alle mit dem ATmega16U2 als USB-CPU bestückt.

Z.B. mit 500kBaud und 115.2k kann ich andere Devices problemlos 
ansprechen. Ich persönlich tippe jetzt immer mehr auf den USB-Hub des 
Computers oder die Betriebssystem-Treiber.
Gast #6421408
Lesenswert?

Das Problem ist nicht der "Arduino", zumindest nur Teilweise. ;-)

Arduino bedeutet ja ATMega328p (oder Derivate)  und einen UART-IC.
Bei den original UART ist ein FTDI, ich glaub FT232R drauf. Der kann so 
ziemlich alle Baudraten, bis 2,5MBd.
Bei den preiswerten Klonen ist zumeist ein billigerer CH340 drauf. Der 
kann deutlich weniger.
Das Problem ist aber nachher der Treiber aufm PC. Der muss die Baudrate 
kennen und einstellen können, dann geht das auch.
Ich vermute also das hängt ganz stark vom OS und den Treibern ab.

P.S. höhere Baudraten machen durchaus auch Sinn, wenn nur wenige Daten 
übertragen wrden. Z.B. kurze Statusmeldungen. Wenn der µC in den 
SleepMode geht können die sonst zerstückelt werden. Mit höheren 
Baudraten schaffen sie es aber noch bis kurz vorm Einschlafen.
Gast #6421448
Lesenswert?

Das sind so die Probleme, bei denen es vom Bug in der IDE über die 
Treiber bis zur Hardware unzählige Fehlerquellen gibt, deren Überprüfung 
einfach kompliziert bis unmöglich ist.

Alles, was ich tun konnte, habe ich mittlerweile getan. Wem noch etwas 
einfällt, nur zu.

PittyJ schrieb:
> 250000 Baud, das sind 25000 Zeichen pro Sekunde.
> [...] Aber 25000 Zeichen die Sekunde?
> Kann ein Arduino überhaupt 25K sinnvolle Daten pro Sekunde erzeugen
> [...] dann nimmt man eben 115200. Reicht auch noch aus.

Es ist doch ein Irrsinn im Internet beobachtbar, den Menschen im 
Real-Life offenbar verbergen. Ich hatte doch obenschon geschrieben, dass 
ich 2MBaud problemlos produktiv am Laufen habe und dass 500kBaud im 
seriellen Monitor auch gehen. Das hier ist kein Quarz-Genauigkeits- oder 
Taktflanken-Störungs-Problem. Das war doch eigentlich klar.

Und woher nimmt man eigentlich immer wieder das Recht, in Frage zu 
stellen, dass hohe Geschwindkeiten nicht gehen "können" und nicht 
gebraucht werden?!
Gast #6421455
Lesenswert?

Ardur schrieb:
> Alles, was ich tun konnte, habe ich mittlerweile getan. Wem noch etwas
> einfällt, nur zu.

Gegentest auf einem Win System.
Da tut es.
Denn sowohl die Arduino IDE, als auch der UNO mit ATMega16U2 hat kein 
Problem mit 250000 Baud.

Das Resonator Gequatsche ist auch Unsinnig, da das Probleme ja zwischen 
USB Serial Wandler und PC auftritt. Der Wandler ist mit einem Quarz 
ausgerüstet.
Gast #6421664
Lesenswert?

Ardur schrieb:
> Das sind so die Probleme, bei denen es vom Bug in der IDE über die
> Treiber bis zur Hardware unzählige Fehlerquellen gibt, deren Überprüfung
> einfach kompliziert bis unmöglich ist.

Unter Linux könnte man den strace Befehl benutzen, um herauszufinden, 
mit welchen Parametern die IDE den seriellen Port öffnet (wenn sie es 
denn tut) und ob der Kernel dann einen Fehlercode zurück liefert.

Man könnte auch einen Gegentest machen, indem man einfach mal ein 
anderes Terminalprogramm verwendet bei dem man weiß, dass es 
diesbezüglich keine Einschränkung hat. Zum Beispiel das Hammer Terminal 
oder Cutecom.

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