PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bus mit RS485



Johannes G.
14.03.2007, 14:19
Hallo,

ich will einen kleinen Bus mit RS485 realisieren. (mit AVRs)
Hat da jemand Infos wie ich den MAX485 anschließen muss usw?


Viele Grüße,
Johannes

Zapo.
14.03.2007, 17:11
schau mal hier:

https://www.roboternetz.de/wissen/index.php/RS485

die Hardware ist nicht schwer zu realisieren... das Protokoll ist wohl eher das Problem! war zumindest bei mir so...

wenn du danach googelst findest du auch noch ne Menge darüber....

beim erstellen vom Protokoll immer vom "Worst Case" ausgehen!...

Johannes G.
14.03.2007, 17:55
Hallo,

das im Wiki habe ich schon gelesen.
Leider werde ich dadurch nicht schlau wie ich den MAX485 anschließen muss.
Am ende soll es ein Bus mit ca 10 Teilnehmern sein. (Mehrere Master)
Protokoll wird auch noch etwas arbeit, aber dass ist im moment mein kleineres Problem... Weil zur Hardware hab ich keine Idee...

Zapo.
14.03.2007, 18:25
verständlicher?

Johannes G.
14.03.2007, 19:40
Danke für das Bild
Noch ein paar Fragen ^^
1. Rx und Tx an den AVR, oder?
2. wohin geht /EN?
3. Warum ist bei Log+ ein Pulldown und bei Log- ein Pullup Widerstand? Sind das die Abschlusswiderstände?

Viele Grüße,
Johannes

Zapo.
14.03.2007, 20:55
1. RX und TX habe ich über Optokoppler vom AVR ! also ja. (die Optokoppler kannst du dir auch sparen!)

2. /EN = enable.. also einfach einen PortPin des Prozessors ... wenn du senden möchtest mußt du diesen Port auf low legen....
Achtung ist glaube ich in meiner Zeichnung falsch... siehe Datenblatt des LTCs da einer der beiden Enable nämlich negiert ist!
zum empfangen mußt du dann natürlich diesen PIN auf High legen (was auch der Grundzustand von allen ist!)

wichtig wäre noch zu erwähnen das der AVR nicht direkt anfangen darf zu senden und nach dem senden auch nicht gleich den PIN wegnehmen darf... da durch die Treiberlaufzeiten ansonsten die ersten Bits/Bytes nicht richtig emfpangen oder gesendet werden können...

eine kurzen wartezeit 1-2-3 ms sollte ausreichend sein... probiers einfach aus.

3. die Widerstände sind Konfigurationswiderstände und sollten von dir nicht so beachtet werden! schau dir mal in Beispielen an welche Werte bei anderen schaltungen benutzt worden sind..

soweit ich weiß funktioniert das ganze auch ohne bei kurzen Übertragungswegen, ist allerdings empfehlenswert welche zu verwenden. sobald ein gewisser Übertragungsweg überschritten wird ist es sogar ein MUß.

hoffe ich konnte dir helfen.

und nochmal der TIP:
im Grundzustand hören alle empfänger zu! ein Master sendet, alle hören zu, nur der sich angesprochen fühlt darf auch Antworten! und das erst dann wenn der Master sein Enable "rechtzeitig" wieder auf High gesetzt hat! - also am besten jedem Modul eine Adresse zuweisen! - aber vorsicht mit der Adressvergabe, denn beim RS485 BUS kann jeder Teilnehmer der Master sein und deswegen ist es auch möglich das jedes Modul zu einem anderen sendet. ES DARF ABER IMMER NUR EINER DEN BUS BELEGEN UND SENDEN!

das muß dein Protokoll festlegen!

Zapo.