Forum: Mikrocontroller und Digitale Elektronik UART V24 und TTL Pegel?


von AVRli (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

ich benötige für die Kommunikation mit einem ATmega einmal V24 Pegel und 
einmal TTL Pegel. Kann die Schaltung so funktionieren oder wird mir der 
MAX3232 auf der TTL Seite so "dazwischen funken"?

Ich benötige beide Pegel NIEMALS gleichzeitig, immer nur, entweder oder 
aber ich möchte es komfortabel haben und nichts Jumpern müssen sondern 
durch die Verbindung TXD/RXD an TTL oder V24 entscheiden können.

Gruß AVRli...

von Christian M. (Gast)


Lesenswert?

TxD geht, RxD musst Du mit Dioden oder Jumper enkoppeln! Du hättest 
immer den Pegel vom Max.

Gruss Chregu

Edit: Nachtrag: oder wie beim Arduino den R beim MAX reinmachen.

von A. S. (Gast)


Lesenswert?

Christian M. schrieb:
> Edit: Nachtrag: oder wie beim Arduino den R beim MAX reinmachen.

Die Dioden braucht er ja trotzdem.

Der Ruhepegel ist high, also beide RX über ein AND oder Pullup und 
Dioden vom Pullup zu MAX bzw. Rin.

von Frank K. (fchk)


Lesenswert?

AVRli schrieb:
> Hallo,
>
> ich benötige für die Kommunikation mit einem ATmega einmal V24 Pegel und
> einmal TTL Pegel. Kann die Schaltung so funktionieren oder wird mir der
> MAX3232 auf der TTL Seite so "dazwischen funken"?
>
> Ich benötige beide Pegel NIEMALS gleichzeitig, immer nur, entweder oder
> aber ich möchte es komfortabel haben und nichts Jumpern müssen sondern
> durch die Verbindung TXD/RXD an TTL oder V24 entscheiden können.

So einfach geht das nicht. Es gibt aber eine Lösung:

Nimm nicht den MAX3232, sondern den MAX3223:
http://www.ti.com/lit/ds/symlink/max3223.pdf

Der hat einen INVALID-Pin. Wenn der High ist, sieht der MAX3223 einen 
gültigen RS232-Pegel an seinen Eingängen, d.h. da ist dann ein Gerät 
dran. Wenn der Low ist, ist der RS232-Port offen. Damit dann Du dann ein 
Paar aus HC125/HC126 als Multiplexer steuern. Vorteil dann auch: Der 
jeweils andere Port ist dann tot, d.h. es kann definitiv kein Datenmüll 
auftreten.

fchk

von Stefan F. (Gast)


Lesenswert?

A. S. schrieb:
> Der Ruhepegel ist high

Auch wenn die 12V Seite vom MAX Chip offen ist (nicths angeschlossen)?

von Marty (Gast)


Lesenswert?

Einfach die beiden RXe über ein AND führen...

von A. S. (Gast)


Lesenswert?

Stefanus F. schrieb:
> Auch wenn die 12V Seite vom MAX Chip offen ist (nicths angeschlossen)?

Es gibt praktisch keinen RS232-Wandler, der nicht auch direkt mit 
TTL-Pegeln (z.B. HCT14 mit 5V) kommunizieren kann:

Auf der Eingangsseite der RS-232 ist die Umschaltschwelle meist bei etwa 
+1V und die Eingangsimpedanz >1k. Da sind 0V als maximaler Ruhepegel OK. 
Die 5V sind es auch, viel mehr verlangt die Norm eh nicht. .

Auf der Senderseite ist das Signal in der Regel mit >=1k für die 
TTL-Eingangsdioden genügend abgeschwächt.

Probleme hatte ich bisher nur bei ganz alten Siemens 
Schnittstellentreibern und bei Laptops, deren Schnittstellen-Versorung 
gegen die GND-Climb-Diode zu pumpen begann. Hier half dann ein 
Serienwiderstand von 1k.

3V-Inverter verwende ich seltener, haben bisher aber auch immer 
funktioniert. Wobei wir im Normalfall die Kommunikation untereinander 
haben (also ohne das wir für uns RS232 reklamieren), aber jederzeit 
trotzdem einen PC für Diagnose/Tests/Urbooten anschließen können.

von A. S. (Gast)


Lesenswert?

Nur zur Klarstellung:

1) Die Invertierung muss natürlich bei diesen 3V oder 5V - Pegeln durch 
ein (oder 2n+1) Inverter weiterhin erfolgen.

