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...
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.
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.
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
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.
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.
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...
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...
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.
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...
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.
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.
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...
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?
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.
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...
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?
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...
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.
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
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...
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!