www.mikrocontroller.net

Forum: Analoge Elektronik und Schaltungstechnik RS232 als Bus. So denkbar?


Autor: Marcusius (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo.
Im Anhang ist ein Schaltplan, der die Struktur eines "RS232-Busses" 
zeigt.
Es handelt sich um 7 DSPs, die alle ihren eigenen MAX232 (eigentlich 
ICL3232) haben. Gesteuert wird alles vom PC aus. Auschließlich der PC 
fragt die einzelnen DSP an, die dann ggf. antworten, wenn es etwas zu 
antworten gibt. Der MAX läuft mit 3,3V. Entfernung mit seriellem Kabel 
1,5m. (Alle DSPs sitzen in einem Gehäuse.) Die TX-Leitung (vom PC aus 
gesehen) ist direkt mit allen MAX verbunden. Der Empfangskanal (vom PC 
aus gesehen) ist über Dioden getrennt auf RS232-Seite. RX geht dann noch 
einmal in einen MAX rein, damit hinter den Dioden der Pegel stimmt, und 
dann wieder raus zur Buchse für den PC.

Das ganze ist so aufgebaut und läuft mit 28.800. Problem: Wenn die 
Antwort von einem DSP etwas länger ist, kommt es vor, dass die 
Übertragung fehlerhaft ist. Woran könnte das liegen? Muss noch irgendwo 
ein Pullup oder Pulldown hin? Was bringt es, wenn die "Zusammenführung" 
von TX bzw. RX zwischen DSP und MAX erfolgt und nicht zw. MAX und PC?

Grüße

Marcusius

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Marcusius (Gast)

>Dateianhang: RS232-Struktur.sch (15,6 KB, 8 Downloads)

Bildformate

>gesehen) ist direkt mit allen MAX verbunden. Der Empfangskanal (vom PC
>aus gesehen) ist über Dioden getrennt auf RS232-Seite. RX geht dann noch
>einmal in einen MAX rein, damit hinter den Dioden der Pegel stimmt, und
>dann wieder raus zur Buchse für den PC.

Un wo ist dr Pull-Down dafür? Wie soll der Pegel jemals auf LOW kommen?

MFG
Falk

P.S. RS485 ist für sowas besser, wei die Sender auch auf Tristate gehen 
können.

