Übermittlungsprobleme, RS232, Hyperterminal

Gast #385191
Lesenswert?
• ▲
▼
Hallo zusammen,

habe folgendes Problem:

Ich übermittle dem PC (Hyperterminal) Daten über die serielle
Schnittstelle. Das Problem liegt nun darin, dass ein einzelnes Zeichen
auf dem Terminal dargestellt, hingegen ein String einfach
"verschluckt" wird. Ich versuchte anschliessend, beim Senden eines
Strings (übrigens alles vom uC) nach jedem Zeichen eine kurze Pause
einzulegen (1ms); dann funktionierte die Übermittlung des Strings, das
Hyperterminal zeigte mir diesen an.

Das Problem muss beim PC liegen, auf praktisch allen anderen PCs (auch
XPs, wie meiner) funktioniert die Übertragung problemlos.

Wie bringe ich das auf meinem PC zum Laufen?

Vielen Dank schon im Voraus für Eure Hilfe!
Gruss Rafi
Gast #385193
Lesenswert?
• ▲
▼
Hallo Stefan,

doch, der "böse" PC hat einen FIFO Chip.

Es scheint, als würde die serielle Schnittstelle zu selten abgefragt
werden. Wenn ich jede Millisekunde ein Zeichen sende, funktioniert
alles tip top, nur wenn ich den ganzen String aneinander hänge kommt
nichts heraus.

Gruss Rafi
Gast #385194
Lesenswert?
• ▲
▼
Also ich sende z.B. Screenmasken über die RS232 mit maximaler Baudrate
115200 Baud Quarz 7.3728 MHz PC Hyper Terminal keine Probleme.
Senderoutine wird gepollt.

Sendch:
sbis USR,UDRE
rjmp Sendch
out UDR, daten
Gast #385195
Lesenswert?
• ▲
▼
Bei mir ist es so, dass die Übermittlung auf den meisten Computern
funktioniert. Eigentlich sollte die Baud- Rate keine grosse Rolle
spielen, die Computer sind ja noch viel schneller. Ich dachte zuerst,
dass ich ein Pegelproblem habe, doch auch mit einem MAX232
funktionierte die Stringübermittlung nicht.

Ist es eigentlich das Bios, welches die serielle Schnittstelle
verwaltet? Ist es möglich, dass ich ein Bios- Update machen muss?

Gruss Rafi
Persönliche Seite #385196
Lesenswert?
• ▲
▼
Nein, das BIOS hat seitdem es Windows gibt, nichts mehr mit den
seriellen Schnittstellen am Hut. Es findet zwar noch 'raus, daß es sie
gibt, aber das interessiert sonst nicht weiter.
Das war schon zu Zeiten des reinen 16-Bit-Windows (3.0) so. Bereits
dieses Windows hat einen interruptgesteuerten Betrieb der seriellen
Schnittstelle unterstützt.

Und seitdem die Standardschnittstelle den 16550 verwendet, gibt es
einen -üblicherweise auch nicht deaktivierten- Empfangsfifo.
Du könntest im Gerätemanager nachsehen, ob der deaktiviert ist.

Womit erzeugst Du die Sendebaudrate Deines Gerätes?
Gast #385197
Lesenswert?
• ▲
▼
Vielen Dank für eure Hilfe,

das Problem hat sich erledigt. Eigentlich ganz simpel: Nachdem ich beim
uC die serielle Schnittstelle initialisiert habe, habe ich sofort
begonnen mit dem Senden von Daten. Jetzt habe ich eine kurze Pause von
1ms nach der Initialisierung vorgesehen und schon läuft die
Kommunikation problemlos.

Ich bin mir zwar nicht sicher, wieso das so ist, aber Hauptsache es
funktioniert. Wahrscheinlich braucht die serielle Schnittstelle des PCs
die kurze Pause.

Gruss Rafi

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