2 DS 1820 einer stellt sich immer tot

Gast #2074317
Lesenswert?

Hallo zusammen,

ich habe ein kleines Problem, wenn ich 2 Sensoren an dem 1-wire-Bus 
anschließe. Hab es anfangs so versucht beide nacheinander mit der Id 
anzusprechen und auszulesen. Da antwortet aber immer nur einer, der 
andere stellt sich irgendwie tot.

Nach kurzem rumspielen hab ich einfach mal das Grundprogramm 
reingepackt, nach dem Schema...

CC          //Skip Room    also alle ansprechen
44          //Konvertierung
wait 750ms  // bis er fertig is
CC          //Skip Room    alle wieder ansprechen
BE          //Schreibbefehl um Temp auszulesen

Funktioniert ganz normal bei einem Sensor, aber wenn ich 2 reinpacke 
müssten doch beide gleichzeitig antworten und nur Quatsch dabei 
rauskommen oder? Tut es aber nicht, es liest nur einer aus. Oder wissen 
die beiden Sensoren voneinander? Jedenfalls stellt sich wieder der selbe 
Tot.

Schon mal vielen dank für ne Antwort, falls jemand eine Idee hat
Mike
Gast #2074408
Lesenswert?

hi mike,

ich hatte auch einmal das selbe Problem. Es lag einfach an der 
Ansteuerroutine. Man muss darauf achten, dass sobald man keine Daten 
mehr an die Sensoren sendet den I/O Pin floatet, ansonsten gab es bei 
mir immer Kollisionen.

mfg noobuntu
Gast #2074464
Lesenswert?

die ausgelesenen Werte sind sauber, erwärm ich den funktionierenden 
steigt die angezeigte Temperatur, erwärm ich den anderen bleibt die 
angezeigte Temp konstant. habs auch mit dem Oszi kontrolliert. Oder um 
mal mein ursprüngliches Problem zu verdeutlichen. Ich hatte es anfangs 
so

CC           //skip room
44           //konvertierung
warten
55           //match room
64-Bit-id1   //vorher einzeln ausgelesen
BE           // Temp1 ausgeben

55           //match room
64-Bit-id2   //vorher ausgelesen
BE           //Temp2 auslesen

Es wird aber nur einer ausgelesen, der andere gibt FF zurück. Schließ 
ich sie einzeln an funktionieren sie beide. Gerade etwas komisch 
komisch. Ebenfalls am Oszi angeschaut, der inaktive rührt sich nicht, 
der andere funkt ihm auch nicht dazwischen sonder wird nur bei seiner 
Abfrage aktiv.
Gast #2074642
Lesenswert?

Es ist immer der selbe Sensor, hab sie jetz in der Aufrufreihenfolge mal 
vertauscht und jetz is es der erste der vom Programm her nicht 
antwortet. Die Sensoren selbst zu tauschen macht keinen Unterschied Ich 
ruf jetz nur mal per Id den Streikenden auf + einmal ausgeben, und 
zeichne am Oszi die Kommunikation auf, wenn nur der eine am Oszi hängt. 
Und dann wenn beide drannhängen. So wie ich dass sehe müssten die beiden 
Aufzeichnungen identisch sein, da ja nur einer aufgerufen wird.

Aber verschieb ich mal auf morgen.
Vielen Dank für die Antworten

Mfg Mike
Gast #2075706
Lesenswert?

So guten morgen zusammen,

neuer Tag neues Glück. Also ich hab es jetz mal testweise so 
programmiert wie gestern beschrieben, aber find das Ergebnis eher 
verwirrender als aufklärend.

Konvertierungsbefehl und leseBefehl nur an id1

1.Versuch
Nur Sensor 1 anschließen funktioniert tadellos. Hab zusätzlich die ganze 
Kommunikation am Oszi aufgezeichnet.

2.Versuch
Selbe Programm aber diesmal Sensor 1 und 2 anschließen. Sensor 1 mag 
nich mehr.
Ebenfalls alles mit dem Oszi aufgezeichnet und hab es mit dem 
Vorhergehenden Bit für Bit :-) verglichen. Auf der Datenleitung liegt 1 
zu 1 das selbe Signal an, vom ersten Reset bis zum letzten Befehl H-BE, 
außer dass Sensor 1 alleine antwortet aber mit Gesellschaft nichts mehr 
macht.

Kann es sein das an der Schaltung was nicht stimmt?

Mfg Mike
Gast #2076394
Lesenswert?

@Mike

Mike schrieb:
> CC           //skip room
>
> 44           //konvertierung
>
> warten
>
> 55           //match room
>
> 64-Bit-id1   //vorher einzeln ausgelesen
>
> BE           // Temp1 ausgeben

war fast richtig!

1-wire reset
CC    //Skip-rom
44    // konvertierung   Alle Sensoren gleichzeitig
55           //match room
64-Bit-id1   //1 Sensor
BE           // Scratchpad einlesen die ersten beiden bytes
1-wire reset

1-wire reset
CC    //Skip-rom
44    // konvertierung   Alle Sensoren gleichzeitig
55           //match room
64-Bit-id1   //2 Sensor
BE           // Scratchpad einlesen die ersten beiden bytes
1-wire reset

So sollte es eigentlich dann gehen!
Gast #2076402
Lesenswert?

Uuups! Fehler


1-wire reset
CC    //Skip-rom
44    // konvertierung   Alle Sensoren gleichzeitig

1-wire reset
55           //match room
64-Bit-id1   //1 Sensor
BE           // Scratchpad einlesen die ersten beiden bytes
1-wire reset // Abbruch nach dem 2 byte

;------------------------------------

1-wire reset
CC    //Skip-rom
44    // konvertierung   Alle Sensoren gleichzeitig

1-wire reset
55           //match room
64-Bit-id1   //2 Sensor
BE           // Scratchpad einlesen die ersten beiden bytes
1-wire reset // Abbruch nach dem 2 byte
Gast #2077370
Lesenswert?

Hallo zusammen,

die Sensoren sind extern an 5 V angeschlossen. Hab aber mittlerweile den 
Fehler gefunden.
Ich hab die Sensoren in einer Sternschaltung angeschlossen und immer am 
Knotenpunkt mit dem Oszi aufgezeichnet. Kam mir halt mal die Idee, ich 
weiß ja nicht was ich direkt an den Sensoren anliegen habe. Ich hab die 
Sensoren mit den 10m Kabellänge und Rj-Stecker.
Aufs gerate wohl, hab ich bei dem nicht funktionierenden einfach das 
kabel mal gekürzt und es funktioniert. Stören sich anscheinend 
gegenseitig bei voller Leitungslänge.

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