www.mikrocontroller.net

Forum: Hausbus RS-485 mit Arduino+ATTiny und MAX485 sendet/empfängt nicht


Important announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Andre P. (stax)
Datum:
Angehängte Dateien:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Hi,

ich versuche gerade meine ersten Schritte mit einem RS485 Bus.

Dafür habe ich momentan nur zwei Teilnehmer, einen Arduino Uno und ein 
Attiny2313V.

Diese beiden sollen über RS485 kommunizieren. Erst einmal reicht es, 
wenn der Attiny nur sendet und der Arduino nur empfängt.

Ich habe auf dem Steckbrett nur das nötigste. Aber dennoch sollte es so 
ja funktionieren?

Mein Problem ist, dass bei dem Arduino an den RX-Pin nichts ankommt.

Der Attiny ist richtig programmiert und sendet.
Dies weiß ich daher, da der Arduino die Daten bekommt, wenn ich den 
Attiny und den Arduino direkt verbinde (ohne die MAX485's).

Schalte ich die MAX485-DIP dazwischen kommt nichts mehr an. Bei der 
Verkabelung habe ich mich bei den vielen Beispielen und dem Datenblatt 
orientiert.

Die Kontakte habe ich alle überprüft. Ich denke es liegt irgendwie einer 
falschen Beschaltung (oder etwas fehlt).

Auch mit 2x100Ohm zwischen A-B funktioniert es nicht.

Der RE+DE Pin ist beim Transmitter auf dauer 5V und beim Receiver auf 
dauer 0V.
Grund: Dann fällt die Fehlerquelle mit dem Pinwechsel/Timing auch weg?!

Wäre super, wenn ihr mir helft. Ich weiß nicht mehr weiter...


Baud:4800

Autor: Peter L. (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Hast du am sendenden Baustein DE auf high gesetzt? Erst danach sendet er 
auch wirklich über den Bus. Standartmäßig sind sie so verschaltet dass 
durch den invertierten Eingang RE ein dauerhaftes Empfangen ermöglicht 
werden. Um aber auch hier keine komischen Effekte beobachten zu müssen, 
solltest du einen Pull-Down Widerstand noch gegen GND verschalten

Da es sich um einen Bus handelt erfolgt dadurch eine relativ simple 
Zugriffskontrolle.

Autor: Andi D. (xaos)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
hast du auch einen schaltplan von deinem aufbau ? so macht das keinen 
spaß !

Autor: Andre P. (stax)
Datum:
Angehängte Dateien:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Ich habe mal einen Schaltplan erstellt.

Wie bereits gesagt kommen die 5V vom Arduino und wenn ich TX+RX vom 
ATTiny2313V direkt mit TX+RX vom Arduino verbinde kommen die Daten beim 
Arduino an.

Daher sollte man Grundschaltung vom Attiny ja auch stimmen?


Danke schon einmal für die Hilfe!

Autor: Andre P. (stax)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Weiß keiner weiter?

Autor: also (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
RE/ und DE miteinander zu verbinden ist OK. Aber wenn du das auf festes 
Potenzial legst, legst du die Übertragungsrichtung in nur eine Richtun 
fest. Normalerweise steuerst du mit einem Pin des Controlles die 
Richtung, d.h. du wechselst zwischen Senden und Empfang. Genauer: Du 
schaltest nur dann auf senden, wenn du etwas zu senden hast, den Rest 
der Zeit bleibst du auf Empfang.

Autor: Andre P. (stax)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Das ist mir klar.
Aber um eine Fehlerquelle auszuschließen habe ich es zu Testzwecken 
dauerhaft auf HIGH gelegt.

Dann fällt die Fehlerquelle mit dem Timing und dem umschalten ja weg.

Autor: Martin Schneider (docmartin)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Hast Du ein Oszilloskop verfügbar?

Die Schaltung sieht ansich vernünftig aus, du müßtest also nach den 
Signalen
(TxD -> A/B -> RxD) schauen, um den Fehler zu finden...

Evtl. hilft ein komplettes R-Netzwerk an einem der MAX485 (also R von B 
gegen GND, R zwischen A und B, R von A nach VCC).

Ahoi, Martin

Autor: Andre P. (stax)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Leider habe ich kein Oszilloskop verfügbar...

Mir ist nicht ganz klar was Du mit R-Netzwerk meinst.

R ist ein Widerstand, wenn ja mit wie viel Ohm?

Autor: KiliPet (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Du hast in deiner Schaltung RE/ und DE von beiden RS485 bausteinen auf 
GND gelegt. Um von einem zum anderen zu senden muss natürlich der 
sendende auf Vcc und der empfangende auf GND.

Autor: KiliPet (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Ups haste ja,
mein Fehler.

Vielleicht A und B vertauscht?

Autor: Andre P. (stax)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Ne A und B ist nicht vertauscht.

A ist mit A verbunden und B mit B.

Autor: STK500-Besitzer (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Hast du schon mal die TXD-Datenleitung mit einem festen Pegel 
beschaltet, also ohne irgendwelche Controller und bei der Gegenstelle 
den gleichen Pegel gemessen?

Autor: Andre P. (stax)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Ich weiß nicht genau was Du damit meinst.

Ich habe die beiden Controller mal direkt mit TxD und RxD verbunden und 
dann hat alles funktioniert. Oder was meinst Du?


Danke für die Antworten bisher!

Autor: Konrad S. (maybee)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Damit meint er sowas wie:
Du hältst beide µCs dauerhaft im Reset, damit die Ports hochohmig sind.
Den einen MAX485 schaltest du auf Senden, den anderen auf Empfang.
Am DI des sendenden MAX485 legst du LOW an und kontrollierst am RO des 
empfangenden MAX485, ob ein LOW rauskommt. Dann mit HIGH testen.
Dann Sender und Empfänger umschalten und in die Gegenrichtung testen.

Autor: ge-nka (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
A und B mit Biaswiderständen auf GND und +5V ziehen, sonst geht bei 
einem UART-Frame der Startbit verloren, spätestens wenn du einen dritten 
Teilnehmer anschließt. Bei zwei kann es noch gerademalso funktionieren.

Autor: Andre P. (stax)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
ge-nka schrieb:
> A und B mit Biaswiderständen auf GND und +5V ziehen, sonst geht bei
> einem UART-Frame der Startbit verloren, spätestens wenn du einen dritten
> Teilnehmer anschließt. Bei zwei kann es noch gerademalso funktionieren.

Leider verstehe ich nicht ganz was Du damit meinst.

Wäre es möglich, dass Du mir einen kleinen Schaltplan anfertigst wo ich 
sehen kann was ich genau machen muss?

Das wäre sehr hilfreich.

Autor: ge-nka (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Beitrag "2 RS-485 so richtig ?"
mkmk schrieb im Beitrag #229213:
> In meinen Applikationen (Entfernung einige 100m) benutze ich 120R für R4
> und R7, 560R für R8, R9 bzw. R5, R6.
>
> R8, R9, R5 und R6 nur auf einer Seite.
> R4 und R7 auf beiden Seiten.
>
> MfG

R8,R9 und R5,R6 sind Biaswiderstände.

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




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 erkennst du die Nutzungsbedingungen an.

webmaster@mikrocontroller.netImpressumNutzungsbedingungenWerbung auf Mikrocontroller.net