2) unsere In/Out-Stufen enthalten natürlich entsprechende 
Serienwiderstände und Schutzbeschaltungen für Signale nach außen. Der 
pumpende Laptop-TX arbeitete gegen eine explizite Eingangs-Schutzdiode. 
Mir ging es nur darum, dass dies das einzige Problem bei direkter 
Kopplung hier in unserer Firma in den letzten 20 Jahren war.

von AVRli (Gast)


Lesenswert?

Ich danke Euch für Eure Antworten!
Ich werde den Weg mit den Dioden gehen und probieren ob ich damit hin 
komme.

Eine weitere Frage hätte ich noch:
Welche Möglichkeit gibt es um die V24 TXD Leitung (-12V/+12V) über den 
µC zu öffnen?

Hintergrund ist der, das ich den µC auf der V24 Seite nur als "Lauscher" 
schalten möchte.

Gruß AVRli...

von Christian M. (Gast)


Lesenswert?

Hä?

Gruss Chregu

von AVRli (Gast)


Lesenswert?

Ich meine wie man die Verbindung

V24OUT ---- TOUT1

über den ATmega trennen kann.

Der Hintergrund ist, dass der ATmega die Steuerung NICHT macht sondern 
ein PC.
Dann darf der ATmega nicht auf der TX Leitung präsent sein. RX aber 
schon! Denn dann kann der ATmega die Antworten die zum PC gehen 
ebenfalls auswerten.

GERÄT <-o-> PC
        |_> ATmega

Wie kann man für den Fall die "V24OUT ---- TOUT1" Leitung trennen außer 
mit einem Jumper?

Denn zwei "Master" auf der V24 Seite funktionieren ja nicht. :-(


Gruß AVRli...

von Stefan F. (Gast)


Lesenswert?

Mit einem Jumper.

Sorry, aber anders geht es bei diesem Modul wohl nicht.

von Joachim B. (jar)


Lesenswert?

AVRli schrieb:
> Hintergrund ist der, das ich den µC auf der V24 Seite nur als "Lauscher"
> schalten möchte.

AVRli schrieb:
> Ich meine wie man die Verbindung
>
> V24OUT ---- TOUT1
>
> über den ATmega trennen kann.

Christian M. schrieb:
> Hä?
>
> Gruss Chregu

doppelt hä....

ich verstehe es auch nicht

wenn der µC auf der V24 nur lauschen soll dann lasse doch TX offen, wozu 
dann Tx?

du weisst das die Rx und Tx gekreuzt werden! für ein Nullmodem, wenn der 
eine nicht zwischenquatschen darf und soll, Mund zukleben, also sein TX 
offen lassen.

Will man an einer Verbindung zwischen 2 Geräten mit einem dritten Gerät 
nur lauschen auf Rx und Tx was die beiden so reden dann nimmt man beide 
Leitungen Rx und Tx der Verbindung auf 2 weitere serielle mit Rx als 
Empfänger.

von AVRli (Gast)


Lesenswert?

Danke für alle Antworten!

Es sind zwei Szenarien möglich...

Szenario 1
Der ATmega übernimmt komplett die Kommunikation mit dem Gerät! Der 
Idealfall!

Szenario 2
Gerät hängt an einem PC und der übernimmt die Kommunikation mit dem 
Gerät, der ATmega braucht in dem Fall nur "mit lauschen" und da braucht 
er kein V24TXD.

Die Sache mit einem Jumper wird wohl die einzige Möglichkeit sein, dann 
muß ich halt das Gerät aufschrauben und Jumpern. Das wollte ich 
eigentlich nicht... :-(

Gruß AVRli...

von A. S. (Gast)


Lesenswert?

AVRli schrieb:
> Das wollte ich eigentlich nicht... :-(

Das brauchst Du auch nicht. Es gibt genügend Möglichkeiten, dass 
automatisch explizit oder implizit umzuschalten.

Uns fehlt nur jede Info dazu.

Mach doch gerne ein Skizze, notfalls per Hand, wie sich beide Fälle 
unterscheiden.

 Wie erkennen PC oder uC, wer mit dem Gerät reden sol?

Kannst du den uC programmieren?

Hast Du gar einen Pin frei?


Prinzipiell kannst Du TX genau so verodern wie RX. Oder ein Signal im 
Stecker zum umschalten nutzen. Oder ein Signal der PC-Sio. Oder oder.

von Joachim B. (jar)


Lesenswert?

A. S. schrieb:
> Das brauchst Du auch nicht. Es gibt genügend Möglichkeiten, dass
> automatisch explizit oder implizit umzuschalten.
>
> Uns fehlt nur jede Info dazu.

eben, der TO kann auf TTL eine CROSS Matrix nehmen oder auf V24 Relais 
und per DTR DCD oder sonst einen Port schalten was gewünscht ist!

Da es der TO möchte sollte er erst mal im Kopf einen Plan machen, eine 
Wahrheitstabelle wer wann mit wem und es hier zeigen.

von AVRli (Gast)


Lesenswert?

Hmm eine Skizze ist im ersten Beitrag... ;-)

Hier "einfach" das Signal "V24OUT ---- TOUT1" über den µC "trennen". Gut 
Relais wäre eine Idee, mal schauen ob ich was kleines finde. Problem ist 
halt der Fall das die +/- Pegel hat und ich das nicht einfach mit einen 
Transistor oder so machen kann.

Und die Frage mit dem "ob ich programmieren kann" ist mit ja zu 
beantworten, es gibt sicher bessere Programmierer aber dafür reicht es. 
;-)
PIN ist auch noch frei. :-D

Gruß AVRli...

von A. S. (Gast)


Lesenswert?

AVRli schrieb:
> Hmm eine Skizze ist im ersten Beitrag... ;-)
>
> Hier "einfach" das Signal "V24OUT ---- TOUT1" über den µC "trennen". Gut

