hab hier ein v2.1 und komme mit dem DS2405 irgendwie nicht klar.
lt. Doku sollte doch TMEX_F05_SetPin den Ausgang Ein/bzw. Ausschalten.
Tut er aber nicht, bei jedem „True“ toggelt der Ausgang anstatt zu schalten,
Die Suche hat mich zu diesem Post geführt:
hab genau das gleiche Verhalten.
Paresy spricht hier von einem Bug in einer alten Version, wie kann ich das erkennen ?
IPS wurde vor wenigen Tagen neu installiert und upgedated.
Hardwareseitig hab ich einen 1K Pullup und eine NPN dran welcher als Open Kollektor geschaltet ist und ein Relais treibt.
Die Hardware hat unter OWFS astrein funktioniert, konnte den Ausgang ganz normal statisch schalten - ohne toggeln.
Das TMEX_F05_SetPin Kommando liest scheinbar BEVOR es schreibt immer den aktuellen Status des Ausgangspins, und berechnet daraus ob es nun ein „Toggle“ zum Baustein schicken soll oder nicht.
Soweit sogut, aber wenn der Ausgangspin aufgrund der externen Beschaltung keine Logic „1“ sieht (auch wenn er eigentlich auf HIGH gesetzt ist), dann funktioniert das so nicht.
Genau das ist bei mir eingetreten: hatte ja 1K Pullup und dann eine Transistor hintendran.
Durch die BE Diode des NPN KANN der Ausgang nie eine logische „1“ zurücklesen.
Das ist ja wirklich gemein, warum wurde das denn so hintenrum gemacht ?
Wenns techn. anders geht, von mir aus, aber dann doch
BITTE BITTE BITTE BITTE in die Doku reinschreiben.
So konnte ich mir nur nach elendslangem rumspielen und rumwursten im Debugdisplay das Verhalten zusammenreimen.
Hab dann 3k3 zwischen DS2405 und der Basis des Transis gehängt, und nun funktionierts.
Schön das mich einer mal bestätigt. Da ich bis jetzt der einzige war der das Problem (2405 toogelt nur) hatte, habe ich alle 2405 abgeschaft und bin zum 2413 umgestiegen.
Am Wochenende muss ich aber nochmal einen 2405 rauskramen und das testen.
Da der 2405 keinen definierten AN/AUS Befehl bietet ist die „Read before Write“ Methode die einzige, die es Möglich macht, einen definierten Schaltzustand anzubieten.
Deinen Sonderfall werden wir versuchen in der Doku einzubinden.
Schon Ok.
Aber Sonderfall würde ich das eigentlich nicht nennen.
Ich mein um ein Relais zu treiben ist das eher die Staight Forward Beschaltung.
Aber weißt was ich nicht verstehe ?
Ich hatte ja schon mehrfach geschrieben das ich meine Hardware vorher unter OWFS (die Linux Implementierung des 1Wire) laufen hatte.
Auch hier gibt es einen True/False Befehl für den 2405. owfs Development Site - DS2405 man page
Der hat mit meiner Beschaltung über 2 Jahre astrein funktioniert.
Wie auch immer, jetzt gehts.
Danke für die Betätigung das meine Beobachtung richtig war, denn ich steure damit meine Heizung/Solaranlage und da möchte ich schon wissen WARUM sich was wie verhält.
Open Drain bedeutet ja nur, dass der Ausgang quasi ohne Widerstand nach Masse schaltet.
Und ein pullup sitzt an dem OpenDrainausgang und an Ub.
Was Chefe meint ist OHNE VORWIDERSTAND zur Basis - Schalttransistor.
Das deine Schaltung funktioniert, liegt daran, das der DS dem Transistor den Basisstrom nach Masse/Gnd WEGSCHALTET.
Das ist auch ein guter Weg die „Invertierung“ zu realisieren.
Ergänzungserklärung:
Zitat: An diesem Ausgang hängt extern ein Pullup und die Basis eines NPN.
Zitatende
Wenn also der DS2405 High am Ausgang hat, dann ist elektrisch/spannungsmässig 0,6Volt, die Basis-Emitterspannung, zu sehen.
Das ist von der Spannungs-Logig-Definierung Low-Level.
wenn der DS2405 Low am Ausgang hat, dann ist da vom Wert her 0Volt, also immernoch Low-Level!
Daher ist es besser, da, noch einen Basisvorwiderstand zu setzen, dann kann da auch mehr als 2 Volt(High) zu erkennen sein