Forum: Mikrocontroller und Digitale Elektronik Kommunikation mit RS485 zwischen Atmega8 und Computer


von Hua (Gast)


Lesenswert?

Ich möchte Kommunikation mit RS485 zwischen Atmega8 und Computer machen.
Datan können richtig von Computer zur Atmega8 transmitted werden. Aber
von Atmega8 zur Computer ist immer falsch.
Vorher habe ich solche Kommunikation mit RS232 gemacht. Beide
Richtungen funktionieren.

-Ich wollte fragen, ob ich außer den Treiber MAX485 für Atmega8 noch
Gerät für Computer anschließen?

-RS232 hat drei Leitungen für Transport, aber RS485 nur zwei Leitungen.
Kann Computer sich automatisch entscheiden, ob er mit RS232 oder mit
RS485 Kommunikation machen?

Vielen Dank!
Hua

von Hua (Gast)


Lesenswert?

Gibt es jemand, der auch soleche Kommunikation mit RS485 gemacht? Was
hast du gemacht?

von Thorsten L. (tlauf79)


Lesenswert?

*abo

von Wolfram (Gast)


Lesenswert?

Der MAX 485 ist ein half duplex Treiber.
Wie wählst du am Computer die übertragungsrichtung aus?

von Hua (Gast)


Lesenswert?

Ich weiß nicht, wie ich am Computer die Übertragungsrichtung auswählen.
Deshalb habe ich sie nicht am Computer ausgewählt.

Meinst du, wenn ich ein voll duplex Treiber benutzen, dann geht es?

Aber wieso kann ich auch Daten transmit und receive?
Wenn Computer wie RS845 arbeitet und die Übertragungsrichtung am
Computer nicht ausgewählt wird, könne die Daten nicht transmit oder
receive, oder?
Oder vielleicht arbeitet Computer noch wie RS232, dann benutzt er TxD
für Transmit, RxD für Receive. Sowieso, TxD und RS485/B sowie RxD und
RS485/A haben gleich Pins.
Wie findest du?

von Hartmut Gröger (Gast)


Lesenswert?

Hi

Es wäre einfacher ,wenn du Can-Bustreiber (PCA82C250) nimmst. Der Bus
ist ähnlich RS485, aber die Treiber haben eine automatische Umschaltung
auf Senden, wenn der TX-Eingang angesprochen wird.

MfG HG

von crazy horse (Gast)


Lesenswert?

geht auch bei RS485. Normalerweise sind die Transceiver auf Empfang. Das
Startbit aus der RS232 schaltet den Transceiver auf senden um.
Rückschaltung per Monoflop.
Irgendwo hab ich noch eine Schaltung dafür.

von Kay (Gast)


Lesenswert?

hi,

schaue Dir mal das hier an :

http://www.elektronik-projekt.de/include.php?path=content/articles.php&contentid=16&PHPKITSID=44755c116e7ff8f1132ce079dd6d8668

steht alles schön beschrieben. Du kannst ohne "RS485/RS232" Adapter
keinen BUS an einen PC anschließen. Der PC muss ja wissen, ob er sendet
oder empfängt.

mfg Kay

von Marko (Gast)


Lesenswert?

ich hab den ltc485 für rs485 verwendet.
sind 2 pins für sende und empfang-auswahl, die
üblicherweise einfach gebrückt werden und mit
einem IO des PC oder COntrollers auf Senden / Empfangen
geschaltet werden.
wichtig dabei ist, das die umschaltung erst erfolgt
nachdem alle Daten verschickt sind und nicht noch welche
im Puffer hängen.
Am Mega 8 einfach RX und TX anschliessen und einen zusätzlichen
Steuerpin. Beim PC könnte CTS oder RTS als Steuerleitung
verwendet werden um nen Bustreiberbaustein anzusteuern.

Was ich nicht ganz verstanden habe, haste den RS-485 einfach auf
den COM-Port des PC angeschlossen (RS232) oder hast du
da eine separate Karte für oder ein Bustreiber ala max485?

Vollduplex ist mit RS485 nicht drin, geht nicht (!), nur halbduplex ...
einer sendet einer empfängt.

Ein MOnoflop zu konstruieren und dafür Pins am Mega8 brach liegen zu
lassen oder RTS CTS zu ignorieren find ich nicht der Weisheit letzer
Schuss, mal abgesehen von den evtl. auftretenden Timingproblemen.

von Marko (Gast)


Lesenswert?

PS: ich hab meinen RS485 so konstruiert, das alle Busteilnehmer
auf empfang sind bis sie dazu aufgefordert werden was zu senden.

von crazy horse (Gast)


Lesenswert?

@marko: die Monoflop-Lösung bezieht sich eher auf die PC-Seite...
Bei eigener Software kann man freilich die Statussignale für die
Umschaltung nutzen, schlechter sieht es aus, wenn fertige Software
benutzt wird.

von MArko (Gast)


Lesenswert?

naja, wenn die software für rs232 ausgelegt wird
wirds eng mit der Umsetzung.
Ich würd dann n µC zwischenschalten, der einfach 2-mal
uart bereitstellt. eine für pc-seite, eine für rs-485 - seite
so als Dolmetscher

von Hua (Gast)


Lesenswert?

Wenn ich diese Frage stellt habe, habe ich den RS-485 einfach auf
den COM-Port des PC angeschlossen (RS232). Jetzt weiß ich, das ist
falsch. Aber damals konnte ich Daten von Computer richtig receive. Dies
scheint sehr strange.

Jetzt benutze ich eine separate Karte für RS485. Und kann ich Daten von
Atmega8 nach Computer richtig senden. Aber kann ich nicht Daten von
Computer receive.

Ich glaube, der Grund ist, ich weiß nicht, wie ich auf die PC-Seite die
Statussignal einstellen.

to marko:
Du hast RTS als Steuerleitung beim PC verwendet, aber wie hast du diese
Signal steuern? Beim software in Windows?

von MArko (Gast)


Lesenswert?

genau, zum Beispiel in Visual Basic oder VC++ kanst
Du die RTS CTS direkt steuern

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.