DS18B20 möglichst Störungsfreier Betrieb

Ich möchte das Thema gezielt aufgreifen, weil es wichtig ist. Deshalb auch unter der richtigen Überschrifft stehen sollte. Ich hatte eine andere Frage zur Entstörung allgemein im Gehäuse eines Gerätes abgefragt, da war das nicht die Antwort auf die Frage. Aber hier will ich jetzt gerne von Doc_Arduino herausstellen, weil es natürlich Sinn macht.

Ja, geschirmte Leitungen bis zum Sensor, ganz klar. Keine parasitäre Versorgung, ja, ganz klar. Der eine Draht mehr sollte drin sein. Das mit 100nF möchte ich aufgreifen. Der kommt rein. Ich warte nur noch auf ein geschirmtes 1 Adriges Kabel, mit dem ich auch einzelne geführte Datenleitungen im Gehäuse von Einstrahlung schützen kann, dann mache ich nochmal auf und Teste das was Doc_Arduino dazu geschrieben hat. Und es gab noch die Möglichkeit, den 4,7KOhm Widerstand weiter runter zu setzen, auf vielleicht 3K. In einem anderen Thema hatte mal einer 2K verwendet und ist damit dann glücklich gewesen. Aber ich glaube das ist die Maßname, die ich nur zum Schluss nehmen würde.

Der Zweite Punkt war:

Ja, ich habe diese Motortreiber, die mit Sicherheit der Grund für die Probleme sind. Und dass die über die Versorgungsspannung auch zurück über den DC/DC Wandler stören können, hatte ich nicht so auf dem Schirm. Ich bin auch nicht der Störungsjäger :roll_eyes: mit dem Oszi. Dafür gibts ja glücklicherweise andere User hier. :+1:

An das ganze Thema gehe ich nochmal dran, wenn ich alle Teile bekommen habe, die ich für das Umfassende entstören brauche. Das dauert leider Dank des Lieferanten für mein geschirmtest 1 Adriges Kabel noch 10 Tage :roll_eyes: Und ich habe mir auch ein leitendes Tuch bestellt, mit dem ich EMS Störungen ausblenden bzw. suchen kann. Das dauert auch 10 Tage sehe ich gerade. :roll_eyes: Ich möchte wenn ich die Kiste wieder öffne, alles in einem Aufwasch erledigen können.

Aber Danke an die, die bei solchen Themen wirklich helfen wollen. Wie eben Doc_Arduino und einige Andere hier, die es nicht nötig haben, ihr EGO auf Kosten anderer aufzupollieren.

Franz

Aber das wird sicher interessant

1 Like

Ich hab keine Ahnung, was Du jetzt baust und weshalb die Thematik 1-Wire jetzt abgespalten wurde. Aber ich denke mal, das es hier wohl um Topologie gehen soll.

Dann wäre es schön, wenn Du mal kurz zusamenfassen könntest, was Dein Problem ist.
Möglicherweise hilft ja schon https://pdfserv.maximintegrated.com/en/an/AN3925.pdf wenn es um etwas größeres geht.
Topologie als solches ist z.B. in https://www.analog.com/media/en/technical-documentation/tech-articles/guidelines-for-reliable-long-line-1wire-networks.pdf behandelt.

Es gibt ne Menge Tech-Notes, ich kann mich dran erinnern, das ich für ein Sensorprojekt damals mindestens 3 Tage nur Specs gelesen habe...

Das ist ein Gerät, das meine PC zusätzliche Lüfter stellt. Einer wird nach Raumtemperatur gesteuert, einer nach CPU Kühler Temperatur. Aber ich möche das Thema nicht schon wieder in die falsche Richtung führen, indem schon wieder das Gerät Thema ist. Es geht ALLGEMEIN um Entstörung der DS18B20 Messungen in allen möglichen Sytuationen. Also BITTE nicht schon wieder an meinem Gerät festmachen, das hatten wir gerade bei den Versuch, einen Tipp zu bekommen, wie ich EMS Maßnahmen durch eine flexible räumliche Trennung im Gerät ging. Da ging es auch nicht um das Gerät, sondern um ein bestimmtes Material, das überhaupt nichts mit dem Gerät zu tun hat. da wurden es 47 Beiträge um dess Kaisers Bart, die sich keiner durchließt wo man mit 2-3 Antworten eigentlich am Ziel wäre.

