Wieso schafft mein UART nicht mehr als 800 B/s ?

Gast #226148
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 ?
Angehängte Dateien:
Gast #226150
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
Gast #226153
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. >:-[
Gast #226154
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.
Gast #226155
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
Gast #226156
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.
Gast #226158
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
#226159
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.
Gast #226160
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.

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.