RS485 Adressauswahl auf der Platine

OP #6909940
Lesenswert?

Hallo zusammen,

ich bin gerade dabei Sensorplatinen für einen RS485 Bus zu designen.
Bei RS485 ist es ja möglich bis zu 32 Teilnehmer anzuschließen und jeder 
Teilnehmer erhält hierfür eine Adresse.

Die Adressen der einzelnen Teilnehmer würde ich gerne direkt auf der 
Platine einstellen können. Ursprünglich habe ich dabei an Lötjumper (5 
Stück für die 32 Möglichkeiten) gedacht.
Allerdings reichen hierfür meine Pins am Mikrocontroller (vermutlich 
Attiny 441/841) nicht aus.

Ich habe schon daran gedacht den ADC zu verwenden und die Adresse über 
einen Spannungsteiler und 5 Widerstände (auch wieder über Lötjumper zu- 
oder abwählbar) einzustellen. Bei einer Parallelschaltung der Widestände 
(E6 Reihe) liegen die Werte zum Teil sehr eng beieinander und ich 
befürchte, das das nicht eindeutig funktioniert.
Oder gibt es hier einen "Trick"?

Oder gibt es noch eine andere elegante Lösung um die Adresse einstellen 
zu können und keine 5 Pins benutzen zu müssen?

Alternativ würde ich die Adresse fest in den EEPROM schreiben (das ist 
dann aber nicht mehr auf der Platin zu sehen) oder muss mir doch noch 
einen größeren Controller suchen.

Vielen Dank und viele Grüße
Fabian
#6909974
Lesenswert?

Hallo,

Du könntest einen I2C Portexpander verwenden, macht nur Platzmäßig 
keinen Sinn, könnte man gleich einen größeren µC verwenden.
Du kannst wie schon gesagt die Adresse ins EEprom schreiben.
Du kannst die Adresse im Programm hinterlegen. Muss nur vorm flashen 
immer die Adresse für jede Platine ändern.
Analog sollte mit 32 noch gehen. Ggf. nochmal filtern. Allerdings sollte 
der Spannungsteiler schon recht genau aufgebaut sein. Darfst nur nicht 
in Spannung umrechnen, nur die ADC Bits behandeln / vergleichen.
Am Einfachsten wäre allerdings, wenn du den ATtiny841 schon lieb 
gewonnen hast einen ATtiny1634 zu verwenden. Ggf. mit DIP-Schalter statt 
Lötjumper solange es der Platz hergibt.

Für RS485 und nur 32 Teilnehmer kannste den MAX487 verwenden. Der hat 
Slewrate bis 250kBaud und ist damit gutmüdiger. Gibts auch von anderen 
Herstellern. Datenblätter und Preise vergleichen.
Gast #6909985
Lesenswert?

Fabian W. schrieb:
> Bei einer Parallelschaltung der Widestände
> (E6 Reihe) liegen die Werte zum Teil sehr eng beieinander und ich
> befürchte, das das nicht eindeutig funktioniert.

Warum sollten die eng beieinander liegen. Kannst Doch die Spannungen 
gleichmäßig über den Spannungsbereich verteilen. Spannungsteiler aus 
einem Einzelwiderstand und zwei parallelen oder zweimal zwei parallele, 
für die Werte muss man sich halt ein bisschen im Excel spielen. Die 
Auswertung sollte der 8-bit ADC doch wunderbar hinbekommen.

Zur besseren Sichtbarkeit kann man (bei maschineller Bestückung) auch 
einfach irgendwo am Rand eine Reihe Dummy-Widerstände vorsehen, wo je 
nach Variante/Adresse einer/mehrere bestückt ist/sind.
#6910022
Lesenswert?

Hallo Fabian,

mit einem Jumper und einer LED die Adresse ins EEPROM bringen:

Jumper offen: Software zählt die Adressen durch und lässt die LED 
jeweils kurz aufleuchten. Der Beginn wird durch langes Aufleuchten 
angezeigt.

Jumper schließen: Der aktuelle Zählerstand wird als Adresse ins EEPROM 
geschrieben.

Oder Vergabe der Adresse per Software:
Alle deine Geräte akzeptieren eine "Broadcast" Adresse (z.B.: 0). Mit 
einer Punkt zu Punkt Verbindung kann darüber die Adresse eingestellt 
oder abgefragt werden.

