mikrocontroller.net

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


Autor: Hua (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Hua (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gibt es jemand, der auch soleche Kommunikation mit RS485 gemacht? Was
hast du gemacht?

Autor: Thorsten Lauf (tlauf79)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
*abo

Autor: Wolfram (Gast)
Datum:

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

Autor: Hua (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Hartmut Gröger (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Kay (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi,

schaue Dir mal das hier an :

http://www.elektronik-projekt.de/include.php?path=...

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

Autor: Marko (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Marko (Gast)
Datum:

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

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: MArko (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Hua (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: MArko (Gast)
Datum:

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

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.