Also mein Gerät zählt hier nicht. Könnten wir uns darauf einigen? Störungen der Daten bei der Messung mit dem DS18B20 ist ein allgemeines Problem. Ob da wie bei mir Motortreiber reinstören oder bei anderen Usern Relais, ist egal. Alles ist möglich.

Franz

Was war an

unverständlich?
Ist doch ok.
Und ich sag Dir, halte Dich an die ApNotes und alles wird gut.

Ich warte auf das Material hier. Die geschirmten Drähte und der Leitende Stoff zum Abschirmen ganzer Bereiche. Und dann mache ich Stück für Stück der jetzt möglichen EMF Maßnahmen durch, mit Achtung auf die Reaktionen. Ich habe in dem Link von dir zumindest schon mal gesehen dass ich den Buss sehr wohl Sternförmig, als auch in Reihe ausführen kann. Das gefällt mir schon mal, weil ich mich bei einem anderen Gerät schon recht schwer tun würde, den Stern zur Reihenschaltung umzubauen.

Lies nochmal den Abschnitt "Precautions with Star Topologies".

....ich hab so ungefähr 50 Stück von den DS18b20 im Haus verbaut.
Ich nenne es mal in einer gemischten Netzform.
Es hänge auch nicht alle an einem Master, aber ich denke ich kann da auch was zu sagen.
Bei einem sternförmigen Netz ist das Problem, dass die vielen Netz-Enden Reflexionen erzeugen. Das kann dann zu irgendwelchen Phänomenen führen. Daher soll man das vermeiden.
Schließt man die Sensoren alle in Reihe an, gibt es nur ein Ende und eine Reflexion. Dann funktioniert das wesentlich störunanfälliger.

In Absprache mit Doc_Arduino gelöscht, weil es um Befindlichkeiten ging und nicht zum Thema gehört.

Franz

1 Like

Phuuuu. Und alle die auf ihre jeweilige CPU gehen, in einem Bus verlegt. Also immer eine Datenverbindung zum Sensor und eine vom Sensor zum nächsten. Also zu jedem DS18B20 vier Drähte minimal, oder gar mit der Spannung? ...auch geführt wie im Bus. Dann sind es 6 Drähte zu jedem DS18B20. Drei hin, drei weiter. Das ist ne gewaltige Ansage. Und wenn ein Kabel nicht mehr ok ist, eine Buchse im Netzwerk-Schrank nicht mehr gut ist, ist Ende Gelände für alle Fühle, die dahinter kommen.

OK, für Leute wie ich habe ich den Text den du ansprichst mal Googleübersetzt:

"Vorsichtsmaßnahmen bei Sterntopologien
Tests haben gezeigt, dass nicht geschaltete sternförmige Netzwerktopologien (d. h.
diejenigen mit mehreren Zweigen, die am Master auseinanderlaufen) sind am häufigsten
schwierig, zuverlässig zu machen. Die Kreuzung verschiedener Zweige stellt sich dar
stark ungleiche Impedanzen; Reflexionen vom Ende eines Zweiges
kann Entfernungen zurücklegen, die nahezu dem Gewicht des Netzwerks entsprechen (eher).
größer als der Radius) und zu Datenfehlern führen. Aus diesem Grund ist das ungeschaltete
Eine Sterntopologie wird nicht empfohlen und es können keine Garantien gegeben werden
über seine Leistung."

Ja, OK, dann ist das so. Aber bei meinen zwei Fühlern wird das bedeutungslos. Für Leute wie Themanfrommoon, mit 50 Sensoren im Haus ist das sicher wichtig. Ich leiste mir diesen Aufwand nicht, weil ich ja auch nur meine Privaten Geräte baue. Ich habe kein Gerät, das mehr als zwei Temperatur-Messstellen benötigt. Aber ich werde dann wenn mein Material zur Entstörung komplett angekommen ist, und trotzdem nicht zum Ziel führen, auch den Bus testen.