Gruß
Ulrich

PS.: Offensichtlicher Nachteil, die aktuelle Adresse wird nicht auf dem 
Board angezeigt
Gast #6910036
Lesenswert?

Pin1 floating, Low, high
Das gleiche für Pin2 und du hast schon 6 mögliche Adr.
Pin1+2 short + floating, short + high, short + low.
9 Adr über zwei pins.

Wenn Du dann noch verschiedenen Gerätetypen definierst, die in 
unterschiedlichen Adressbereichen liegen, kommst Du ganz schön weit.

Aber Adr über ADC ist auch leicht.
Du must für einen 10bit ADC nur 32 diskrete Werte erkennen.
Das sollte wohl schaffbar sein.
OP #6910136
Lesenswert?

Vielen Dank für Eure schnellen Antworten!

Veit D. schrieb:
> Hallo,
>
> Du könntest einen I2C Portexpander verwenden, macht nur Platzmäßig
> keinen Sinn, könnte man gleich einen größeren µC verwenden.

Das habe ich mir auch schon überlegt, aber genau aus dem gleichen Grund 
wieder verworfen.

> Für RS485 und nur 32 Teilnehmer kannste den MAX487 verwenden. Der hat
> Slewrate bis 250kBaud und ist damit gutmüdiger. Gibts auch von anderen
> Herstellern. Datenblätter und Preise vergleichen.

Ich habe mich für den MAX3483 ausgesucht. Der ist auch Slewrate begrenzt 
und arbeitet mit 3,3 V.

Ulrich K. schrieb:
> mit einem Jumper und einer LED die Adresse ins EEPROM bringen:

Das ist auch eine interessante Idee!

> Oder Vergabe der Adresse per Software:
> Alle deine Geräte akzeptieren eine "Broadcast" Adresse (z.B.: 0). Mit
> einer Punkt zu Punkt Verbindung kann darüber die Adresse eingestellt
> oder abgefragt werden.

Punkt zu Punkt möchte ich vermeiden.

mm schrieb:
> Warum sollten die eng beieinander liegen. Kannst Doch die Spannungen
> gleichmäßig über den Spannungsbereich verteilen.

Du hast recht. Ich habe mich irgendwie zu sehr auf die "Standard" Werte 
versteift. Ich werde mal Excel anwerfen, das durchspielen und dann auch 
so umsetzen.

Danke nochmal für die schnelle Hilfe!
Fabian
#6910177
Lesenswert?

Wie viele Pins stehen denn zur Verfügung?
Hast Du 2 Stück über, so könnte ein - du musst ja sowieso an das Gerät - 
Programmieradapter, der über eine serielle Schnittstelle läuft, helfen. 
Die meisten Käfer haben was Serielles.
Einfachstprotokoll mit Komfortfunktion: Anzeigen.
Der Adapter kann dann sogar ein Display und ein paar Tasten enthalten 
oder gleich eine PC-Schnittstelle zur Verfügung stellen. Ist ja dann ein 
externes und nur zum Einstellen nötiges Teil. Die ursprüngliche Platine 
muss dann nur Rx und GND bzw. Tx, Rx und GND – etwas geschützt - zur 
Verfügung stellen.
Gast #6910207
Lesenswert?

Fabian W. schrieb:
> Ursprünglich habe ich dabei an Lötjumper (5
> Stück für die 32 Möglichkeiten) gedacht.
> Allerdings reichen hierfür meine Pins am Mikrocontroller (vermutlich
> Attiny 441/841) nicht aus.

Mit einem Pin 32 Adressen per HW festzulegen, wird knapp. Fünf Pins hast 
du nicht frei. So weit - so gut.
Wenn du also die Konfiguration nicht per SW machen willst, wäre es nicht 
unpraktisch, wenn du verraten würdest, wie viele Pins sich für den Zweck 
erübrigen lassen und ob die nur digital können oder auch an einen ADC 
geschaltet werden können.
Gast #6910211
Lesenswert?

Fabian W. schrieb:
> Ulrich K. schrieb:
>
>> mit einem Jumper und einer LED die Adresse ins EEPROM bringen:
>
> Das ist auch eine interessante Idee!

