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