Hallo, ich würde gerne ein RS485 Signal über Funk übertragen. Am liebsten wäre es mir wenn Master und Slave immer Sendebereit wären. Wenn dann der Master Daten sendet, soll der Slave zunächst einen Ausgang schalten der am MAX485 des Slaves RE und DE enabled. Will der Slave Daten an den Master zurücksenden soll das Mastermodul auch erst erkennen das Daten kommen einen Ausgang schalten um RE und DE zu enablen und dann die Daten annehmen. Ist das mit XBEE möglich? Oder wie würdet ihr das realisieren? Wichtig ist mir auch das wenig Strom verbraucht wird. Schonmal Danke im voraus.
Dir ist aber schon klar, dass RS485 bidirektional ist, und Master Slave dann ein pollen des Slaves bedingt? Insofern passt das, als beide per Protokol wissen muessen, wann sie senden duerfen.
Ja das ist mir bewusst. Die "Intelligenz" hinter den Funkmodulen weiß wann es senden darf. Meine Frage ist eigentlich noch, ob es möglich ist das ein Ausgang geschaltet wird sobald das Xbee Modul Daten empfängt. Mit diesem Ausgang würde ich dann halt den DE und RE Pin am MAX485 enablen, sodass das Funkmodul im Empfangsmodus ist.
Muss es denn unbedingt XBee sein? Gehe ich richtig davon aus das es nur eine Punkt-zu-Punkt-Verbindung ist? Würde da ein Wald-und-Wiesen-Bluetooth-Modul nehmen ... SPP fahren ... und durch deren SerialSelect's dein DirectionPin wackeln lassen. Was Stromverbrauch angeht ist Bluetooth vielleicht auch noch verschmerzbar ... kommt natürlich ganz auf deine Ansprüche an.
In den meisten Fällen reicht Punkt zu Punkt aus, allerdings werde ich auch Anwendungen haben bei denen ich Punkt zu Mehrpunkt benötige. Die einzelnen RS485 Teilnehmer sind mit Adressen versehen.
XBee als ein Zigbee derivat hat ein ganz anderes Protokoll im Vergleich zum Blutooth. Bluetooth verplempert viel mehr Zeit fuer die Verbindungsaufnahme. Bleib bei Zigbee, resp Xbee
Hab mir jetzt mit zwei Arduinos einen Testaufbau aufgebaut. Ich sende über einen MAX485 meine Daten an den Arduino. Die Empfangenen Daten werden dann an die zweite Schnittstelle, an der das XBEE Modul sitzt, weitergegeben. Das zweite XBEE Modul empfängt die Daten und sendet diese an ein zweites XBEE Modul, dieses gibt sie an den zweiten Arduino weiter. Der zweite Arduino schaltet einen Pin HIGH womit er den Zweiten MAX485 auf senden stellt und gibt die Empangenen Daten weiter. Wurden die Daten übertragen schaltet der Arduino den Pin wieder auf LOW und die Datenübertragung kann in die andere Richtung ausgeführt werden. Das Funktioniert so auch alles... alerdings perfekt ist was anderes :) Ich würde mir wünschen das das XBEE Modul selber einen Pin HIGH schaltet wenn es Daten empfängt um so den MAX485 auf senden zu schalten. Das ist aber wohl nicht möglich oder? Oder habt ihr eventuell Ideen wie ich es ansonsten lösen kann. Wichtig ist halt das ich Zweidraht 485 nutze und auch nicht auf 4 Draht wechseln kann. Schön wäre vielleicht auch anstatt des MAX485 ein IC welches selber erkennt von wo gerade Daten kommen sodass ich garnicht umschalten musss. Gibt es da was?
:
Bearbeitet durch User
Du kannst im Prinzip die Treiber vom CAN-Bus nehmen, dann erübrigt sich die Umschaltung PCA82C250 z.B.. Allerdings bekommst Du dann ein Echo.
Sebastian Graw schrieb: > Das Funktioniert so auch alles... alerdings perfekt ist was anderes :) > Ich würde mir wünschen das das XBEE Modul selber einen Pin HIGH schaltet > wenn es Daten empfängt um so den MAX485 auf senden zu schalten. Wie lange must du das High signal denn haben? Vielleicht kannst du den RSSI Eingang oder den ON Eingang nutzen. Der RSSI liefert allerdings ein PWM Signal bei empfangenen Daten, in Abhängigkeit der Signalstärke, somit sind das nicht immer 3,3V. Der ON Eingang wird HIGH sobald ein Sleepy End Device Daten empfängt. Sobald sich das Modul wieder schlafen legt wird der Eingang auch wieder LOW.
Die meisten XBees haben eine eingebaute Flusskontrolle für RS485, für das XBee 802.15.4 z.B. zu finden unter I/O-Settings in den AT Kommandos. Hier kann man DIO7 zur Steuerung des RS485 programmieren. Muss man also einmalig nach Factory-Default einstellen. Möglichkeit 2 ist die Nutzung eines Transceivers mit Auto-Direction, gibt es aber keine große Auswahl (z.B. Maxim MAX13487)
Hatte meine XBEE Module auf Version 10EC stehen und deshalb bei DIO7 nicht die Möglichkeit auf Flusskontrolle für 485 zu stellen. Bin gespannt wie das läuft werde es am Freitag ausprobieren. Danke Harald
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.