Bei der Firma MEP werden bei den Handmeldern von Brandmeldeanlagen, die 
Bus Adressen auf ähnliche Weise eingestellt. Wenn der Melder keine 
Adresse hat leuchtet eine rote LED dauerhaft. Und dann hat man einen SMD 
Knopf, dort stellt man dann Einer, Zehner und Hundert nacheinander durch 
eine jeweilige Anzahl von Tasten drücken ein. Und am Ende bekommt man 
das Ergebnis einmal vor geblinkt, und kann zum überprüfen mitzählen.
Gast #6910227
Lesenswert?

Fabian W. schrieb:
>> Warum sollten die [Anm.: Widerstandwerte] eng beieinander liegen.
>> Kannst Doch die Spannungen
>> gleichmäßig über den Spannungsbereich verteilen.

> Du hast recht. Ich habe mich irgendwie zu sehr auf die "Standard" Werte
> versteift. Ich werde mal Excel anwerfen, das durchspielen und dann auch
> so umsetzen.

Denk dran, E12 hat (std.) 10% Toleranz, d.h, ein 10k+10% (=11k) und ein 
12k-5% (=10.8k) uberschneiden sich schon. Du musst also schon mal jeden 
2. Wert auslassen. Für 32 unterscheidbare Adressen musst dann 6 Dekaden 
vorhalten. Würde ich mir gut überlegen, v.A. da "im Feld" nicht wirklich 
konfigurierbar (Lötkolben, Entlötpumpe, Widerstandskiste mitschleppen).

Die Jumper-Idee finde ich da besser. Beim Booten kann man ja über eine 
LED (auf dem Jumper-Pin) die Adresse rausmorsen (binär 5bit, 0=kurz, 
1=lang).

just my 2ct
Gast #6910230
Lesenswert?

>
> Alternativ würde ich die Adresse fest in den EEPROM schreiben (das ist
> dann aber nicht mehr auf der Platin zu sehen) oder muss mir doch noch
> einen größeren Controller suchen.
>
> Vielen Dank und viele Grüße
> Fabian

Ein Taster auf dem Slave. Beim Drücken fragt der Slave beim Master nach 
einer Adresse und bekommt diese zugewiesen. Diese dann einfach im EEPROM 
abspeichern.
#6910231
Lesenswert?

Wenn Du noch eine Ader frei hast, kannst Du das auch ganz anders machen:

Jeder Slave hat einen Eingang mit Pullup und einen Open Collector/Open 
Drain Ausgang. Alle Slaves sind hintereinander geschaltet, die 
Datenleitungen als terminierter Bus, und der Eingang eines jeden Slaves 
an den Ausgang des vorhergehenden Slaves. Die Ausgänge sind Normal high.

Nach dem Poweron sind alles Slaves passiv. Der Master zieht den Eingang 
des ersten Slaves auf low und sendet ihm seine Adresse. Wenn der erste 
Master konfiguriert ist, setzt er seinen Ausgang auf low. Jetzt kann der 
Master dem zweiten Slave seine Adresse geben usw usw, so lange, bis 
niemand mehr auf eine Konfigurationsanforderung antwortet. Damit ist 
alles dynamisch und automatisch konfiguriert.

fchk
Gast #6910492
Lesenswert?

Ein drehschalter, ok. Ein Speicherchip mit i2c oder onewire, ok. Aber 
Widerstände/lötbrucken ist Bastelei.

Den sensor über rs485 konfigurieren und gut ist. Egal ob per Taster im 
Netz, per Schritt beim kalibrieren oder per Seriennummer manuell. Und 
notfalls mit Filzstift draufschreiben.
#6910544
Lesenswert?

Es findet sich oft ein Weg, mehrere eigentlich für andere Zwecke 
genutzten Ausgänge über Dioden an einen einzelnen Eingang zu ziehen. In 
der Startphase kann dann darüber die Adresse definiert werden.

Allerdings ist dieses Verfahren natürlich von der konkreten Schaltung 
abhängig und damit nicht universell definierbar.
OP #6911669
Lesenswert?

Vielen Dank für Eure vielen Antworten!