OK, so viele Fälle sind es doch nicht. Ich schreibe es mal runter, und 
Du korrigierst das dann:
1
1: Begriff, was ist wo dran?
2
3
PCin = V24OUT
4
PCout= V24IN
5
6
ATMegaIn = CPU/RXD
7
ATMegaOut= CPU/TXD
8
9
GerätIn  = TTLOUT
10
GerätOut = TTLIN
11
12
Fall 1: PC und Gerät gekoppelt, ATMega hört mit
13
PCin  <-> GerätOut
14
PCout <-> GerätIn
15
ATMega soll mithören... Welche Verbindung? Ich hoffe PCin <-> GerätOut, dann ist es einfach. Anders geht aber auch.
16
17
18
Fall 2: PC fehlt, ATMega mit Gerät gekoppelt
19
ATMegaIn  <-> GerätOut
20
ATMegaOut <-> GerätIn
Falls die Verbindungen so richtig sind, stimmt Deine erste Zeichnung 
nicht.

Falls Deine erste Zeichnung richtig ist, ist der ATMega wohl an 
TTL(In/Out).

Korrigiere einfach die Aufgabenbeschreibung von mir und dann kann Dir 
jeder zweite hier entsprechende Dioden oder Gatter skizzieren.

Letzte Frage: Wenn der PC nicht kommuniziert... ist dann der Stecker ab, 
ist nur die SW aus, gibt es irgendwelche Annahmen über die Signale der 
Sio, wird das per Timeout oder per SW erkannt?

von Joachim B. (jar)


Lesenswert?

AVRli schrieb:
> Hmm eine Skizze ist im ersten Beitrag... ;-)

da nicht alle beteiligten Geräte benannt sind hilft dir keine Aussage

AVRli schrieb:
> ...Kann die Schaltung so funktionieren oder wird mir der
> MAX3232 auf der TTL Seite so "dazwischen funken"?

kann funktionieren, aber muss nicht (der 20k ist schon mal grenzwertig 
hoch)

