Forum: Mikrocontroller und Digitale Elektronik 1-Wire mehrere Teilnehmer


von Jürgen (Gast)


Lesenswert?

Hallo,

die 1-Wire Teilnehmer haben eine 64bit Adresse. Wie ist die übliche 
Vorgehensweise, um diese ohne einem zusätzlichen Arbeitsschritt 
untereinander zu identifizieren?

Wenn ich beispielsweise eine Leiterplatte mit mehreren DS18S20 habe (nur 
ein Beispiel) und diese Leiterplatte bestücke, dann kann ich zwar 
scannen wieviele Temp.-Sensoren es gibt. Auch kann ich deren 64bit 
Seriennummern auslesen.

Aber wie bekomme ich ohne Trial und Error heraus, welcher Sensor sich wo 
befindet? Gibts dafür eine Prozedur?

Sonst müsste ich stets einen Sensoren nach den anderen auflöten, die 
Adresse auslöten und anschließend für jede Leiterplatte die Software 
anpassen.

Wie macht man das elegant?

von Sebastian R. (sebastian_r569)


Lesenswert?

Jürgen schrieb:
> Aber wie bekomme ich ohne Trial und Error heraus, welcher Sensor sich wo
> befindet? Gibts dafür eine Prozedur?

Bei den DS18S20 steht ein Teil der Seriennummer auf dem Gehäuse.

Ansonsten einen nach dem anderen gezielt erwärmen  und zuordnen. Das 
könnte man sogar halbautomatisch gestalten...

"Bitte Sensor 1 erwärmen", die Software schaut dann, welcher der Werte 
steigt und weiß dann, welche Seriennummer zu Sensor 1 gehört.

von Jürgen (Gast)


Lesenswert?

Sebastian R. schrieb:
> "Bitte Sensor 1 erwärmen", die Software schaut dann, welcher der Werte
> steigt und weiß dann, welche Seriennummer zu Sensor 1 gehört.

Vermutlich "Hand auflegen" ;). Aber sowas habe ich mir auch gedacht.

von Sebastian R. (sebastian_r569)


Lesenswert?

Jürgen schrieb:
> Vermutlich "Hand auflegen" ;). Aber sowas habe ich mir auch gedacht.

Overkill: An jedem Sensor noch einen Widerstand als Heizung vorsehen und 
das ganze beim ersten Einschalten automatisieren :D

von Jürgen (Gast)


Lesenswert?

Dann hat sich der Vorteil des "eine Leitung" aber egalisiert. Dann nimm 
ich doch lieber SPI oder I²C. Mir erschließt sich das der Vorteil nicht.

Natürlich kann man im Fall vom D18S20 das so gestalten, dass man die 
abgesetzten Sensoren nach und nach anschließt.

Aber auf einer Leiterplatte z.B. mit Portexpandern? Hier müsste ich auch 
von jedem IC eine Leitung zurückführen.

Das geht meiner Meinung nach immer nur elegant, wenn ich ein Exemplar 
pro Familienmitglied habe.

von Falk B. (falk)


Lesenswert?

Jürgen schrieb:
> die 1-Wire Teilnehmer haben eine 64bit Adresse. Wie ist die übliche
> Vorgehensweise, um diese ohne einem zusätzlichen Arbeitsschritt
> untereinander zu identifizieren?

Geht per Definition gar nicht, denn das Identifizieren, wie auch immer 
das aussieht, IST ein zusätztlicher Arbeitsschritt.

Sensoren mit I2C oder SPI werden durch ihre Adresseingänge bzw. das CS 
Signal in der Hardware kodiert, welche dann fest ist.

von Wolfgang (Gast)


Lesenswert?

Jürgen schrieb:
> Dann hat sich der Vorteil des "eine Leitung" aber egalisiert. Dann nimm
> ich doch lieber SPI oder I²C. Mir erschließt sich das der Vorteil nicht.

In einer datentechnisch vernünftig durchstrukturierten Produktion wird 
die ID vor der Bestückung erfasst und im begleitenden Datenbestand die 
Adressbelegung festgehalten, so dass sie für die 
Konfiguration/Sensorzuordnung zur Verfügung steht.

von Falk B. (falk)


Lesenswert?

Wolfgang schrieb:
> In einer datentechnisch vernünftig durchstrukturierten Produktion wird
> die ID vor der Bestückung erfasst und im begleitenden Datenbestand die
> Adressbelegung festgehalten, so dass sie für die
> Konfiguration/Sensorzuordnung zur Verfügung steht.

Na dann mal viel Spaß mit OneWire ICs. Dort steht die Adress nur IM IC. 
Willst du die VOR der Bestückung auslesen?

von Jürgen (Gast)


Lesenswert?

Falk B. schrieb:
> Sensoren mit I2C oder SPI werden durch ihre Adresseingänge bzw. das CS
> Signal in der Hardware kodiert, welche dann fest ist.

Das ist mir bewusst. Ich habe nun eine Leiterplatte mit einem 1-Wire 
Teilnehmer - also nicht tragisch. Ich frage mich nur was passiert, wenn 
ch da noch mehr drauf klatsche.

von Falk B. (falk)


Lesenswert?

Jürgen schrieb:
> Das ist mir bewusst. Ich habe nun eine Leiterplatte mit einem 1-Wire
> Teilnehmer - also nicht tragisch. Ich frage mich nur was passiert, wenn
> ch da noch mehr drauf klatsche.

Ja mein Gott, die Welt wird wahrscheinlich nicht aus den Fugen geraten!
Wenn es ein anderer Typ ist, ist es trivial. Wenn es der gleiche Typ 
ist, musst du per Scan und äußerer Stimulation herausfinden, welcher IC 
zu welcher ID gehört und das dann in deiner Software ablegen. Oder 
vorher den IC einzeln auf einem Testboard auslesen und dann auflöten. 
Für ein Hobbyprojekt oder eine Kleinserie ist das belanglos, bei 
Massenproduktion sieht das anders aus.

von Peter D. (peda)


Lesenswert?

Man kann die Sensoren auch vor dem Einbau konfektionieren, d.h. in den 2 
Byte EEPROM eine Kennung eintragen (Sensornummer + CRC).

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
Noch kein Account? Hier anmelden.