Es sind einige interessante Ansätze dabei, auf die ich im ersten Moment 
nicht gekommen wäre.
In habe auch eingesehen, dass es in Hardware in meinem Fall nicht 
wirklich Sinn macht die Adresse einzustellen. Deswegen werde ich die 
Adresse wohl einmal in den EEPROM schreiben und diese dann mit Filzstift 
o.ä. auf die Platine schreiben.

Vielen Dank nochmal an alle!
Fabian
Gast #6911705
Lesenswert?

Gerhard O. schrieb:
> Ich löste das Problem der Adressenkodierung vor Jahren bei einem 433MHz
> Alarmsystem mit einem Druckknopf und langsam blinkenden LED Anzeige für
> bis zu 20 Sender und die Adresse wurde automatisch im EEPROM des PICs
> hinterlegt. Man könnte hier ähnlich vorgehen.

Ich greife hier nochmals die Heart-Beat-LED auf. Kostet eine I/O 
Leitung. Diese LED kann nach Reset die Adresse raus morsen: z.B. 
kurz-lang-kurz-kurz-lang = 01001 = Adr-9.

Wenn man es geschickt anstellt, könnte über den gleichen I/O-Pin 
vielleicht auch noch der Druckknopf/Taster gehen.

just my 2ct
Gast #6911851
Lesenswert?

Ich finde die Lösung interessant, die bei Türsprechstellen verwendet 
wird. Da sind normale Widerstände dabei, mit den Ziffern 0-9 bedruckt. 
In einen 8-Pin DIL-Sockel lassen sich 4 davon stecken. Über ADC werden 
daraus 00-99 dekodiert, Busabschluß und eine Sonderfunktion.
#6911961
Lesenswert?

Ansonsten böte es sich an, die Adresse über den Bus zu setzen.

Der Slave lauscht auf seiner eingestellten Adresse und einer 
Programmier-Adresse, die bei allen Slaves gleich ist. Letztere wird nur 
dann genutzt, wenn der entsprechende Sensor mit dem Master allein ist.

Dann spart man sich das Gefummel mit Tastern und LEDs und kann die 
Eingabemethoden des Masters nutzen.

Alternative: Per Jumper oder Taster in den "Adresse-Ändern-Modus" 
wechseln.
Gast #6912733
Lesenswert?

Sprechanlagen haben häufiger sowas ähnliches wie RS485, allerdings mit 
eingekoppelter Versorgungsspannung (24..30V) auf den Datenadern. Wenn 
ich die nächste Anlage mache, kann ich die Widerstände mal messen. 
Glaube 0 war Brücke, ging hoch bis 1M für 9.
OP #6913004
Lesenswert?

Jetzt habe ich zu dem Thema Adressvergabe über den Bus/über den Master 
noch ein paar Fragen.

Soweit ich es verstanden habe gilt in diesem Fall, dass jeder Slave die 
gleiche Programieradresse hat, bzw. über eine (natürlich auch wieder 
einheitliche) Broadcastadresse verfügt. Eine "normale" Adresse ist nicht 
vorhanden, bzw. nur eine voreingestellte, die zufällig oder 
voreingestellt ist.
Dadurch ist ein einzelner Slave ja nicht ansprechbar, denn es fühlen 
sich alle (oder die zumindest die Adressgleichen) Slaves gleichzeit 
angesprochen.

Die Adressvergabe kann dann nur durch einen Tastendruck am Slave oder 
das einzeln nacheinander anstecken der Slaves funktionieren, oder?
Oder wie löst man das normal?

Wenn nacheinander eingesteckt wird, wäre eine Hot-Plug-Fähigkeit 
natürlich von Vorteil. Wäre RS485 mit einem MAX3483 denn Hot-Plug fähig? 
Bzw. unter welchen Voraussetzungen ist da möglich? Hiermit habe ich mich 
noch überhaupt nicht beschäftigt.
Wie gut verkraften denn RJ45 Stecker das Einstecken/Ausstecken, wenn 
eine Bus-Versorgungsspannung (12 V) mitgeführt wird?
#6913028
Lesenswert?

Fabian W. schrieb:
> Oder wie löst man das normal?

Normal? Keine Ahnung. Ich habe noch nie ein Gerät mit RS485 gesehen, das 
ich als "normal" bezeichnet hätte. Und keines davon habe ich selbst 
entwickelt. Aber bei anderen Bussen existiert die gleiche Fragestellung, 
wenn man die Adresse selbst vergeben kann.

