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

OP #2588143
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
Angehängte Dateien:
Gast #2590512
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.
OP #2605952
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!
Angehängte Dateien:
Gast #2615168
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.
#2615179
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
Gast #2615378
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.
Gast #2616146
Hast du schon mal die TXD-Datenleitung mit einem festen Pegel 
beschaltet, also ohne irgendwelche Controller und bei der Gegenstelle 
den gleichen Pegel gemessen?
#2616270
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.
Gast #2616276
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.
OP #2618331
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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.