1 Like

Bilder vom Aufbau (wer kennt es nicht je mehr man ausprobiert umso unordentlicher wird es :innocent:):

Bilder sagen mehr als 1000 Worte

Inzwischen habe ich die meisten Tipps von @Doc_Arduino umgesetzt und noch einiges ausprobiert. Am Ende hat es nix genützt nach einer zufälligen Anzahl Schaltvorgänge Wert -127 -> Sensor "eingefroren":

  1. abgeschirmtes Kabel LIYCY 4x0,34 ca. 5m lang.
  2. 100nF Kondensator direkt am Sensor gegen HF-Störungen
  3. 1000µF Kondensator zur Spannungsstabilisierung
  4. Y Kondensator an Schützkontakt A1/A2 (Verdacht dass Abschalten der Schützspule Spannungs-/Störimpulse erzeugt -> möglichst nah an Ursache)
  5. Y Kondensator an Netzteil Eingang nachdem er am Schütz nix geholfen hat um zu verhindern, dass etwas von der Netzseite auf die 5V Seite "haut"
  6. Motor abgeklemmt um auszuschließen dass am Ende nicht die Motorinduktivitäten die Übeltäter sind und nicht die Schützspule. Sie waren/sind es nicht. Problem tritt trotzdem auf.

Muss jetzt noch mal das Oszi auspacken und noch mal direkt am Sensor messen. Vielleicht gibts ja noch was auffälliges. An Maßnahmen fällt mir eigentlich nichts mehr ein. Außer das Ultra-Low-Cost Netzteil mal gegen ein Low-Cost auszutauschen :slight_smile:

PS: Falls es jemanden interessiert. Die generelle (und eigentlich simple) Aufgabe des Aufbaus ist es in Abhängigkeit von Temperatur und Uhrzeit (RTC Modul DS3231) eine Pumpe mit einem SSR ein- bzw. auszuschalten. Möchte aber jetzt auch keine generelle Diskussion a lá "nimm doch besser dieses RTC Modul" oder "Relais statt SSR" auslösen sofern es nicht mit dem akuten Problem zu tun hat.
Danke auf jeden Fall schon mal @Doc_Arduino für die bisherigen Hinweise :heart:

Ja, ich möchte auch wie Doc_Arduino schreibt, Stück für Stück austesten und mit dem Oszi die jeweiligen Änderungen betrachten. Wenn ich das Gerät wieder zumache, möchte ich keine Serial.print() Meldungen mehr haben, über falsche Werte in den Messungen. :slightly_smiling_face: Ich sehe die falschen Werte eigentlich nicht. Weil ich bei der Ausgabe bescheiße. Kommt ein Wert, der gar nicht möglich ist, wird der vorherige Wert eingesetzt. Und ich bekomme, solange ich an dem Fehler arbeite, eine Meldung über die kompletten tatsächlichen Daten per Serial.print(). So halte ich die glänzende Fasade aufrecht. Das Display zeigt mir was ich sehen will, und die Lüfter Arbeiten auch nach diesem richten aber alten Wert. Aber alle 2 Sekunden kommt ein neuer Wert, das ist also verkraftbar. :grinning:

Danke

Ich bin ja immer für vorbereitende Arbeiten, dass ich mir dann beim eigentlich Aufbau leichter tue. Durch das Thema BUS ist mir gerade die Idee gekommen, RJ45 Buchsen mit dem DS18B20 gut geschirmt zu verbinden, dass ich nur mit einem Patchkabel anstecken muss, und da immer der perfekte Seriale Buss gewärleistet ist. Das Patchkaben am Gerät und am Sensor anstecken und alles ist gut. Aber OK, erst möcht ich die Störungen und die Wirkung der Abhilfen mal sichtbar am Oszi haben.

Franz

Aus der Erfahrung: Wenn Du kannst nimm 3,5mm oder 6mm Klinke.
Bau die Buchse in eine kleine Verteilerdose ein.
Verbinde den ganzen Kram mit JYStY - fertig.