Fabian W. schrieb:
> Die Adressvergabe kann dann nur durch einen Tastendruck am Slave oder
> das einzeln nacheinander anstecken der Slaves funktionieren, oder?

Das wäre zumindest der naheliegende Ansatz. Irgendwie muss man das 
Gerät, das umprogrammiert werden soll, von den anderen unterscheiden 
können. Und irgendwie sollte man eine einmal gesetzte Adresse auch 
wieder oder ändern können. "Exklusiv auf einem Bus" wäre ein solches 
Unterscheidungsmerkmal. "Eigene Adresse nur zum Umprogrammieren" ein 
anderes. "Meldet einen bestimmten Status zurück" wäre ein mögliches 
drittes. "Der Master listet die Geräte-IDs aller Teilnehmer auf, und 
dann muss man da auswählen" ein Viertes.

Fabian W. schrieb:
> Wie gut verkraften denn RJ45 Stecker das Einstecken/Ausstecken, wenn
> eine Bus-Versorgungsspannung (12 V) mitgeführt wird?

Die Antwort auf diese Frage hängt zu 100% an Deiner (hier nicht 
bekannten) Beschaltung, da RJ45 keinerlei voreilenden/nacheilenden 
Kontakte hat, die helfen würden.
#6913057
Lesenswert?

Fabian W. schrieb:

> Die Adressvergabe kann dann nur durch einen Tastendruck am Slave oder
> das einzeln nacheinander anstecken der Slaves funktionieren, oder?

Ja. Oder wie ich das geschrieben habe, mittels einer zusätzlichen 
Leitung von Slave zu Slave.

Andere Möglichkeit: Jeder Slave hat von sich aus bereits eine eindeutige 
ID. Die kann er durch ein 1-Wire Device oder ein EEPROM mit 
vorprogrammierter Ethernet-Adresse (24AA02E48/E64 oder AT24MAC402/602 
für I2C, 25AA02E48/E64 für SPI) bekommen.

> Wenn nacheinander eingesteckt wird, wäre eine Hot-Plug-Fähigkeit
> natürlich von Vorteil. Wäre RS485 mit einem MAX3483 denn Hot-Plug fähig?

Hotplug ist bei RS485 nicht vorgesehen. Wenn Du den Bus auftrennen 
musst, um ein Device einzuhängen, ist der Bus in der Zwischenzeit tot, 
weil nicht mehr ordentlich terminiert. Bei Twisted Pair Ethernet ist das 
beispielsweise gar kein Problem, weil alle Devices dort mit einem Switch 
sprechen.

> Wie gut verkraften denn RJ45 Stecker das Einstecken/Ausstecken, wenn
> eine Bus-Versorgungsspannung (12 V) mitgeführt wird?

Power Over Ethernet existiert und funktioniert problemlos. Allerdings 
nimmt man dort 48V, um mehr Leistung übertragen zu können. 48V 
Nennspannung ist die höchste Spannung, bei der man sich nicht um 
Berührungsschutz usw kümmern muss. Jedes PoE-Gerät hat daher einen 
DC-DC-Wandler von 48V auf die benötigten internen Spannungen eingebaut.

fchk
Gast #6913099
Lesenswert?

Fabian W. schrieb:
> Wenn nacheinander eingesteckt wird, wäre eine Hot-Plug-Fähigkeit
> natürlich von Vorteil.

Dafür ist RS485 nicht vorgesehen, also schlage dir das aus dem Kopf.

Du gibst mir das Gefühl, soviel Universalität wie möglich unterbringen 
zu wollen, ohne dass dafür konkreter Bedarf besteht. Damit machst du es 
nur unnötig kompliziert. Es sind immer die komplizierten Systeme, die 
einem später ärger bereiten.

Wenn dein Mikrocontroller für eine simple Address-Eingabe die jeder 
nachvollziehen kann zu wenig Pins hat, hat nimm einen größeren. Wenn es 
keinen größeren gibt, dann nimm Port Expander.

Dein Hot-Plug fähiges System mit automatischer Address-Zuteilung wurde 
schon lange erfunden und hat sich bewährt: Ethernet. Versuche nicht, 
dieses Rad neu zu erfinden!
OP #6913154
Lesenswert?

