RS232 - Modem Status Register lesen

Gast #619781
Lesenswert?

Auf dem Embedded-PC befindet sich ein UART16650. Über diesen kann ich 
Daten von der RS232 Schnittstelle senden und empfangen. Zusätzlich habe 
ich noch ein externes TTL Signal das ich mit einem Pegelwandler in RS232 
Peger umwandle.Dieses umgewandeltet Signal gebe ich dann auf die RS232 
Schnittstelle vom Embedded PC drauf. Dazu verwende ich den Pin6 (DSR - 
Betriebsbereit) von dem 9poligen SUBD Anschluss.
Damit ich den Pin6 auslesen kann, muss ich vom UART das Register MSR 
verwenden (Basisadresse + 6) oder?
Persönliche Seite #619971
Lesenswert?

Du hast also unter Deinem (nach wie vor ungenannten Betriebssystem) 
einen eigenen Interrupthandler für die serielle Schnittstelle 
geschrieben.

Wann soll ein Interrupt ausgelöst werden? Nur bei Senden/Empfangen von 
Daten oder auch bei "Gewackel" an der Handshake-Leitung?

Wie ist der 16550 initialisiert? Wird der Fifo verwendet? Was wird in 
das IER (Basis + 1) geschrieben?

Welche Bits im MSR (Basis + 6) wertest Du aus?

Wird im Interrupthandler das IIR ausgewertet, wenn ja, wie?
#632955
Lesenswert?

Hallo,
ich habe auch ein (Programmier-)Problem mit direktem 
Port-Adressenzugriff unter Windows XP: ich installiere einen 
Systemdienst für direkten Hardwarezugriff ("zlportio" unter Delphi 6).
Der Zugriff auf Register des LPT-Ports (Drucker, ab 0x378) funktioniert 
damit perfekt.
Der Register-Zugriff bei der seriellen Schnittstelle geht dagegen gar 
nicht (ab 0x3F8 bzw. 0x2F8). Als würde der Zugriff ins Leere gehen: 
gelesene Werte immer 255. Die Adressen werden im Gerätemanager korrekt 
angezeigt.
Hinweis: auf anderen Rechnern funktioniert der Zugriff auf COM1,2 
teilweise ja, teilweise nein. Was könnte der Grund und die Lösung des 
Problems sein?

Gruß
DiLi
Gast #633505
Lesenswert?

Hast du geschaut welche Adressen im Gerätemanager gewählt wurden?
Wenn diese nicht mit den gewählten übereinstimmen, dann liest man ins 
leere.

Auch wenn man "etwas" ältere Steckkarten verwendet könnte es Probleme 
geben, da da die Adressen unter anderem mit Jumpern eingestellt wird.

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