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?
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
??? 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?
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
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
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
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
> 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
Gibt es eigentlich eine Rechenvorschrift, mit der man den benötigten Widerstand für den Bus in abhängigkeit der anliegenden Sensoren ermitteln kann?
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.