Forum: Mikrocontroller und Digitale Elektronik Wieso schafft mein UART nicht mehr als 800 B/s ?


von Sascha (Gast)


Angehängte Dateien:

Lesenswert?

Ich kapier's nicht.

AtMega8 UART -> MAX232N -> Nullmodemkabel 1m -> PC
Quarzwechsel bringt auch nicht viel.

Egal welche Baudrate ich einstelle, wenn ich mehr als 700-800 Bytes pro
Sekunde verschicke, gehen Daten verloren.

Siehe Anhang. Der Controller zählt von 0 bis 255 hoch. Alle X ms wird
ein ordentlicher Batzen Daten verschluckt.

Am PC kann es eigentlich nicht liegen - habe mehrere Programme
ausprobiert. (Last ist auch immer nur ein paar Prozent)

19200 Baud und 500 B/s: Super
19200 Baud und 1000 B/s: Aussetzer
38400 Baud und 500 B/s: Super
38400 Baud und 1000 B/s: Aussetzer
...

Der Controller wartet auch immer brav, dass er wieder ein Byte über den
UART senden darf.

Woran kann das liegen ?

von Michael Wilhelm (Gast)


Lesenswert?

Im Auslieferungszustand wird der Mega8 durch den internen Oszillator
getaktet. Du mußt explizit auf externen Oszillator oder Resonator
schalten. Kann das der Fehler sein?

MW

von HDE (Gast)


Lesenswert?

Also wenn das PC-Prog keine Fehler verursacht (lässt sich ja leicht
überprüfen, einfach anderes Programm nehmen), dann kann es nur noch am
µC-Prog liegen

kannst ja mal dein Progr. posten

Gruß
HDE

von HDE (Gast)


Lesenswert?

Mal davon ausgegangen, dass der 232-Chip richtig aufgebaut ist...

von Benedikt (Gast)


Lesenswert?

Das ganze ist viel zu gleichmäßig für Fehler in der Datenübertragung
(schiefe Baudrate).
Überprüf mal ob periodisch irgendwas anderes stört.

von Sascha (Gast)


Lesenswert?

Leider hat sich gerade eine böse Vermutung bewahrheitet :(

Ich habe das ganze an einem anderen Rechner mit "normalem" COM Port
getestet und dort geht es wunderbar.

Auf meinem Rechner habe ich jedoch einen billigen USB-COMPort Adapter -
der scheint Probleme zu machen. >:-[

von TravelRec. (Gast)


Lesenswert?

USB hat doch laut Spezifikation so ein lustiges Polling für Datenpackete
hin und her (1-5ms), wenn Dein UART also gerade sendet, während der USB
Daten schaufelt, wird Dir auch ein teurer USB<->RS232-Adapter nichts
bringen. Einzige Lösung scheint mir ein Handshaking zu sein.

von Peter Dannegger (Gast)


Lesenswert?

Soweit ich weiß, hat so ein USB-Chip nur einen Puffer von 384 Byte.

Entweder Du nimmst die Handshakesignale oder Du teilst Deine Daten in
kleine Pakete auf (z.B. 256 Byte) und wartest dann immer auf ne Antwort
vom PC.

Vielleicht gehts auch mit einem RS232 auf USB2.0 Converter, die sind
halt etwas teurer.


Peter

von Benedikt (Gast)


Lesenswert?

Wenn der USB-RS232 Konverter keine 500Byte/s schafft, dann ist entweder
mit deinem Windows/irgendeiner Einstellung was nicht OK, oder der USB
Konverter ist müll -> zurückgeben.

Mit einem FT232 sind konstant über 100kBaud/s von RS232->USB kein
problem.

von Weinga-Unity (Gast)


Lesenswert?

Wegen FT232: Vorraussetzung ist, dass man nur sendet oder nur empfängt.


Wenn man 2 Byte sendet und auf Antwort (2 Bytes z.B.) wartet, sind die
100kBaud/s Wunschvorstellung.

von Jörn G. aus H. (Gast)


Lesenswert?

Einige der billigen USB-Kabel haben sehr schlechte Treiberleistung. Wenn
du sie direkt mit dem Controller verbindest funktioniert es vielleicht -
eine weitere RS232-Verlängerung ist vielleicht dein Problem.
jörn

von Thomas K. (thkais)


Lesenswert?

Ich habe auch ein billig-Kabel (9,90 Euro), das funktioniert bestens.
Nur auf die bereits angesprochenen Eigenheiten des USB muß man
rücksicht nehmen, der USB ist nunmal ein Single-Master Bus und hat eine
Abfragerate von 1 ms. Wie bereits erwähnt, wird auch ein teures
USB-Kabel diese Probleme kaum beseitigen.
Die Treiberleistung sehe ich nicht als Problem, wenn es so wäre, gäbe
es auch bei geringeren Byteraten schon Ausfälle.

von Sascha (Gast)


Lesenswert?

Vielleicht kann mir ja jemand sagen ob mein USB-RS232 Adapter "normal"
ist:

- Beim Anstecken erkennt Windows XP etwas von "USB to Serial" und
installiert zwei HID-Geräte.

- Auf der beiliegenden CD sind zwei Verzeichnisse:
-- Einmal USB232: Installiert man den Treiber, so erscheint einer neuer
COM-Anschluss mit dem Namen "Usb/serial USB-HID -> COM device". Den
habe ich bis lang benutzt

-- Dann gibt es noch das PL2303 Verzeichnis. Anscheinend ein Treiber
für den Prolific PL2303. Den kann ich installieren, aber es passiert
nix. Es erscheint kein neues Com Gerät. Habe es auch auf einem frischem
System getestet.

Ich hatte gehofft, dass der andere Treiber vielleicht besser wäre.

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.