DS2505 toggelt anstatt zu schalten

Hallo

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.

schönen dank für die Erleuchtung
bb

Hi

so ab das Problem nun gefunden -

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.

mit übermüdeten grüßen
bb

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.

paresy

Hi paresy.

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.

gruß
bb

… ich würde nie auf die Idee kommen keinen Vorwiderstand für einen Transistor zu verwenden …

MST

Wieso kein Vorwiderstand ?
Der 2405 hat doch einen OPEN-Drain Ausgang.
An diesem Ausgang hängt extern ein Pullup und die Basis eines NPN.

greez
bb

… man sieht ja was dann passiert …

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

@helmut: Ja klar, das hab ich dann ja auch gemacht, nachdem ich die funktionsweise des TMEX_F05_SetPin Kommandos durchschaut hatte.

Nun haben wir 1k Pullup am OUT des 2405 und 3k3 zwischen OUT und Basis.

greets
bb

Hallo,
möchte mich gern einklinken, weil ich ein Problem mit einem 2408 habe:

  • Eingänge werden korrekt in Variablen abgebildet,
  • als Ausgang konfiguriert schaltet nichts, toggelt nichts, …

10k pull up ist dran. Was könnte das sein?
Gruß Peter

… danke, hat sich erledigt. Leiterbahn defekt.
Peter