PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Über Rs485 mit dem Pc kommunizieren ?



Blamaster
07.07.2008, 09:12
Hi,

ich wollte mal wissen ob man mit der Rs485 schnitstelle auch mit dem Pc kommunizieren kann.

Weil rs485 hat ja kein vorgefertigtes Protokoll.

Grund dafür ist, dass ich in einem Projekt die Hardware Uart für ein Bus System mit dem Rs485 Treiber belegen musste.

Jetzt soll allerdings noch eine Kommunikationsmöglichkeit mit dem Pc vorhanden sein. (Software Uart fällt wegen begrenzen Möglichkeiten weg).

Ich bilde mir ein mal etwas gelesen zu haben das man den rs232 Treiber an den Rs485 Treiber hängen muss oder sowas in der richtung ?

mfg Blamaster

Hubert.G
07.07.2008, 11:09
Ich habe so was mal für einen Freund gemacht der es als Sniffer benutzt hat, vielleicht hilft es dir.

gummi_ente
07.07.2008, 13:48
Hallo Blmaster,

dazu gibt es fertige Umsetzer von RS485 auf RS232 oder USB (virtueller Comport).

Diese gibt es zuhauf von Spectra, Adam, Nientech usw..

Am besten nutzt man einen mit galvanischer Trennun kosten zwar mehr aber man ist auf der sicheren Seite.

Grüße

Blamaster
07.07.2008, 13:51
Im Netz habe ich diese Schaltung gefunden:

http://www.netzmafia.de/skripten/hardware/rp1/rs232_rs485.gif

spricht da etwas gegen ?

veit
07.07.2008, 14:54
hehehehe netzmafia.de ... das ist die seite von meinem prof ;-)

ja das interface so geht prima

Blamaster
07.07.2008, 17:20
Ich muss gerade mal überlegen ob ich richtig denke ^^

wie müsste denn jetzt mit einem µC der Aufbau aussehen ?

MEGA 16 UART (OUT) <----- Rs 232 (IN) ---------> OUT zu PC
MEGA 16 UART (OUT) <----- Rs 485 (IN) ---------> OUT zu BUS
MEGA 16 UART (IN) <------- Rs 485 (OUT) --------> IN zu BUS
MEGA 16 UART (IN) <------- Rs 232 (OUT) --------> IN zu PC

Also praktisch eine zusammenfassung der aus und eingänge von Rs232 und Rs485 und dann an Ein und Ausgang vom µC ?

repi64
07.07.2008, 21:48
Möchtest du 232 und 485 gleichzeitig am µC nutzen?
Sollen auch beide Geräte PC und Bus je senden und empfangen?
Den TX vom µC (out) kannst du gleichzeitig an den 232 und 485 Treiber hängen.
Andersherum geht es nicht ganz so einfach, da du sonst zwei Ausgänge (232 und 485) parallel schaltest, die unterschiedliche zustände haben werden.
Du könntest beide Ausgänge über je eine Diode entkoppeln und mit einem Pullup für definierte Pegel sorgen.
Würden beide Geräte gleichzeitig Daten an den µC senden, kommt bei diesem nur Müll an.

Blamaster
08.07.2008, 10:24
Also über Rs485 sollen nur vom µC an andere Busteilnehmer gesendet werden.

Über Rs485 soll der µC nur Daten empfangen können, der µC muss aber keine an den PC senden.

repi64
08.07.2008, 20:04
Also noch mal zum Verständnis.
der Mega 16 sendet und empfängt die 485 Busdaten.
Der PC lauscht auf dem 485 Bus mit und sendet nicht!?!

Blamaster
08.07.2008, 20:55
Nö nicht ganz :)

Der Mega 16 sendet an den Rs458 Bus, empfängt aber über den Rs485 Bus nichts.

Der Rs232 soll nur den Mega 16 mit "Messdaten" und Einstellungen versorgen. (Also auch nicht zwangsweise Daten empfangen)

repi64
08.07.2008, 21:31
Und wo ist das Problem?
TX vom Mega 16 auf den 485 Treiber.
RX vom Mega 16 auf den MAX232.
Dann brauchst du nicht mal den Zusatzpin für den 485 Wandler um zwischen Senden und Empfangen zu schalten.

Blamaster
09.07.2008, 10:42
Hi,

würde auch folgendes gehen:

Ich habe den Rs485 Treiber schon im Layout an TX und RX des µC hängen.

Kann ich mit dem Ausgang des Max232 (wrüber die Daten des Pc´s den Treiber verlassen), einfach an den Eingang des Rs485 Treibers hängen, der dann die Daten an den µC weiterleitet.

Pin fürs umschalten zwischen senden und empfangen ist auch schon im Layout eingebunden.

Also so das der Pc die Daten dem Rs232 Treiber übermittelt, der diese an den Rs485 Weitergibt und der Rs485 Treiber dann an den Rx vom µC ?

Blamaster
10.07.2008, 17:07
Ich habe nochmal nen Screenshot von dem Layout bereich gemacht.

Die Roten Linien sind die 2 Möglichkeiten die ich sehe um das ganze umzu routen.

Würden beide eingezeichneten Möglichkeiten funktionieren ?

Wenn ja welche lösung währe sauberer ?

mfg Blamaster

repi64
10.07.2008, 22:13
Ach nee ist das kompliziert.
Wieso hast du den MAX232 im Layout an einem Soft UART hängen, wenn du das von vorne rein auschließen wolltest?
Du möchtest Daten vom PC über max232 R2In (pin8)-> R2Out (pin9) nicht mehr an den Pin8 des M16 schicken?!
Wieso hast du dann die roten Linien an Pin 10 des max232 gezeichnet?
Ich verstehe bald gar nichts mehr.

Fakt ist: Die rote Linie zum pin6 des max485 ist falsch.
Desweiteren gilt: Zwei Ausgänge, ganz gleich ob TX out vom M16 (pin15),
TTL Out vom max232 (pin9) oder RO (pin1) vom max 485 gehören nicht einfach zusammen geschaltet, wenn es sich dabei wie hier um echte Push/Pull Ausgänge handelt.
Einen der besagten Ausgänge kann man jedoch beisbielsweise an zwei andere Eingänge ohne weiteres hängen.

Blamaster
10.07.2008, 23:49
Das oben gezeigte ist das Grundlayout. Software Uart funktioniert allerdings nicht wirklich gut, deswegen möchte ich das Layout jetzt ja umändern.

Bei der Roten Linie bin ich am Max232 um nen Pin verrutscht sorry.

Edit. Also wenn ich das jetzt richtig verstanden habe kann ich also nicht den Ausgang RO mit dem Ausgang des Max232 direkt verbinden.

Da ich aber die Max232 Daten über die Hardware Uart empfangen will und der Max485 sowieso nicht senden muss, entferne ich also die Leiterbahn vom RO des Max485 und hänge den Ausgang des Max 232 an den Pin 14 des Mega16 Richtig ?

repi64
12.07.2008, 20:22
Ja, das wäre dann OK.