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
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
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
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
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?
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.