1Wire DS18S20 Leitungslänge

Gast #331046
Lesenswert?

Hallo,
habe zur Temperaturmessung (Heizung, Aussen etc.) 3 DS18S20 Sensoren an
einem Mega32 mit 2kOhm Pullup.
Die Leitungslänge betragt zusammen etwa 18m. Beim Anschluss des 4.
Sensors setzen plötzlich zwei andere aus. Gibt es soetwas wie
1Wire-Hubs oder Repeater um die Kabel noch verlängern zu können. Wollte
eigentlich noch weitere Sensoren ins Netz hängen.

Habe jetzt alles auf diesem System aufgebaut und möchte die Sensoren
auch gern weiterverwenden.

Bitte um Hilfe.
Gruss Fred
Gast #331047
Lesenswert?

Einen Repeater kann man sicher basteln - aber lohnt das? Eine zweiten
Bus aufzumachen wird wohl nicht so schwer sein. Ich hatte den gleichen
Effekt. Freilich musste ich mit einem Sammelsurium an verschiedenen
Kabeln in teilweiser Sterntopologie leben, und war dementsprechend
nicht verwundert, als sich der vierte als einer zuviel erwies.
Gast #331048
Lesenswert?

Ein zweiter Bus ist vorbereitet, aber die neuen Sensoren sind auch
wieder 15 Meter entfernt.
Ich würde gern nach etwa 11 Metern einen Repeater klemmen und von dort
sternförmig weitergehen. Einen weiteren Controller mit Umwandlung in
rs232 uä. möchte ich vermeiden, da ich schon diverse Geräte
(SPS,PCM,AVR,DISPLAY,PC) habe, die alle mit einem eigenen Protokoll
kommunizieren.
Ein "dummer" Verstärker oder ein AVR mit einem einfachen Programm zur
Leitungsverlängerung wäre ideal.

Vielleicht hat schon jemand soetwas gebaut/gesehen.
Fred
Gast #331050
Lesenswert?

Schon probiert:

1. kapazitätsarmes Kabel nehmen (da ist schnell ein Faktor drei in der
Kabellänge möglich)

2. am Timing rumschrauben, insbesondere vor dem neuen Low-Ziehen der
Leitung dem Pullup-Widerstand genug Zeit lassen, daß auch am Ende des
Kabels die Leitung wieder high geworden ist.
Gast #331052
Lesenswert?

Bei mir hat ein externer MOSFET mit slew-rate-Begrenzung das Problem
gelöst, was nur mit 1m funktioniert hat, ging plötzlich auch mit 20m.
Grundsätzlich empfiehlt Dallas das einfache Interface an einem
Prozessorport nur für kleine Längen bis 1m. Alles andere sollte über
eine Treiberschaltung gemacht werden, dann braucht man auch bei
größeren Längen keinen Repeater. Schau mal bei Maxim-Dallas nach der
APP148, da steht alles drin.
Gast #2407332
Lesenswert?

Hallo,

ich grabe hier zwar einen recht alten Thread wieder aus, aber bei mir 
ist gerade genau dasselbe Problem aufgetreten:
Ich habe am Tiny 85 mit 3,3k als Pull-Up in ca. 10cm Entfernung einen 
DS18S20 - auf einer kleinen Platine montiert - angeschlossen. Darauf 
sind zwei Schraubklemmen, damit das Kabel weiter zum nächsten Sensor 
verlängert werden kann.
Sobald ich nun mein ca. 25m langes Kabel anschließe, kann ich nicht 
einmal mehr mit dem ersten Temperatursensor kommunizieren, geschweige 
denn mit dem am Ende des Kabels. Auch wenn nur das Kabel ohne Sensor am 
anderen Ende angeschlossen wird, ist schon keine Temperaturmessung mehr 
möglich.
Ich verwende zwei einzelne ungeschirmte Litzen, konnte aber bisher 
keinen Kurzschluss feststellen. Der Widerstand zwischen beiden Adern 
beträgt >10 Megaohm, die Kapazität der Leitung liegt meinen Messungen 
zufolge bei etwa 2 nF. Das Kabel ist nicht neben Stromleitungen verlegt, 
es verläuft im Kabelkanal neben Netzwerkkabeln. An einer Stelle (ca. 2m) 
liegt das Signal auf einer Doppelader eines 4x2 Telefonkabels, auf einer 
anderen Doppelader ist noch ein Telefon angeschlossen.
Ich hatte vor, noch mehr Sensoren weitere 20m entfernt zu platzieren, 
angeschlossen über ein eigenes, noch unbenutztes 2x2 Telefonkabel.
Ist das nur durch Timing-Änderungen und einen Treiber anstelle des 
µC-Ports möglich oder muss ich doch ein besseres Kabel verlegen?
#2407970
Lesenswert?

Seht auch mal nach ob die Software ordentlich programmiert ist. Es ist 
im parasitären Modus (ich denke darum ging es hier) entscheidend, dass 
nach dem Absetzen des Befehls zum Messen sofort der Pin auf High gezogen 
wird. Das macht sich erst recht bei langen Leitungen bemerkbar. Ich habe 
hier schon Code gesehen, da vergingen ein paar us zuviel. Welchen Code 
hast du zum Auslesen?
Gast #2534626
Lesenswert?

david schrieb:
> Kann mir niemand in kurzen Sätzen erklären wie genau der Mosfet
> angesteuert werden muss.

Im Datenblatt des DS18B20 ist das in einem Satz zusammengefaßt:
"The 1-Wire bus must be switched to the strong pullup within 10μs (max) 
after a Convert T [44h] or Copy Scratchpad [48h] command is issued, and 
the bus must be held high by the pullup for the duration of the 
conversion (tCONV) or data transfer (tWR = 10ms)."

M.a.W. Du schickst das Kommand los und aktivierst dann den FET für tCONV 
bzw. tWR.
Gast #2535175
Lesenswert?

Ich hatte ebenfalls Probleme mit einem DS18B20 der am Ende von einem 30 
m Kabel hing. Habe das Problem mit einer alternativen Lösung gelöst die 
sich TSIC306 nennt. Ist ein ebenso genauer digitaler Temp-sensor von 
Hygrosens o.ä. Er arbeitet allerdings auf einer anderen 
Übertragungsebene, im sogenannten Hammingcode.
Er liefert bei mir die Temperaturwerte stabil und bei ihm ist es egal 
wie lange das Kabel oder die Qualität des Kabels ist.

Warum also Übungen machen deren Erfolg ungewiss ist, wenn es mit einem 
anderen Sensor, Sensortyp gut lösbar ist?

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