mehrere DS18S20 Sensoren an einem Bus

OP #2197186
Hallo,

Ich möchte 5 DS18S20 Temperatursensoren an einem Bus betreiben. Wenn ich 
drei von denen am Bus habe funktionierts einwandfrei, die anderen beiden 
zusammen funktionieren auch einwandfrei. Leider funktioniert es nicht, 
wenn alle 5 am Bus sind oder die funktionierenden ersten drei mit einem 
der anderen Sensoren. Komischerweise wird auch kein Fehler ausgegeben, 
sondern nur eine 0. Die Temperaturkonvertierung geht auch viel schneller 
von statten, als wenn alles funktioniert. Woran könnte das liegen?
Gast #2197190
Treibst du niederohmig genug? Anders gefragt: Hat dein Zwischengesicht 
genügend Power, den ganzen Sauschwanz zu bedienen? Wenn man da mit zu 
wenig Leistung kommt passieren die queersten Sachen, hab' ich selbst 
erlebt. Eventuell reicht schon ein Treiber (im einfachsten Fall ein 
Transvestit).

Gruß, Bert
OP #2197235
???
Also ich hab einen 4,7k Widerstand zwischen DQ und Vcc (5V) wie im 
Datenblatt angegeben. Die Sensoren werden normal betrieben, also kein 
parasite power. Die Sensoren werden an eine 3er-Klemme angeschlossen. 
Was du jetzt genau meinst weiß ich leider nicht... die Sensoren werden 
direkt von einem Atmega32 ausgelesen. Könnte es vielleicht auch an der 
Länge der Kabel liegen, an denen die Sensoren dranhängen?
Gast #2197336
Moin,

achte peinlich aufs Timing. Interrupts während des Recovery und der 
Read/Write Slots stören.

...
Zwischengesicht = interface / an deinem Prozzi
Sauschwanz      = pigtail / dein Bus
oder so ähnlich :-)
...

MfG
#2197366
Hallo,
sendest du den Temperatur-Konvertierungsbefehl für alle Sensoren auf 
einmal?? Sprich: Konvertieren alle Sensoren die Temperatur zur selben 
Zeit? Ich meine mal gelesen zu haben, dass der 4,7k Pull-Up nur für 
einen Sensor ausgelegt ist. Wenn nun alle Sensoren gleichzeit die 
Temperatur wandeln, und somit mehr Energie benötigen, reicht der 4,7k 
Pull-Up eventuell nicht aus, um die Sensoren mit genügend Strom zu 
versorgen! Versuche entweder den Pull-Up kleiner zu machen, oder die 
Sensoren einzeln nacheinander anzusprechen!
mfg olli
Gast #2197382
Bin jetzt kein DS-Profi, aber hab auch mein erstes Projekt mit 4 
Sensoren am BUS fertig und läuft (natürlich nach einigen Fehlern zuvor).

- Du sagst, du betreibst nicht parasitär, also als 3-Draht-BUS.

- Ist der BUS ein Stern oder alles fein hintereinander?

- Bei mir ist alles hintereinander und der 4,7k ist direkt am 1-WIRE-PIN 
des µCs

- Ich war auch erstaunt, daß die Wandlung sehr schnell fertig war, ABER 
das ist nicht immer so und nicht zuverlässig.

- Kam bei mir auch zu Fehllesungen dann.

Meine Vorgehensweise und SEITDEM KEINE Fehler mehr:

1.) START CONVERSION-Befehl an ALLE Sensoren GLEICHZEITIG senden. Hab 
den gerade nicht im Kopf, den gibts aber.

2.) jetzt kannst Dich in Deinem Programm um andere Sachen kümmern

3.) ERST nach mind. 750ms fragst die einzelnen Fühlern nach ihrem 
konvertierten Wert. Eine Wandlung KANN bis zu 750ms dauern. Geht 
manchmal schneller, KANN aber 750ms dauern. Laut Datenblatt!

Seitdem ich konsequent erst nach 750ms abfrage, treten keine Probleme 
mehr auf.

Vorschlag:

Bau mal ne schöne BUS-Leitung mit den Sensoren auf und mach KEINE 
Stern-BUSSE!!! Schreib das billigste Programm: Konvertierungsbefehl an 
alle, 750ms warten, die Fühler auslesen!!!

Gruß Hackes
OP #2197393
Hallo,

also ich sende den convertt-befehl an alle gleichzeitig und frage dann 
einzeln ab. Die Sensoren sind Sternförmig angeordnet.

Die Zeit habe ich grad auf 1s erhöht und gleiches Ergebnis. Wenn ich 
aber einen Widerstand parallel zu dem 4,7k Widerstand hänge 
funktionierts einwandfrei. Da kommt also wirklich zu wenig Saft am Bus 
an...
Da danke ich euch für eure Hilfe :)

Gruß
Paul
Gast #2198109
> Paul P. schrieb:
>> Herr Bert schrieb:
>> Treibst du niederohmig genug? Anders gefragt: Hat dein Zwischengesicht
>> genügend Power, den ganzen Sauschwanz zu bedienen? Wenn man da mit zu
>> wenig Leistung kommt passieren die queersten Sachen, ...
> ???
> Die Sensoren werden an eine 3er-Klemme angeschlossen.
> Was du jetzt genau meinst weiß ich leider nicht...

Naja, ich meinte damit, daß die Gesamtkapazität deiner langen Leitung 
und der mehreren Sensoren für deinen treibenden Baustein eventuell 
einfach zu groß sein könnte.

Gruß, Bert

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 15 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.