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
Wenn man zwei Sensoren am Bus hat, mussen die nacheinander mit ihren Seriennummern angesprochen werden, sonst gibt's nur Kollisionen.
Mike schrieb: > Funktioniert ganz normal bei einem Sensor, aber wenn ich 2 reinpacke > müssten doch beide gleichzeitig antworten und nur Quatsch dabei > rauskommen oder? Ja, sollte so sein. > Tut es aber nicht, es liest nur einer aus. Kommen dabei auch saubere Daten raus? Wenn ja, stimmt etwas nicht.
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
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.
Timingprobleme? Ist es immer der zweite oder erste Sensor in der Kette? Vielleicht mal beide austauschen und dann nochmal beobachten.
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
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
@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!
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
@Klaus warum soll die Konvertierung 2x gestartet werden? Das ist nicht nötig. @Mike wie sind die Sensoren angeschlossen? eigene 5V oder über den Bus? Sascha
Sascha Weber schrieb: > @Klaus > > > > warum soll die Konvertierung 2x gestartet werden? Das @Sascha Sorry! hast natürlich recht hoffe aber das der Treadsteller ein Auge zudrückt
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.
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.