Du hast immer noch nicht verstanden wenn ein weiterer die Verbindung 
belauschen will müssen 2 Daten abgegriffen werden beide sind Rx zum 
lauschenden Gerät

denn das lauschende Gerät will beide belauschen den Sender und den 
Empfänger, also müssen die beiden raus als Rx zum Lauscher, ein Lauscher 
hört nur und sendet nicht: also kein TX.

Soll der Lauscher nun doch senden muss ein Polizist her der den Verkehr 
regelt, bzw. eine Vorrichtung die Grün und Rot verhindert, kann ja nicht 
sein das zeitgleich hü & hott ankommt.

Deswegen schrieb ich ja du hast es nicht durchdacht, ich habe einen nano 
wo zum USB Chip die R fehlen was Nutzung von Tx & Rx praktisch 
unbrauchbar macht weil vom USB Chip festgenagelt bei inaktiv, denen 
fehlt das R.

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

Man kann ein billiges Blue-Pill Board (aka STM32F103C8T6 minimal board) 
mit dieser Firmware von Niklas als 3-fachen USB-UART verwenden: 
http://stefanfrings.de/stm32/vcp_test.zip . Das ist ein Projekt für die 
System Workbench, kann auch in TrueStudio importiert werden.

Hier hat er es dokumentiert: 
https://github.com/Erlkoenig90/f1usb/tree/vcp

von AVRli (Gast)


Lesenswert?

A. S. schrieb:
> OK, so viele Fälle sind es doch nicht. Ich schreibe es mal runter, und
> Du korrigierst das dann:

Danke erstmal das Du dich damit auseinander setzt.
Der ATmega hängt auf der linken Seite dran CPU/TXD und CPU/RXD.

Fall 1:
Das zu steuernde Gerät ist´über V24/TXD und V24/RXD mit dem ATmega 
direkt verbunden. KEIN weiterer PC oder sonst was, TTL/RXD und TTL/TXD 
NICHT verbunden!

Fall 2:
Das zu steuernde Gerät ist´über TTL/TXD und TTL/RXD mit dem ATmega 
direkt verbunden. KEIN weiterer PC oder sonst was, V24/RXD und V24/TXD 
NICHT verbunden!!


Bei beiden Fälle kann nun anstatt des ATmega ein PC das Gerät abfragen. 
Der ist dann mit dem Gerät direkt mit der V24 Schnittstelle verbunden. 
Hier soll der ATmega dann nur mithören. Swndwn iat dann für den ATmega 
tabu!

Das muss alles NICHT automatisch gehen, das kann man im Setup 
hinterlegen. Lediglich mein Wunsch, das ich es halt via Software steuern 
kann.

Hoffe das war nun etwas besser ausgedrückt. ;-)

Gruß AVRli...

von A. S. (Gast)


Lesenswert?

AVRli schrieb:
> Der ATmega hängt auf der linken Seite dran CPU/TXD und CPU/RXD.

Das rechte Links?

AVRli schrieb:
> Das zu steuernde Gerät ist´über V24/TXD und V24/RXD mit dem ATmega
> direkt verbunden.

AVRli schrieb:
> Das zu steuernde Gerät ist´über TTL/TXD und TTL/RXD mit dem ATmega
> direkt verbunden.

AVRli schrieb:
> Bei beiden Fälle kann nun anstatt des ATmega ein PC das Gerät abfragen.
> Der ist dann mit dem Gerät direkt mit der V24 Schnittstelle verbunden.
> Hier soll der ATmega dann nur mithören. Swndwn iat dann für den ATmega
> tabu!

Also 2 verschiedene Geräte, und der PC fehlt völlig in der Zeichnung?

von Joachim B. (jar)


Lesenswert?

AVRli schrieb:
> Hoffe das war nun etwas besser ausgedrückt. ;-)

nö, ich gebe auf!

von AVRli (Gast)


Lesenswert?

A. S. schrieb:
> Das rechte Links?

Ja natürlich... mein Fehler. Also ATmega auf der RECHTEN Seite dort wo 
die CPU/xxx Signale bezeichnet sind.

A. S. schrieb:
> Also 2 verschiedene Geräte, und der PC fehlt völlig in der Zeichnung?