Hallo Stefan,

keine Sorge, so universell soll und wird es nicht werden ;)
Meine erste Idee war, dass ich die Adressen über die Pins eingebe. Denn 
das schien mir am einfachsten.
Da ich dafür aber keine freien Pins mehr habe, fiel das mit dem 
aktuellen Tiny flach.

Als Hobbybastler ist es aber so, dass man an viele Sachen nicht denkt, 
die für einen Profi zum Standard gehören. Deswegen habe ich mich ans 
Forum gewandt um zu hören wie ein Profi das ganze lösen würde.

Ich habe aber dann schnell (ein-)gesehen, dass es hier für mich keine 
einfache uns sinnvolle Lösung gibt. Deswegen bekommt der Tiny seine 
Adresse in den EEPROM beim ersten Programmieren und die Sache ist 
erledigt. Alternativ nehme ich einen größeren Tiny, aber das ist mir nur 
für die Adresseingabe eigentlich zu schade.

Jetzt kommen aber die vielen Kommentare zur automatischen Adresseingabe 
und meine Neugier ins Spiel :)
Das System dahinter habe ich irgendwie nicht verstanden oder es ist 
wieder recht kompliziert/aufwändig. Daher wollte ich nochmal nachfragen, 
das ganze verstehen und schauen ob meine Überlegungen Sinn machen.

Die Entscheidung ist aber schon gefallen und so Sachen wie Hot-Swap, 
automatische Zuteilung, ... werde ich sicher nicht machen.
Interessant ist es aber schon darüber nachzudenken, Probleme versuchen 
zu verstehen und  diese Probleme (zumindest im Kopf) versuchen zu lösen. 
Das ist für mich nämlich auch ein großer Teil des Hobbys. Selbst wenn 
die Problemlösung dann gar nicht gebraucht oder umgesetzt wird.

Danke, viele Grüße und schon mal ein schönes Wochenende!
Fabian
Gast #6913158
Lesenswert?

Fabian W. schrieb:
> Die Adressvergabe kann dann nur durch einen Tastendruck am Slave oder
> das einzeln nacheinander anstecken der Slaves funktionieren, oder?

Oder bei der Fertigung oder durch Seriennummer oder zufällige 
Verzögerungen, oder oder

> Wenn nacheinander eingesteckt wird, wäre eine Hot-Plug-Fähigkeit
> natürlich von Vorteil. Wäre RS485 mit einem MAX3483 denn Hot-Plug fähig?

Was meinst Du damit?

Notfalls geht halt ein Telegramm kaputt. Das kann immer passieren.
Gast #6913165
Lesenswert?

Fabian W. schrieb:
> Alternativ nehme ich einen größeren Tiny, aber das ist mir nur
> für die Adresseingabe eigentlich zu schade.

Was genau ist "zu schade"? Der nächst größere wird wohl kaum so viel 
teurer sein, dass es eine Rolle spielt. Hast du keinen Platz?

Oder sind dir wenig genutzt Pins zu kostbar? Das wäre albern.

Fabian W. schrieb:
> Interessant ist es aber schon darüber nachzudenken,

Auf jeden Fall. Befasse dich mit Ethernet:
- Was mach ein MAC?
- Wie sehen die Signale von 10Base-T aus? Was ist bei 100 MBit und 
Gigabit anders?
- Warum verwendet Ethernet Übertrager? Warum 2 verdrillte Leitungen? 
Warum kann man nicht jede beliebige Kabel verwenden?
- Wo ist der Unterschied zwischen MAC und IP Adresse?
- Wo kommt die IP Adresse her?
- Woher weiß ein Switch, an welchem Port ein Gerät mit einer bestimmten 
Adresse angeschlossen ist? Zählt hier die MAC- oder die IP-Adresse?
- Woher weiß ein Router, über welchen Weg ein Gerät erreichbar ist? 
Zählt hier die MAC- oder die IP-Adresse?
- Was mach das UDP Protokoll? Welche Vor- und Nachteile hat es?
- Was mach das TCP Protokoll? Welche Vor- und Nachteile hat es?
- Was kommt bei WLAN noch dazu? (AP, STA, WPA2, WPS)

