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

OP #2588143
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
Angehängte Dateien:
Gast #2590512
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.
OP #2605952
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!
Angehängte Dateien:
Gast #2615168
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.
#2616270
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.
Gast #2616276
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.
OP #2618331
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren