Forum: Mikrocontroller und Digitale Elektronik Verbindung am UART


von jochen (Gast)


Lesenswert?

Hallo Zusammen,

ich hab da mal ne Frage. Hab hier im Forum auch schon gesucht aber
nichts in der Art gefunden.

Kann ich irgendwie erkennen ob ein PC via serieller Schnittstelle an
den AVR angeschlossen wurde?

Was natürlich gehen würde, wäre vom Terminal ein Zeichen senden was
dein einen Interrupt auslöst. Ich hätte aber lieber eine Lösung ohne
Tastendruck.

Ich stelle mir sowas in der Art vor das ich über die serielle
Schnittstele meinem uC konfigurieren kann. Dazu soll eben in dem Moment
wo sich einer mit dem PC an den uC hängt ein Menu am PC ausgegeben
werden.

Bin schon gespannt auf Eure Antworten.

Der Jochen

von wolli (Gast)


Lesenswert?

Wie nun? Soll der AVR den PC detektieren oder umgekehrt?
An Pin 3 des 9 pol. Steckers am AVR (Sendeleitung des PCs) liegt eine
negative Spannung an, wenn der PC angeschlossen ist, ansonsten wohl 0V.
Diese könnte man mit einem OPV messen.

von jochen (Gast)


Lesenswert?

Hallo noch mal,

der AVR soll den PC erkennen. Das mit der Leitung 3 wäre mal eine
Möglichkeit.

Ich wollte eben mal noch nachsehen wofür die Pins 1,7 und 9 sind. Die
sind nämlich derzeit noch nicht belegt.

Trotzdem schon mal Danke, Der Jochen

von leo9 (Gast)


Lesenswert?

Der einfachste Weg ist eine Kurzschlußbrücke im Stecker. Sobald das
Kabel am uP angesteckt wird wird ein Pin auf Masse gezogen und der uP
erkennt dass das Kabel angesteckt wurde (muß aber nicht bedeuten dass
auch ein Pc am Kabel hängt).
Die zweite Variante ist die Statusleitungen auszuwerten, das bedeutet
aber dass die Terminalsoftware Hardware-Handshake unterstützt und du
einen freien RS232-TTL Wandler hast.

Die in der Praxis wohl gebräuchlichste Form ist dass der User in der
PC-Terminal Software einmal <ENTER> drücken muß und darauf den
Menue-Schirm angezeigt bekommt. (damit die Variante die du eigentlich
nicht willst ;-)

grüsse leo9

von jochen (Gast)


Lesenswert?

Ich denke das ich mich wohl doch erst mal mit der
"Tassden-Druck-Variante" begnüge.
Werd mir aber mal noch die freien Pins anschauen ob man damit noch was
machen kann.

Trotzdem Danke für die Infos.

Der Jochen

von wolli (Gast)


Lesenswert?

Pin 1 Data Carrier Detect
Pin 2 Received Data
Pin 3 Transmit Data
Pin 4 Data Terminal Ready
Pin 5 Signal Ground
Pin 6 Data Set Ready
Pin 7 Request To Send
Pin 8 Clear To Send
Pin 9 Ring Indicator

Mit dem 2. Receiver des MAX232 an Pin4 (DTR) könnte man das ganze noch
wesentlich eleganter lösen. Den zugehörigen TTL-Ausgang des MAX232 kann
man dann an einen freien Port-Pin anschließen.
Ich konnte zu so später Stunde dem Datenblatt nicht eindeutig
entnehmen, was passiert, wenn ein Receiver-Eingang auf 0V bzw. GND
liegt. Ich habe aber am Ausgang dann High gemessen, und da die Receiver
invertierend sind, wird er auf Low gehen, wenn am Eingang z.B. DTR High
anliegt.

von jochen (Gast)


Lesenswert?

Erst mal Danke für die Mühe. Ich hab mir das jetzt noch mal durch den
Kopf gehen lasssen und bin zu dem Schluss gekommen das die Variante mit
Zeichen senden eh die sinnvollste ist. Denn es kann ja möglich sein das
einer zwar den PC an den AVR hängt, aber das Terminalprogramm noch
nicht offen hat und somit gehen die gesendeten Daten vom AVR ja auch
wieder ins Nirvana.

Werd das jetzt erst mal so lösen und wenn ich dan Zeit habe und mir
Langweilig ist kann ich mir das noch mal genauer anschauen.

Trotzdem noch mal vielen Dank für die Hilfe.

Jochen

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.