Ich empfehle dir das, weil dort viele bewährte Grundlagen zu 
Bus-Systemen kombiniert wurden. Was du sort lernst wird dir auch bei 
anderen Bussen immer wieder begegnen. Und im Mikrocontroller Umfeld ist 
die Anbindung via Ethernet/WLAN längst alltäglich geworden.
#6913977
Lesenswert?

Dumme Idee... Du kannst zwar 32 Teilnehmer physikalisch betreiben aber 
die wirklich Anzahl der Teilnehmer hängt vom Protokoll ab. In jenes 
Protokoll kann man auch das setzen der Adresse einbauen. Somit ist keine 
Hardware dazu nötig.

Da baut man sich dann eine Art Programmiergerät welches die Adressen 
setzt.
Gast #6913990
Lesenswert?

Also ich würde bedenken dass bei einem Bussystemen welches erweitert 
wird, auch Adressen mitten im Busstrang ausgetauscht werden müssen z.b. 
oder eingefügt, oder entfernt. Man sollte sicherstellen dass dies am 
Ende einwandfrei funktioniert, sonst ist der Bus ziemlich unpraktikabel.
#6914100
Lesenswert?

Walter T. schrieb:
> Fabian W. schrieb:
>> Wie gut verkraften denn RJ45 Stecker das Einstecken/Ausstecken, wenn
>> eine Bus-Versorgungsspannung (12 V) mitgeführt wird?
>
> Die Antwort auf diese Frage hängt zu 100% an Deiner (hier nicht
> bekannten) Beschaltung, da RJ45 keinerlei voreilenden/nacheilenden
> Kontakte hat, die helfen würden.

Generell sind Stecker nicht dafür gedacht, unter Last gesteckt zu 
werden. Allerdings sind 12V noch mal harmloser als 48V, siehe oben. Nur 
mit dem Strom muss man aufpassen, recht viel mehr als 0.5A sind nicht 
drin. Und bei langen Kabeln muss man auch den Spannungsabfall 
berücksichtigen.

Offiziell hat RJ45 vielleicht keinerlei voreilende Kontakte, praktisch 
macht das Schirmblech von Patch-Kabeln mehrere Millimeter vorher 
Kontakt. Natürlich nicht mit UTP-Kabeln und natürlich gibt es 
RJ45-Buchsen, die das nicht unterstützen. Aber solche muss man ja nicht 
einbauen. Bleiben noch die Benutzer, die mal eben das übrige UTP-Kabel 
vom kaputten Router benutzen...
Persönliche Seite #6919790
Lesenswert?

Frank K. schrieb:
> Nach dem Poweron sind alles Slaves passiv. Der Master zieht den Eingang
> des ersten Slaves auf low und sendet ihm seine Adresse. Wenn der erste
> Master konfiguriert ist, setzt er seinen Ausgang auf low. Jetzt kann der
> Master dem zweiten Slave seine Adresse geben usw usw, so lange, bis
> niemand mehr auf eine Konfigurationsanforderung antwortet. Damit ist
> alles dynamisch und automatisch konfiguriert.

So ähnlich habe ich das mal in einem Sensornetzwerk gemacht und auch 
kürzlich irgendwo hier im Detail beschrieben. Wir hatten vor gefühlt 6 
Wochen ein ähnliches Thema. Ist im Prinzip eine einmalige 
Busarbitrierung. Man muss nur durch die Verkabelung sicherstellen, dass 
bekannt ist, welcher Sensor an welcher Position sitzt. Damit kriegt mal 
alles eingebunden, was es zu kaufen gibt.

Wenn man die Sensoren aber selber herstellt, kann man sie meistens 
branden, also eine Seriennummer verpassen. In einem Fall habe ich meinem 
Kunden empfohlen, einfach eine lokale MAC-Adresse einzubrennen. Das hat 
sich Jahre später sehr bewährt! Hier würde ich mal nachprüfen, ob man 
nicht bei der Auslieferung und dem Test der Module einfach eine 
fortlaufende Seriennummer in das board bekommt. Wer weiß wie die später 
mal konfiguriert werden müssen und ob nicht mehrere Einheiten aus 
mehreren Subnetzwerken verschaltet werden müssen.

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