Plus - Minus - Daten kommend - Daten gehend über die Klinke? Das sind 4 Drähte. Daten kommend & gehend zusammen, dann sind immer noch drei.

Ja. - Stereoklinke: Daten auf den Ring. +5V auf Tip , GND auf den Schaft.
Keine Möglichkeit eines Schluß zwischen 5V und GND
5V liegen erst an, wenn Du den Stecker richtig einsteckst.

Jeder Sensor bekommt eine maximal 2mtr lange Leitung.
Du kannst dann von der Verteilerdose sogar weiter zu einer nächsten Verteilerdose und hast immer nur die Stichleitung. Die Verlegung ist so auch in der Spec vorgesehen (siehe oben)
Wenn ich es noch schaffe, während des Threads hier, Bilder zu finden, bring ich die auch noch.

Es war eine etwas fummelige Arbeit die Sensoren direkt an den (abgeschirmten) Draht zu pinnen, aber das ganze mit Schrumpfschlauch hat sogar in Tauchhülsen wunderbar gehalten.

Noch ein wenig aus der Bastelkiste:
Ich benutze das Userdatabyte der Sensoren um diese zu beschreiben und suche nicht nach dem Index, sondern nach dem tatsächlichen Sensor.
Könnte man auch nach der Sensor-Adress machen, aber die ändert sich, wenn der Sensor getauscht wird.
Die Sensornummer kommt dann mit einem Beschriftungsring aussen ran und wenn der ausfällt, wird einfach einer eingesteckt, der noch kein beschriebenes Userdatabyte hat.
Das erkennt der Code von allein und macht dann den Sensor zu dem alten.
-> Darfst nur nicht mehrere gleichzeitig defekt haben. Dann musste das manuell einrichten...

Hallo db,

so sieht eben ein Garten-Schaltschrank, ist noch einer der guten Sorte. :slight_smile:

kommentiertes Bild

Ein paar Dinge fallen mir noch auf, auch wenn die Gefahr besteht sich im Detail zu verstricken.

a) rot markiert - oranges Kabel:
Ist das die Steuerleitung zum Hilfsrelais? Die Leitung hat keine Last? Weil die Relaisplatine einen Transistor + Freilaufdiode drauf hat?

b) rot markiert - gelbes Kabel:
Wo geht das hin? Hat sich nur hinterm weißen Kabel versteckt und geht ins CAT Kabel rein?

c) schwarz markiert - rot/schwarz Spannungsversorgung:
Würde ich verdrillen.

d) gelb/grün markiert - Massekabel
Der Schaltschrank hat doch sicherlich Schutzerde dran?
Die markierte schwarze Masseleitung finde ich nicht gut. Damit kann man sich eine unschöne Masseschleife einbauen. Das Netzteil (grün eingerahmt) + Hilfsrelais (blau eingerahmt) + Arduino haben zusammen einen gemeinsamen Massebezug. Sternförmig vom Netzteil. Mehr braucht es nicht. Das Hilfsrelais trennt die benötigten Stromkreise voneinander. Die Steuerung benötigt keinen Masse/Erdbezug zu irgendwas anderem, weil für sich versorgt und nach außen trennt das Relais. Bin ich der festen Überzeugung.

Nochwas am Rande. Solche Kabel wie d) benötigen flächigen Kontakt. Könnte wenn benötigt mehr Querschnitt haben und die Aderendhülse unter der Hutschiene stört eher. Die Litze müßte flächig drunter um den Übergangswiderstand so gering wie möglich zu halten. Oder noch eine richtig Klemme setzen. Also wie in der Hausinstallation einen N-Leiter bzw. Erdverteilerklemmblock oder wie das genau heißt.

Wie gesagt, hier würde ich das Kabel d) entfernen.

e) Hattest du schon ohne Motor und ohne Schütz getestest? Sodass nur das Hilfrelais schaltet? Nur Verbindung Relais -> Schütz trennen. Da könnte man einen Sketch schreiben wo das Hilfsrelais meinetwegen im 10s Takt ein/ausschaltet und der Sensor im Sekundentakt abgefragt wird.