Autor: Marcusius (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Moin.

Klar, dass RS485 besser geeignet ist. Jedoch gibt es bestehende 
Hardwarestrukturen und die müssen verwendet werden.
Also keinen Pull-Down!
Schaltplan siehe Anhang.

Marcusius

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich würde empfehlen, auf der RS232-Schnittstelle GND ebenfalls 
anzuschliessen.

Autor: Marcusius (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das verstehe ich jetzt nicht. Falk meint keinen Pulldown, Andreas meint 
ja.... was denn nun?

Marcusius

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was Dioden und Pulldown angeht: Da die TTL Seite der asynchronen 
Schnittstelle im Ruhezustand high ist, wird bei dieser Schaltung der Pin 
T1IN dauerhaft high sein. Es sei denn alle Nodes senden gleichzeitig 
;-).

Also: Diode andersrum, und einen gemeinsamen Pullup dahinter. Ohne 
Pullup ist der inaktive Zustand undefiniert. Und wenn die "bestehenden 
Hardwarestrukturen" nur Dioden aber keine Widerstände zulassen, wird's 
komplizierter.

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Marcusius wrote:

> Falk meint keinen Pulldown,

Das lese ich etwas anders heraus.

Und überdies hängt es davon ab, auf welche Variante man sich bezieht. 
Die erste Schaltung koppelt RS232-Pegel, da sind positive Dioden und ein 
Pulldown nötig. Die zweite TTL-Pegel, da sind es negative Dioden und ein 
Pullup.

Autor: Marcusius (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ich spreche jetzt nur noch von der Variante 2 (Verbindung auf 
TTL-Ebene).
Warum soll die Diode umgedreht werden? Das ist doch die Senderichtung 
vom DSP aus gesehen. Verstehe ich nicht.
Im Anhang eine Schaltung wie ich mir das vorstelle.

Marcusius

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Asynchrone Schnittstellen sind auf TTL-Seite im inaktiven Zustand auf 
high. Folglich reicht so eine einzige inaktive Node aus, um T1IN auf 
high zu ziehen.

Dass die Daten von links nach rechts fliessen heisst nicht unbedingt, 
dass die Diode in die gleiche Richtung zeigen muss.

Autor: Marcusius (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Andreas

"Asynchrone Schnittstellen sind auf TTL-Seite im inaktiven Zustand auf
high. Folglich reicht so eine einzige inaktive Node aus, um T1IN auf
high zu ziehen."
Okay.

"Dass die Daten von links nach rechts fliessen heisst nicht unbedingt,
dass die Diode in die gleiche Richtung zeigen muss."

Was bedeutet das jetzt für mich? Welche Diode empfiehlst du mir und wie 
muss sie eingesetzt werden? Pulldown, ja oder nein?

Marcusius

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie: Habe ich oben schon geschrieben. Typ BAT42, notfalls auch 1N4148.

Autor: Marcusius (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Also schließlich so?

Marcusius

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja.

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
War mal wieder ne schwere Geburt ;-)

Autor: Marcusius (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmmm... nicht jede Aussage von den Kommentatoren ist eindeutig. Da kann 
es schon einmal vorkommen, dass man häufiger nachfragen muss.

Autor: Marcusius (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe das so aufgebaut wie im Schaltplan gezeigt. Allerdings mit 
1N4148. Geht allerdings nicht. Wenn ich nur einen DSP betreibe 
funktioniert es. Klemme ich einen weiteren ran ist keine Kommunikation 
mehr möglich.

Pullup zu schwach? Den werde ich mal variieren.

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Marcusius (Gast)

>Ich habe das so aufgebaut wie im Schaltplan gezeigt. Allerdings mit
>1N4148.

Geht auch.

>Geht allerdings nicht. Wenn ich nur einen DSP betreibe
>funktioniert es. Klemme ich einen weiteren ran ist keine Kommunikation
>mehr möglich.

Auch nix falsch angeschlossen oder verpolt?

>Pullup zu schwach? Den werde ich mal variieren.

Eigentlich nicht.

MFG
Falk

Autor: Marcusius (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Moin.

Ich muss meine Aussage korrigieren. Selbst im Einzelbetrieb (also nur 
ein DSP wie oben angesprochen) funktioniert es nicht. Das Senden eines 
Befehls an den DSP klappt, aber ich empfange keine Antwort. Am Oszi sehe 
ich, dass etwas zurück gesendet wird. Auch hinter der Diode. Jedoch 
finde ich auf der TX und RX Leitung kurze Zeit später einen Spike. Das 
wird wohl das Problem sein. Woher kann das kommen? Von der Diode? Ich 
muss noch einmal genau nachsehen, was im Empfangspuffer am PC ankommt.
Im Anhang noch einmal der Schaltplan, wie ich es aufgebaut habe. Die 
Diode habe ich in beide Richtungen getest.

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der MAXe sieht so leer aus - sind die Kondensatoren der 
Übersichtlichkeit halber bloss nicht eingezeichnet oder fehlen sie 
wirklich?

Autor: Marcusius (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Schaltung soll nur das Prinzip der Verdrahtung darstellen. Cs sind 
dran und auch die Versorgungsspannung.

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also: links vom MAXe sind die Signale ok, rechts nicht?

Dann sieht es so aus, als ob du Leidtragender der grad grassierenden 
MAX-Seuche bist. Also zu jenen in letzter Zeit im Forum vermehrt 
auftrenden Kunden eines MAX[3]232 gehörst, bei denen er obzwar angeblich 
völlig korrekt beschaltet nicht läuft.

Autor: Marcusius (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
So, ich habe nun wieder meine erste Variante aufgebaut. Siehe Anhang. In 
diesem Fall wird kein Pull-Down benötigt, da der MAX einen internen 5k 
hat.

Jetzt scheint es allerdings zu gehen. Mein Problem aus dem ersten 
Posting ist also behoben. Es lag jedoch nicht an der Hardware sondern an 
LabView.
In meiner Anwendung hatte ich bislang die VISA-VIs verwendet. Jetzt habe 
ich alle Visas raus geworfen und  arbeite mit den seriellen VIs, wie es 
sie noch unter LV 6.0 gab. Ich selbst setzte 7.0 ein.

Jetzt funktioniert es! :-)

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@  Marcusius (Gast)

>So, ich habe nun wieder meine erste Variante aufgebaut. Siehe Anhang. In

Die ist aber anders.

>diesem Fall wird kein Pull-Down benötigt, da der MAX einen internen 5k
>hat.

Sehr kreativ!

MFG
Falk

Autor: Marcusius (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Falk

> Sehr kreativ

Wie soll ich das deuten?

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Marcusius (Gast)

>> Sehr kreativ

>Wie soll ich das deuten?

So wie es dortsteht. Da steckt ausnahmsweise mal keine Ironie drin. ;-)

MFG
Falk

Autor: Marcusius (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aha. Danke! :-)

Autor: Carsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mir ist es klar das es nur so:

http://www.mikrocontroller.net/attachment/preview/37028.jpg

funktionieren kann.

Ist das schonmal probiert wurden? Ich stehe vor eimem ähnlichen
Problem! Weiß selber das man sowas über TWI löst! Aber auch ich
stehe vor "vollendeter" Hardware. Mega8(DIP) mit 6 benutzten ADC's
die Pin's für TWI sind also belegt. RS232(TTL) Schnittstellen
sind rausgeführt! Habe die Quellen für die "Dinger" so das ich
nachträglich eine Addresierung einbauen könnte.

Gruß Carsten

Autor: Carsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mist habe den fingernagel erwischt!

noch mal:

http://www.mikrocontroller.net/attachment/37049/rs232.PNG

Carsten

Autor: Carsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
nochmal Mist

jetz habe ich das richtige Bild

http://www.mikrocontroller.net/attachment/37028/rs232.PNG

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alternative zur Diode ist dabei nicht der CD4010, sondern wahlweise 
74HC07 oder CD4068/74HC4068 (in der AND Variante).

Autor: Carsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Andreas Kaiser

ist das getestet?

habe bedenken das der PC während der init-Phase der Mega8's
schon irgend welchen Müll auf der RX-Seite bekommen könnte.

Danke für den Vorschlag mit den "aktiven" Dioden

Carsten :)

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, Pullups an den Inputs könnten bei der aktiven Version deshalb 
sinnvoll sein. Einfacher als mit den Dioden wird's dadurch folglich 
nicht, mir ging es eher darum, den ungeeigneten CD4010 abzuschneiden.

Asynchrone Verbindungen so wie gezeigt 5V-seitig mit Dioden 
zusammenzuschliessen ist ziemlich gängig und im Forum schon öfter mal 
als Kommunikation zwischen mehreren Controllern gemacht worden.

Autor: Carsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Andreas Kaiser

das ist doch mal ein Spruch!

herzlichen Dank!

Carsten

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
PS: Würde aber trotzdem die BAT42 statt 1N4148 empfehlen, oder ähnliche 
Kleinleistungs-Schottky-Dioden. Jedenfalls bei 3,3V.

Autor: Carsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich werde Schottky's nehmen (kleine Anlaufspannung) + 47K für R
um sicheren L-Pegel zu erreichen!

dann sollte das bei 19200 schon gehen?

Carsten :)

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Für 19200 tut es wohl fast jeder Widerstand, aber ein bischen gross ist 
der mit 47K schon. Die steigende Flanke wird entsprechend gemächlich 
aussehen (R*C = ~5µs).

Autor: Carsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
manne 19200 Baud!!!

wenns nicht geht denke ich an Dich und nehme 10K

Carsten

Autor: Marcusius (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also in der Form, wie du es jetzt aufbauen willst, hat es bei mir nicht 
funktioniert. Wenn es bei dir klappt, bitte ich dich noch einmal den 
Schaltplan zu posten.

Marcusius

Autor: Carsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Marcusius

Du hast wahrscheinlich??? das Problem das alle "DSP's",
was auch immer dranhängt, auf dem Bus gleichzeitig
plappen(sächs. reden) wollen?

?Carsten

Autor: Marcusius (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Carsten

Eigentlich plappert da keiner. Zumindest nicht von mir so gewollt.

Autor: Carsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Marcusius,

man Marcusius brauch noch ein paar Stunden, ich melde mich.

Carsten

Autor: Franz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Am einfachsten ist es einen RS232 - "Ring" zu verdrahten.

Gruß
Franz

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Carsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Marcusius

So, habe jetzt 5 Stück (Meßeinheiten mit Mega8)
an einer RS232 laufen, das geht vom Feinsten!
Sehe keinen Grund mehr, warum nicht auch 10 gehen sollten! Die Pegel
am Pegelwandler (Max232)-Ausgang (TX PC-seitig)sehen immer noch
gesund aus! Davor hatte ich den meisten Bammel.

Ps:
Nimm bitte Schottky's!

Gruß Carsten

Autor: Marcusius (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin, moin.

Ich muss das Thema hier noch einmal aufgreifen. Bei mir hatte die 
Variante, die Carsten zuletzt probierte nicht funktionert.
Mir ist an meiner Hardware noch ein Widerstand aufgefallen, der ggf. das 
Problem ist.
Es gibt die Dioden (Schottky !!!), die die Sendeleitungen abtrennen. 
Okay. Es gibt den Pullup-widerstand auf 3,3V um den Pegel zu definieren. 
Okay.
Nun sitzt bei meiner Hardware bei jedem DSP zwischen DSP-Pin und Diode 
ein weiterer Pullup auf 3,3V. Dieser wird benötigt, damit der DSP beim 
Einschalten nicht in den Bootmodus läuft. Diesen kann ich nicht 
weglassen.
Kann das der Grund sein, warum es bei mir nicht funktioniert? 
Schließlich sieht die Diode vorne und hinten 3,3V...

Anderfalls könnte ich den letztgenannten Widerstand ggf. weglassen, da 
ich ja den Bus-Pullup habe?!

Marcusius

Autor: Blackbird (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
So geht es auch.

Blackbird

Autor: Marcusius (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oder man nimmt diesen Schaltkreis: MAX3322E.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.