Ja das Gerät hat entweder TTL oder V24 Pegel. Das ist jehh nach 
Einsatzzweck. Wenn der PC ins Spiel kommt, dann ist das Gerät definitiv 
mit V24 Pegel verbunden.

Der PC fehlt in der Skizze, Ist der PC mit dem Gerät verbunden, dann 
möchte ich nur die V24RXD Leitung mit dem ATmega verbinden. Die 
Kommunikation mit dem Gerät übernimmt dann ausschließlich der PC und der 
ATmega lauscht nur mit.

Gruß AVRli...

von A. S. (Gast)


Lesenswert?

Also 4 Fälle:

1) ATMega - Gerät (Direkt
2) ATMega - MAX - Gerät
3) PC     - Gerät (ATMega nur eine Seite mithören, welche verschweigst 
Du ja)
4) PC - MAX - Gerät (ATMega nur eine Seite mithören.

TTL-IN und OUT sind eh vertauscht, nehmen wir an, sie wären richtig 
herum

1) die 20k sollten eher 0k2 sein, der MAX-R1OUT stört.
2) --> genauso wie jetzt, alles OK.
3) --> genauso wie jetzt, der MAX-T1OUT stört
4) --> genaus wie 1, CPU/TXD stört

Lösung:
für 1:
 * Pullup an CPU/RXD
 * Dioden zu MAX-R1OUT
 * Diode zu TTL_OUT

für 2: oh, hier läuft ja schon alles ;-)

für 3: Diode von T1out zu V24OUT

für 4: Pullup an T1in, Diode von CPU/TXT zu T1in

Fertig. Du must nur noch 2 verschiedene V24-Stecker einzeichnen. Einen 
für Gerät oder PC und einen an den der PC kommt, wenn er gleichzeitig 
mit dem Gerät angeschlossen wird.

von georg (Gast)


Lesenswert?

AVRli schrieb:
> der
> ATmega lauscht nur mit.

An was lauscht er mit? An TxD oder RxD? Hier ist dein Konzept wirr.

Georg

von Joachim B. (jar)


Lesenswert?

Joachim B. schrieb:
> Will man an einer Verbindung zwischen 2 Geräten mit einem dritten Gerät
> nur lauschen auf Rx und Tx was die beiden so reden dann nimmt man beide
> Leitungen Rx und Tx der Verbindung auf 2 weitere serielle mit Rx als
> Empfänger.

also muss das dritte Gerät 2x lauschen werden an der RX und der TX 
Verbindung der beiden verbundenen Geräte.

georg schrieb:
> AVRli schrieb:
>> ATmega lauscht nur mit.
>
> An was lauscht er mit? An TxD oder RxD? Hier ist dein Konzept wirr.
> Georg

sagte ich schon, die wirren Gedanken kann ich nicht entwirren!

Das dritte Gerät darf nur lauschen also hat dort Tx nicht zu suchen, das 
dritte Gerät hat nur Rx aber das 2x

von AVRli (Gast)


Lesenswert?

A. S. schrieb:
> Fertig.

DANKE! :-D
Ich bau das mal auf und teste das mal! Der Fall 3 (PC mit Gerät 
verbunden, ATmega lauscht) ist ausschließlich so, dass dieser auf die 
Antworten vom Gerät lauschen soll, was der PC sendet ist mir egal.

Das ist dann die Leitung

GERÄT-V24OUT -o--> PC V24IN
              |
              +--> V24IN MAX -> ATmega




georg schrieb:
> An was lauscht er mit? An TxD oder RxD?

Zugegeben, für mich war das klar das der nur auf die Antworten vom Gerät 
lauschen soll... Sorry!


Vielen Dank, denke damit ist mir geholfen. :-)
Gruß AVRli...

von Joachim B. (jar)


Lesenswert?

AVRli schrieb:
> für mich war das klar das der nur auf die Antworten vom Gerät
> lauschen soll... Sorry!

nix sorry, schreibe das doch, wir sehen nicht was dir klar ist und im 
ersten Bild sah es so aus als wenn dein drittes Gerät mitquatscht!

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.