f) Sind unter dem Arduino noch irgendwelche Stützkondensatoren?

g) Wegen dem 1000µF Elko an der Schraubklemme. Sind das wirklich 1000µF oder doch eher 100µF? Ich würde eher 100µF dem Arduino spendieren, der muss alles versorgen. Oder wird der Sensor direkt vom Netzteil versorgt?

So, schon fast zu viele Gedanken niedergeschrieben. Ich würde erstmal nur mit dem Hilfsrelais testen und das Masseausgleichskabel entfernen. Dann am Sensor zu den 100nF nochmal 10µF dazu probieren.

Ansonsten bin ich dann mit der Ferndiagnose auch langsam am Ende. Weitere Spekulation wäre, wenn das Schütz reingeht, dass das 5V Netzteil zu langsam ausregelt? Weil ja was auf der 230V Schiene kurz passiert. Ich weiß es nicht.

Könntest du die +5V Verbindung vom Netzteil zum Arduino trennen? Masse bleibt. Und den Arduino mit einem weiteren 5V Netzteil versorgen? Wenn der Sensor vom Arduino versorgt wird. Wenn der Sensor nicht vom Arduino versorgt wird sondern direkt vom Netzteil, dann könnte man den Sensor vom extra Netzteil separat versorgen. Dann schaut man was passiert. Zur Not ein USB Steckernetzteil und ein USB Kabel opfern.

Alles in Ruhe überlegen und eins nach dem anderen. Das ist die Kunst beim testen. :wink:

1 Like

ich habe jetzt nicht den ganzen Thread gelesen.
Pullupwiderstand auf 2 kOhm absenken möglichst kurze Leitungen ausgeführt als Linientopololgie.

Hast du ein Oszilloskop zur Verfügung?
Wenn ja damit würde ich mir die Signalflanken auf dem onewire-bus anschauen. Ich prognostiziere:
mit einer Wahrscheinlichkeit von 85% bekommst du zuverlässig lesbare onewire-daten wenn der pullupwiderstand auf 2 kOhm abgesenkt ist und die Sensoren an 3cm kurzen "Stummelstückchen" als Abzweigungen an ein linienformigen Onewire-bus-kabel angeschlossen sind. Wenn linienförmiger Anschluss bedeutet das der Bus 2m Länger wird ist der "Störeffekt" von 2m zusätzlicher Buslänge immer noch kleiner als eine 30cm Abzweigung vom linienförmigen Bus. Stichwort Reflektionen auf der Busleitung.

Das sind die

= allgemein wichtigsten Entsörungsmassnahmen.

Wenn jetzt deine onewire-sensor-Leitung auf Teufel komm raus genau neben den GHz frequentierten Leitungen im inneren eines PCs verlaufen müssen dann würde ich mir trotzdem als erstes die Signalflanken auf der onewire-Leitung anschauen bei Verwendung von 1 kohm Pullup-Widerstand und Linientopologie.

vgs

Ja, das kommt alles. Aber ich möchte zwei Lieferungen abwarten, dass ich das Material für alle Möglichkeiten der Entstörung zusammen habe. Ich möchte nur noch einmal die Kiste öffnen, dann muss ich das Problem erkannt, und so gut wie möglich beseitigt haben. Die zwei Lieferungen sind wie so oft vom Chinesen. :roll_eyes: Und das Lieferdatum ist Mitte September. :pleading_face:

Ich komme im Tower durch ein großes Loch im Deckel rein. Also eigentlich "von Oben" auf die Kühler der CPU. In dem Loch im Deckel sind auch meine Lüfter. Neben meinen Lüftern kommt auch das Patchkabel rein, an dem mein DS18B20 hängt. Ich denke meine Lüfter sind das Störungsproblem. Und die letzten 5cm des Orginal-Fühlerkabels. Die sind ja nicht geschirmt. Ich werde aber auch da nachträglich einen Metall-Gewebeschirm drüberziehen und mit Schrumpfschlauch befestigen. Ich möchte da alle offensichtlichen Störmöglichkeiten dicht machen.