Forum: Mikrocontroller und Digitale Elektronik RS232 Geräte erkennen?


von Charly (Gast)


Lesenswert?

Hallo zusammen!

Der Betreff ist etwas verwirrend, aber ich versuchs mal zu erklären:

Ich habe einen AVR mit 2 UARTS die mit einem MAX232 verbunden sind. An 
jeder RS232 Schnittstelle kann jetzt ein Gerät angeschlossen sein 
(ebenfalls mit MAX232). Ich möchte nun erkennen, ob ein Gerät, zwei 
Geräte oder kein Gerät vorhanden ist.

Das Problem an der ganzen Sache ist, das die Geräte erst nach ca. 20 
Sekunden betriebsbereit sind und per RS232 Befehl abgefragt werden 
können. Ich muss aber schon beim Start des AVR erkennen ob 1, 2 oder gar 
kein Gerät angeschlossen ist (je nach dem werden andere Dinge ausgeführt 
bis die RS232-Geräte einsatzbereit sind).

Ist mein Vorhaben überhaupt möglich? Gibt es evtl. Befehle, auf die ein 
MAX232 reagiert und selbst darauf antwortet?

Danke schonmal.

Charly

von Magnus M. (magnetus) Benutzerseite


Lesenswert?

Muss die Erkennung auch bei ausgeschalteten Peripheriegeräten erfolgen 
können?

von Charly (Gast)


Lesenswert?

Nein, die Geräte sind an sobald sie angeschlossen sind. Werden 
gleichzeitig mit dem AVR mit Strom versorgt.

von Chr. M. (snowfly)


Lesenswert?

So wird das wohl nix, der Max232 ist ein reiner Pegelwandler
aber du könntest die Hanshakeleitungen benutzen
DSR/DTR und RTS/CTS, dazu braucht es dann noch einen 2. Max232 auf dem 2 
UART Device

von Alexander F. (alexf91)


Lesenswert?

Eventuell werkeln die Geräte ja schon vor ihrer Einsatzbereitschaft an 
den Handshake-Leitungen rum

von holger (Gast)


Lesenswert?

>Ist mein Vorhaben überhaupt möglich? Gibt es evtl. Befehle, auf die ein
>MAX232 reagiert und selbst darauf antwortet?

Nein. Der ist dumm wie Brot.

>Ich muss aber schon beim Start des AVR erkennen ob 1, 2 oder gar
>kein Gerät angeschlossen ist (je nach dem werden andere Dinge ausgeführt
>bis die RS232-Geräte einsatzbereit sind).

Musst du nicht. Frag halt erst nach 20s nach.
So einfach kann die Welt sein.

von Charly (Gast)


Lesenswert?

CTS/RTS oder DSR/DTR kann ich nicht benutzen. Das Kabel zu den Geräten 
hat nur RX/TX/GND/+ und kann nicht geändert werden.

von Magnus M. (magnetus) Benutzerseite


Lesenswert?

Charly schrieb:
> Nein, die Geräte sind an sobald sie angeschlossen sind. Werden
> gleichzeitig mit dem AVR mit Strom versorgt.

Dann solltest du eine Chance haben, indem du die Spannung auf RXD 
(RS232-seitig) auswertest. Liegt die Spannung bei ca. 0V, so ist kein 
Gerät angeschlossen.

von Ralf (Gast)


Lesenswert?

> Dann solltest du eine Chance haben, indem du die Spannung auf RXD
> (RS232-seitig) auswertest. Liegt die Spannung bei ca. 0V, so ist kein
> Gerät angeschlossen.
Konkret auf Datenblatt Seite 17 zu erkennen:
http://datasheets.maxim-ic.com/en/ds/MAX220-MAX249.pdf
Intern 5kOhm nach GND. Vergiss aber nicht, dass du bei Kommunikation 
Pegel von bis zu +-15V hast, d.h. die Schaltung zum Auswerten besteht 
nicht nur aus "Portpin mit Leitung verbinden".

Ralf

von Reinhard Kern (Gast)


Lesenswert?

Magnus Müller schrieb:
> Dann solltest du eine Chance haben, indem du die Spannung auf RXD
> (RS232-seitig) auswertest. Liegt die Spannung bei ca. 0V, so ist kein
> Gerät angeschlossen.

Muss man garnicht, jedenfalls nicht auf der Leitungsseite, denn genau 
das tut ja der Receiver. Ist nichts angeschlossen, so ist der 
prozessorseitige Ausgang duaerhaft Hi. Um das festzustellen, braucht man 
bei ordentlichen UARTs auch keinen eigenen Pin, denn das UART sollte das 
als "BREAK" erkennen können, die Tatsache, ob eine Verbindung besteht, 
war also schon zu Zeiten seliger Teletypes und Fernschreiber definiert. 
1 oder 2 Sekunden zum Hochlaufen sollte man der Anlage aber schon 
gönnen, bevor man das abfragt.

Gruss Reinhard

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.